This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
gl2_model_renderer [2017-02-23 15:12] – /* Features */ skyjake | modding:gl2_model_renderer [2017-03-19 20:33] (current) – [Model renderer (Doomsday 2)] skyjake | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Model renderer (Doomsday 2) ====== | ||
+ | |||
+ | The GL2 model renderer is the primary user of [[assets: | ||
+ | |||
+ | The renderer can use 3D models in several ways: | ||
+ | |||
+ | * Things (mobjs) can be represented using 3D models with a '' | ||
+ | * Player weapons (psprites) use the '' | ||
+ | * //TODO//: other kinds of model assets, e.g., surface decorations. | ||
+ | |||
+ | See also: [[modding: | ||
+ | |||
+ | |||
+ | ===== Features ===== | ||
+ | |||
+ | ==== Version 1.15 ==== | ||
+ | |||
+ | * Model files are loaded using the [[http:// | ||
+ | * Skeletal animation (using bones) is the primary way of animating objects. The current limitation is 64 bones per object. | ||
+ | * Models can be composed of multiple meshes, each having its own textures. | ||
+ | * Texture images are automatically collected onto atlases for rendering. | ||
+ | * There is currently one general purpose OpenGL shader that does per-pixel lighting. | ||
+ | * There can be 4 types of texture maps per model mesh: | ||
+ | * Diffuse map: surface color and overall opacity | ||
+ | * Normal map / height map: surface normals | ||
+ | * Specular map: specular reflection color and sharpness | ||
+ | * Emission map: additional light not affected by external light sources | ||
+ | * Providing the diffuse color map is required, other maps are optional (a default map will be used if one is not specified). | ||
+ | * Up to four light sources per object, plus an ambient light. | ||
+ | * Model animation sequences can be triggered when a thing enters a particular state. | ||
+ | |||
+ | |||
+ | ==== Version 2.0 ==== | ||
+ | |||
+ | * '' | ||
+ | * Animation sequence looping. | ||
+ | * Animation sequence priority control. | ||
+ | * Rendering passes can be specified manually, per-mesh with GL state parameters. | ||
+ | * Doomsday Script timelines. | ||
+ | * Animated shader variables. | ||
+ | * Fog. | ||
+ | * Improved scalability, | ||
+ | * Specifying a custom shader to be used for a model. | ||
+ | |||
+ | |||
+ | ==== Upcoming features ==== | ||
+ | |||
+ | These are planned for future releases: | ||
+ | |||
+ | * Material opacity (in addition to opacity from the diffuse map). | ||
+ | * Multiple model files representing a single object (if needed). | ||
+ | * Up to four sets of texture coordinates (currently only one set of texture coordinates per mesh is supported). | ||
+ | * More control over animation: explicit timelines per thing state; movement-based sequences (walking, running, standing). | ||
+ | |||
+ | |||
+ | |||
+ | |||