Talk:M2/Rendering: Difference between revisions
< Talk:M2
Jump to navigation
Jump to search
m (→MoP) |
mNo edit summary |
||
Line 91: | Line 91: | ||
+ 4 * (((v15 >> 1) & 1) + 4 * (v44 + v17)); | + 4 * (((v15 >> 1) & 1) + 4 * (v44 + v17)); | ||
// v20: possibly 'use ssao' (1) | |||
// v21: lighting enabled (1) | // v21: lighting enabled (1) | ||
Revision as of 23:35, 4 December 2016
D3D11_BLEND
typedef enum D3D11_BLEND {
D3D11_BLEND_ZERO = 1,
D3D11_BLEND_ONE = 2,
D3D11_BLEND_SRC_COLOR = 3,
D3D11_BLEND_INV_SRC_COLOR = 4,
D3D11_BLEND_SRC_ALPHA = 5,
D3D11_BLEND_INV_SRC_ALPHA = 6,
D3D11_BLEND_DEST_ALPHA = 7,
D3D11_BLEND_INV_DEST_ALPHA = 8,
D3D11_BLEND_DEST_COLOR = 9,
D3D11_BLEND_INV_DEST_COLOR = 10,
D3D11_BLEND_SRC_ALPHA_SAT = 11,
D3D11_BLEND_BLEND_FACTOR = 14,
D3D11_BLEND_INV_BLEND_FACTOR = 15,
D3D11_BLEND_SRC1_COLOR = 16,
D3D11_BLEND_INV_SRC1_COLOR = 17,
D3D11_BLEND_SRC1_ALPHA = 18,
D3D11_BLEND_INV_SRC1_ALPHA = 19
} D3D11_BLEND;
3.3.5a Shader Buffer Layouts
Vertex
- c10: vec4(diffuse.rgb, padding)
- c11: vec4(ambient.rgb, padding)
- c12: vec4(lightDir.xyz, padding) (lightDir is transformed by view matrix before upload to GPU)
- c28: vec4(?, ?, ?, texWeight) (texWeight is the value from the animated texture weight track for batch)
- c29: vec4(animColor.rgb, ?) (animColor is the value from the animated color track for batch)
Draw Layers
Not sure what to call these... layers? modes? passes?
- 0: CM2SceneRender::DrawBatchProj
- 1: CM2SceneRender::DrawPrepassBatch || CM2SceneRender::DrawBatch
- 2: CM2SceneRender::DrawBatchDoodad
- 3: CM2SceneRender::DrawRibbon
- 4: CM2SceneRender::DrawParticle
- 5: CM2SceneRender::DrawCallback
Shader Permute Selection
MoP
v35 = a3->skinSection->boneInfluences;
// 3-bit int stored in bits 29-31
v10 = (a3->renderInfo & 0xE0000000) >> 29;
if ( v10 == 2 ) {
v44 = 4;
// boneInfluences >= 1
if ( v35 ) {
v34 = 2;
if ( v35 <= 2u )
v34 = v35;
v44 = 4 * v34;
}
} else {
v11 = 2;
// boneInfluences <= 2
if ( v35 <= 2u )
v11 = v35;
v44 = 4 * v11;
}
// v16: use instancing (1)
// v17: lighting enabled (1)
element->m_vertexShaderPermuteIdx =
v45
+ v16
+ 4 * (((v15 >> 1) & 1) + 4 * (v44 + v17));
// v20: possibly 'use ssao' (1)
// v21: lighting enabled (1)
element->m_pixelShaderPermuteIdx =
v14
+ 4 * (CShaderEffect::s_usePcfFiltering + 2 * (v43 + 2 * (v21 + 2 * (a4 + 2 * (v20 + 2 * (v38 == 4))))));