BetaCell is a toolkit designed to aid newbie and experienced computer graphics programmers to achieve their objectives by embracing DRY (don't repeat yourself) code and offering an object oriented perspective with design patterns; this makes BetaCell easy to use and gets you creating impressive results in a matter of hours.
The toolkit encapsulates many common routines that are used throughout a computer graphics program and defines their access in a reusable fashion, this provides order to the application and allows the programmers to concentrate their effort in achieving more complex goals.
BetaCell is built for XNA 2.0.
Runtime effect composition through the effect framework:Edit
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 definitionsEdit
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 BlenderEdit
Create static and skinned animated objects in blender and load them in your XNA application.
Create Height Maps importing them from HMEEdit
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 procedurallyEdit
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 frameworkEdit
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 pickingEdit
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 techniquesEdit
Advanced texturing techniques built in like:
- Normal mapping
- Environmental mapping
- Displacement mapping
- Shadow Maps
BetaCell is free to use, you can create any type of non commercial/commercial application without paying anything. It is working on the following platforms:
This list of comprehensive tutorials will get you up and running in computer graphics with little effort. They are ordered to offer beginners a structured start in game programming
Displaying 3D ObjectsEdit
Computer Graphics EssentialsEdit
- Basic Lightning
- Generating Waves
- Creating a box with a texture
- Tiling a texture in a plane
- Channel Blend Effect (Texture Splatting)
- Textured Scene
- Scrolling two textures in a plane
- Rotating textures over a mesh
- Creating a transparent crate
- Transparency with the alpha test
Meshes and I/OEdit
- Loading a mesh from blender
- Animation of a skinned mesh loaded from Blender
- Terrain Basics
- Terrain Concepts
- Picking & ray intersection
- Particle System - Ring of Fire
- Particle System - Rain
- Particle System - Firework
- Particle System - Missile
- Environmental Mapping
- Normal Mapping
- Water Effect on a flat surface
- Render to Texture
- Projective Texturing
- Shadow Mapping
- Displacement Mapping