Engine Features - Graphics
Common Graphics Features
- full 3d rendering
- rotateable camera with multiple zoom levels
- animated water, lakes, rivers and waterfalls
- fully bump mapped models with normal maps
- animated GUI with physics
- window transitions with windows users can move around the screen
- playable in fullscreen or windowed mode
- supported all resolutions from 1024x768 up to 2560x1600
- full shadow support with three types of rendering (dynamic objects only, static objects only or both) with multiple detail levels
Node based material editor for texturing and model editing
- Node based editor allows us to combine various nodes into complex materials. Each node corresponds to single function coded in HLSL.
- Instruction count and texture usage: editor shows instruction count for various shader types (2.0, 2.x, 3.0).
- Material editor comes with over 200 different nodes including:
- math nodes (vector calculations, compraisons, numerics, trigonometry)
- pixel shader nodes (various phong shader nodes, flat shader nodes)
- various vertex shader nodes (regular, animated, billboard shader etc.)
- various texture sampler nodes (2D texture samplers, 3D cubemap samlers, 3D volume samplers, postprocessing texture/layer samplers, texture transformation nodes, texture modifier nodes)
- postprocessing nodes (for distortions, tonemapping, layer combines, dof etc.)
- constant access nodes (parameters sent from engine to material subsystem: world space position, ambient color, time, vertex color, screen space position, normal, tangent, binormal, camera -> pixel vector, blend weight etc.)
- animation parameters:these are parameters that can be accessed through material animator, each parameter can be animated as single float value using spline based interpolation or as float4 color using linear interpolation
- Using combinations of these nodes users can easily create various materials such as
- procedural materials (river water)
- animated materials (lava, global water)
- masked materials (grass, trees, bushes)
- materials with distortions (glass, water, fumes, foam)
- postprocessing materials (postprocessing glow, hdr, soft particles, screenspace distortions)
- reflective materials (metals, plastic, glass)
- refractive materials (tinted glass)
- normal mapped materials (almost every material in the game that uses phong shader has normal map)
- Each material can be made of vertex and pixel shader nodes.
- Supports environment maps for reflection.
Material Debugging and Optimizations
- Editor has live preview of vertex and pixel shader code generate for each material. Each code is shown in HLSL and assembly. This allows us to easily debug and fine tune new material nodes.
- In-editor debugger displays lines of code where there is error and displays error code and description.
- It is possible to add custom nodes to material editor without need for program recompilation.