mirror of
https://github.com/redstrate/Novus.git
synced 2025-04-23 04:27:45 +00:00
Don't hardcode scene keys anymore
This allows us to properly support a wider variety of shader packages and also don't have to worry about Dawntrail specifically for now.
This commit is contained in:
parent
8632786920
commit
0d593ba3a6
2 changed files with 15 additions and 22 deletions
2
extern/libphysis
vendored
2
extern/libphysis
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 743ab6bfb1e164c7acc19666321ce1b883ed1da9
|
Subproject commit 394e83d36b5428ae3f70b0aed98c80aa97f8796c
|
|
@ -327,32 +327,25 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &
|
||||||
if (renderMaterial.type == MaterialType::Skin && !m_dawntrailMode) {
|
if (renderMaterial.type == MaterialType::Skin && !m_dawntrailMode) {
|
||||||
systemKeys.push_back(physis_shpk_crc("DecodeDepthBuffer_RAWZ"));
|
systemKeys.push_back(physis_shpk_crc("DecodeDepthBuffer_RAWZ"));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<uint32_t> sceneKeys;
|
std::vector<uint32_t> sceneKeys;
|
||||||
if (m_dawntrailMode) {
|
for (int j = 0; j < renderMaterial.shaderPackage.num_scene_keys; j++) {
|
||||||
sceneKeys.push_back(physis_shpk_crc("ApplyDitherClipOff"));
|
auto id = renderMaterial.shaderPackage.scene_keys[j].id;
|
||||||
sceneKeys.push_back(physis_shpk_crc("ApplyDissolveColorOff"));
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("GetCustumizeColorAuraOff"));
|
|
||||||
|
|
||||||
if (model.skinned) {
|
bool found = false;
|
||||||
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
|
if (id == physis_shpk_crc("TransformView")) {
|
||||||
} else {
|
if (model.skinned) {
|
||||||
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
|
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
|
||||||
|
} else {
|
||||||
|
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
|
||||||
|
}
|
||||||
|
found = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("ApplyVertexMovementOff"));
|
// Fall back to default if needed
|
||||||
sceneKeys.push_back(physis_shpk_crc("CalculateInstancingPosition_Off"));
|
if (!found) {
|
||||||
|
sceneKeys.push_back(renderMaterial.shaderPackage.scene_keys[j].default_value);
|
||||||
} else {
|
|
||||||
if (model.skinned) {
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
|
|
||||||
} else {
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("GetAmbientLight_SH"));
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("GetReflectColor_Texture"));
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("GetAmbientOcclusion_None"));
|
|
||||||
sceneKeys.push_back(physis_shpk_crc("ApplyDitherClipOff"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<uint32_t> materialKeys;
|
std::vector<uint32_t> materialKeys;
|
||||||
|
|
Loading…
Add table
Reference in a new issue