OGRE-Next: Ogre::HlmsMacroblock Struct Reference

| OGRE-Next 3.0.0 Object-Oriented Graphics Rendering Engine

Loading...
Searching...
No Matches
Ogre::HlmsMacroblock Struct Reference
Core » Resources

A macro block contains settings that will rarely change, and thus are common to many materials. More...

`#include <OgreHlmsDatablock.h>`

Inheritance diagram for Ogre::HlmsMacroblock:
[legend]

## Public Member Functions
| HlmsMacroblock ()
bool | operator!= (const HlmsMacroblock &_r) const
bool | operator== (const HlmsMacroblock &_r) const
Public Member Functions inherited from Ogre::BasicBlock
| BasicBlock (uint8 blockType)

## Public Attributes
CullingMode | mCullMode
| Culling mode based on the 'vertex winding'.
float | 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.
float | mDepthBiasSlopeScale
| The slope-relative bias value, expressed as a factor of the depth slope.
bool | mDepthCheck
bool | mDepthClamp
CompareFunction | mDepthFunc
bool | mDepthWrite
PolygonMode | mPolygonMode
bool | mScissorTestEnabled
Public Attributes inherited from Ogre::BasicBlock
uint8 | mAllowGlobalDefaults
| When zero, HlmsManager cannot override the block's values with enforced global settings.
uint8 | mBlockType
uint16 | mId
| The mId is only valid while mRefCount > 0; which means mRsData may contain valid data, else it's null.
uint16 | mLifetimeId
| Except for HlmsSamplerblocks, mLifetimeId is valid throghout the entire life of HlmsManager.
uint16 | mRefCount
void * | mRsData
| Render-System specific data.

## Detailed Description

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!

## Constructor & Destructor Documentation

## ◆ HlmsMacroblock()

Ogre::HlmsMacroblock::HlmsMacroblock | ( |  | ) |

Referenced by operator!=(), and operator==().

## Member Function Documentation

## ◆ operator!=()

bool Ogre::HlmsMacroblock::operator!= | ( | const HlmsMacroblock & | _r | ) | const
| inline

References HlmsMacroblock(), Ogre::BasicBlock::mAllowGlobalDefaults, mCullMode, mDepthBiasConstant, mDepthBiasSlopeScale, mDepthCheck, mDepthClamp, mDepthFunc, mDepthWrite, mPolygonMode, and mScissorTestEnabled.

## ◆ operator==()

bool Ogre::HlmsMacroblock::operator== | ( | const HlmsMacroblock & | _r | ) | const
| inline

References HlmsMacroblock().

## Member Data Documentation

## ◆ mCullMode

CullingMode Ogre::HlmsMacroblock::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.

Referenced by operator!=().

## ◆ 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

Referenced by operator!=().

## ◆ mDepthBiasSlopeScale

float Ogre::HlmsMacroblock::mDepthBiasSlopeScale

The slope-relative bias value, expressed as a factor of the depth slope.

Referenced by operator!=().

## ◆ mDepthCheck

bool Ogre::HlmsMacroblock::mDepthCheck

Referenced by operator!=().

## ◆ mDepthClamp

bool Ogre::HlmsMacroblock::mDepthClamp

Referenced by operator!=().

## ◆ mDepthFunc

CompareFunction Ogre::HlmsMacroblock::mDepthFunc

Referenced by operator!=().

## ◆ mDepthWrite

bool Ogre::HlmsMacroblock::mDepthWrite

Referenced by operator!=().

## ◆ mPolygonMode

PolygonMode Ogre::HlmsMacroblock::mPolygonMode

Referenced by operator!=().

## ◆ mScissorTestEnabled

bool Ogre::HlmsMacroblock::mScissorTestEnabled

Referenced by operator!=().

The documentation for this struct was generated from the following file:

- OgreHlmsDatablock.h