Materials
Materials in Raz0r function similarly to those in 3DS Max™. They bind textures, shaders and other details to the models used for rendering.
Materials also determine the effect that lighting has on them. The following visual traits can be turned on or off at will simply by changing some flags and/or control data:
- Bump-mapping
- Reflectivity
- True double-sidedness from single-sided polygons
- Lightmapping (needs tool support for the lumel textures)
- Shadow Style
The below lighting models can also be selected
- Ambient Only
- Lambert (standard Ambient + Diffuse)
- Phong (Lambert + Specular Highlights)
- Velvet (Phong + back-scatter and sheen)
- Cel Shading (aka 'Toon Rendering')
- Other anisotropic models added when needed
Particles
Raz0r has a built-in particle system par excellence. Raz0r allows
for creation of emitters on-the-fly or loading of pre-made emitters.
Particles generated from emitters can also spawn more emitters at
key points (creation time, periodically, death time, etc) so with
care, complete firework displays can be initiated by a single call
to add one emitter to the top of the firework model.
Particle visuals are separated into two distinct types:
- Models
- Points
Emitted models are rendered like any other model so can be as detailed and graphically rich as everything else, whilst point particles are simply small textured and coloured squares that are optimised for the platform and are therefore very fast to render.
Super Particles
The codepath for these has been designed but not yet fully implemented. The plan is to have a separate codepath for these more situationally aware particles and the developer can choose one or the other per emitter. Super Particles will exhibit certain physics forces within themselves (attraction, repulsion, etc) as well as collide with level geometry. Raz0r has the beginnings of a full fluids dynamics system (see later) and we are designing Super Particles to use that to exhibit vorticity and move with air currents generated by nearby moving objects and explosions, etc.