I read Advanced MSAA, but I'm still having a problem. As I understand it, if a rendering pass says store {all store_or_resolve}
, then an MSAA color texture will be resolved, but the depth will remain multisampled. So if I start with a node like this,
Code: Select all
compositor_node JWRenderBase
{
texture colorTx target_width target_height target_format msaa_auto
texture depthTx target_width target_height PFG_D32_FLOAT msaa_auto
rtv colorTx
{
depth depthTx
}
target colorTx
{
pass render_scene
{
load { all clear }
store
{
colour store_or_resolve
depth store
stencil dont_care
}
rq_first 0
rq_last 210
}
}
out 0 colorTx
out 1 depthTx
}
then the output color texture should be single-sample but the output depth will be multisample. If I then connect that up to this node
Code: Select all
compositor_node JWDepthResolve
{
in 0 colorTx
in 1 msaaDepth
texture resolvedDepth target_width target_height PFG_D32_FLOAT
target resolvedDepth
{
pass render_quad
{
load { all dont_care }
material Ogre/Resolve/1xFP32_Subsample0
input 0 msaaDepth
}
}
out 0 colorTx
out 1 resolvedDepth
}
then both outputs should be single-sample, no? But when I fed that output into another node that starts like this,
Code: Select all
compositor_node JWFinalNode
{
in 2 ultimateDestination
in 0 colorTx
in 1 depthTx
rtv colorTx2
{
colour colorTx
depth depthTx
}
target colorTx2
{
pass render_scene
then I get an exception with this message:
Code: Select all
OGRE EXCEPTION(2:InvalidParametersException): Manually specified depth buffer 'resolvedDepth[Value 0x00000006]' is incompatible with colour RTT #0'colorTx[Value 0x00000004]
Colour: 448x448x1 4x MSAA PFG_BGRA8_UNORM_SRGB
Depth: 448x448x1 1x MSAA PFG_D32_FLOAT in RenderPassDescriptor::entriesModified
Where is Ogre getting those MSAA texture types?