Runtime effect composition through the effect framework
If
you are asking why you can't just add the lightning effect you already
did to the texturing effect or why you have to do a different texturing
effect for point, directional and spot lights (not to mention that
there are two versions of each, vertex and pixel!) the answer is
because you haven't been using BetaCell. With BetaCell you can:
- Create effects through composition instead of repeating
yourself or making a maintenance nightmare of conditional statements
- Create effects on the fly, you just state which parts you
want to join together
- Create effect parts that you can use to build you own
compositions
Very flexible vertex definitions
If
you have worked with XNA, you may already have noticed that you have
two options. The first one is to use the vertex with the most
definitions and pass a lot of unnecessary information to the GPU (worst
you can do!), the second is to create a vertex type for every single
scenario that you have in your application, so if you have an object
with lightning pre-calculated, you have to create a vertex with
position and color, but if you want it animated you have to create
another with position, color, vertex index and vertex weight, and then
you have texture, normal, binormal, bitangent, etc.
The natural way to
create a vertex element is to say something like createVertex(position,
color, vertexIndex, vertexWeight) this is called composition in the
object oriented world and can be done using BetaCell.
BetaCell favors composition instead of inheritance, conditional
statements and repeated code.
Create content in Blender
Create animated objects
in blender and load them in your XNA
application.
Read/Write access to all the properties in a mesh
With
BetaCell you can dynamically change your mesh at runtime, redefine itīs
vertex buffer to accommodate more data (texture, binormal, etc) and
much more.
Create Height Maps importing them from HME
Create height maps
using HME and load them in your application. BetaCell can divide the
map into parts to do effective frustum culling and also sorts the parts
in a front to back order before drawing to save fill rate.
Create meshes procedurally
You can create spheres,
cylinders, cubes, height maps and terrains by
specifying level of detail like # of slices in the sphere and
properties like radius.
Compose
particle systems through the particle framework
Compose particle
systems through the particle framework.
Use
particle effect parts like acceleration, oscillation, fading, resizing,
amongst others, or create new particle effect parts and define a
particle system as the sum of these parts. Also you can define how your particles are emitted in many
different ways.
Built in Ray picking
Pick
objects in the scene with the mouse or shot some objects with your
favorite gun, BetaCell has a simple interface by which you can
intersect objects very easily.
Advanced texturing techniques
Advanced texturing
techniques built in like:
.