1
Fork 0
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:
Joshua Goins 2024-11-02 22:00:47 -04:00
parent 8632786920
commit 0d593ba3a6
2 changed files with 15 additions and 22 deletions

2
extern/libphysis vendored

@ -1 +1 @@
Subproject commit 743ab6bfb1e164c7acc19666321ce1b883ed1da9 Subproject commit 394e83d36b5428ae3f70b0aed98c80aa97f8796c

View file

@ -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"));
bool found = false;
if (id == physis_shpk_crc("TransformView")) {
if (model.skinned) { if (model.skinned) {
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin")); sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
} else { } else {
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid")); sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
} }
found = true;
sceneKeys.push_back(physis_shpk_crc("ApplyVertexMovementOff"));
sceneKeys.push_back(physis_shpk_crc("CalculateInstancingPosition_Off"));
} 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")); // Fall back to default if needed
sceneKeys.push_back(physis_shpk_crc("GetReflectColor_Texture")); if (!found) {
sceneKeys.push_back(physis_shpk_crc("GetAmbientOcclusion_None")); sceneKeys.push_back(renderMaterial.shaderPackage.scene_keys[j].default_value);
sceneKeys.push_back(physis_shpk_crc("ApplyDitherClipOff")); }
} }
std::vector<uint32_t> materialKeys; std::vector<uint32_t> materialKeys;