Skip to content

Commit 0d593ba

Browse files
committed
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.
1 parent 8632786 commit 0d593ba

File tree

2 files changed

+15
-22
lines changed

2 files changed

+15
-22
lines changed

extern/libphysis

renderer/src/gamerenderer.cpp

+14-21
Original file line numberDiff line numberDiff line change
@@ -327,32 +327,25 @@ void GameRenderer::render(VkCommandBuffer commandBuffer, Camera &camera, Scene &
327327
if (renderMaterial.type == MaterialType::Skin && !m_dawntrailMode) {
328328
systemKeys.push_back(physis_shpk_crc("DecodeDepthBuffer_RAWZ"));
329329
}
330+
330331
std::vector<uint32_t> sceneKeys;
331-
if (m_dawntrailMode) {
332-
sceneKeys.push_back(physis_shpk_crc("ApplyDitherClipOff"));
333-
sceneKeys.push_back(physis_shpk_crc("ApplyDissolveColorOff"));
334-
sceneKeys.push_back(physis_shpk_crc("GetCustumizeColorAuraOff"));
332+
for (int j = 0; j < renderMaterial.shaderPackage.num_scene_keys; j++) {
333+
auto id = renderMaterial.shaderPackage.scene_keys[j].id;
335334

336-
if (model.skinned) {
337-
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
338-
} else {
339-
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
335+
bool found = false;
336+
if (id == physis_shpk_crc("TransformView")) {
337+
if (model.skinned) {
338+
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
339+
} else {
340+
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
341+
}
342+
found = true;
340343
}
341344

342-
sceneKeys.push_back(physis_shpk_crc("ApplyVertexMovementOff"));
343-
sceneKeys.push_back(physis_shpk_crc("CalculateInstancingPosition_Off"));
344-
345-
} else {
346-
if (model.skinned) {
347-
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
348-
} else {
349-
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
345+
// Fall back to default if needed
346+
if (!found) {
347+
sceneKeys.push_back(renderMaterial.shaderPackage.scene_keys[j].default_value);
350348
}
351-
352-
sceneKeys.push_back(physis_shpk_crc("GetAmbientLight_SH"));
353-
sceneKeys.push_back(physis_shpk_crc("GetReflectColor_Texture"));
354-
sceneKeys.push_back(physis_shpk_crc("GetAmbientOcclusion_None"));
355-
sceneKeys.push_back(physis_shpk_crc("ApplyDitherClipOff"));
356349
}
357350

358351
std::vector<uint32_t> materialKeys;

0 commit comments

Comments
 (0)