A macro block contains settings that will rarely change, and thus are common to many materials.
More...
#include <OgreHlmsDatablock.h>
A macro block contains settings that will rarely change, and thus are common to many materials.
This is very analogous to D3D11_RASTERIZER_DESC. See HlmsDatablock Up to 32 different blocks are allowed!
◆ HlmsMacroblock()
Ogre::HlmsMacroblock::HlmsMacroblock |
( |
| ) |
|
◆ operator!=()
◆ operator==()
◆ mAllowGlobalDefaults
uint8 Ogre::BasicBlock::mAllowGlobalDefaults |
|
inherited |
When zero, HlmsManager cannot override the block's values with enforced global settings.
- See also
- HlmsBasicBlock (such as lower quality texture filtering or turning off depth checks for debugging)
◆ mBlockType
uint8 Ogre::BasicBlock::mBlockType |
|
inherited |
◆ mCullMode
Culling mode based on the 'vertex winding'.
A typical way for the rendering engine to cull triangles is based on the 'vertex winding' of triangles. Vertex winding refers to the direction in which the vertices are passed or indexed to in the rendering operation as viewed from the camera, and will wither be clockwise or anticlockwise (that's 'counterclockwise' for you Americans out there ;) The default is CULL_CLOCKWISE i.e. that only triangles whose vertices are passed/indexed in anticlockwise order are rendered - this is a common approach and is used in 3D studio models for example. You can alter this culling mode if you wish but it is not advised unless you know what you are doing. You may wish to use the CULL_NONE option for mesh data that you cull yourself where the vertex winding is uncertain.
◆ mDepthBiasConstant
float Ogre::HlmsMacroblock::mDepthBiasConstant |
When polygons are coplanar, you can get problems with 'depth fighting' where the pixels from the two polys compete for the same screen pixel.
This is particularly a problem for decals (polys attached to another surface to represent details such as bulletholes etc.).
A way to combat this problem is to use a depth bias to adjust the depth buffer value used for the decal such that it is slightly higher than the true value, ensuring that the decal appears on top. There are two aspects to the biasing, a constant bias value and a slope-relative biasing value, which varies according to the maximum depth slope relative to the camera, ie:
finalBias = maxSlope * slopeScaleBias + constantBias
Note that slope scale bias, whilst more accurate, may be ignored by old hardware.
The constant bias value, expressed as a factor of the minimum observable depth
◆ mDepthBiasSlopeScale
float Ogre::HlmsMacroblock::mDepthBiasSlopeScale |
The slope-relative bias value, expressed as a factor of the depth slope.
◆ mDepthCheck
bool Ogre::HlmsMacroblock::mDepthCheck |
◆ mDepthFunc
◆ mDepthWrite
bool Ogre::HlmsMacroblock::mDepthWrite |
◆ mId
The mId is only valid while mRefCount > 0; which means mRsData may contain valid data, else it's null.
◆ mLifetimeId
uint16 Ogre::BasicBlock::mLifetimeId |
|
inherited |
Except for HlmsSamplerblocks, mLifetimeId is valid throghout the entire life of HlmsManager.
This guarantees HlmsMacroblock & HlmsBlendblock pointers are always valid, although they may be inactive (i.e. mId invalid, mRefCount = 0 and mRsData = 0)
◆ mPolygonMode
◆ mRefCount
uint16 Ogre::BasicBlock::mRefCount |
|
inherited |
Render-System specific data.
◆ mRsData
void* Ogre::BasicBlock::mRsData |
|
inherited |
◆ mScissorTestEnabled
bool Ogre::HlmsMacroblock::mScissorTestEnabled |
The documentation for this struct was generated from the following file: