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) {
|
||||
systemKeys.push_back(physis_shpk_crc("DecodeDepthBuffer_RAWZ"));
|
||||
}
|
||||
|
||||
std::vector<uint32_t> sceneKeys;
|
||||
if (m_dawntrailMode) {
|
||||
sceneKeys.push_back(physis_shpk_crc("ApplyDitherClipOff"));
|
||||
sceneKeys.push_back(physis_shpk_crc("ApplyDissolveColorOff"));
|
||||
sceneKeys.push_back(physis_shpk_crc("GetCustumizeColorAuraOff"));
|
||||
for (int j = 0; j < renderMaterial.shaderPackage.num_scene_keys; j++) {
|
||||
auto id = renderMaterial.shaderPackage.scene_keys[j].id;
|
||||
|
||||
bool found = false;
|
||||
if (id == physis_shpk_crc("TransformView")) {
|
||||
if (model.skinned) {
|
||||
sceneKeys.push_back(physis_shpk_crc("TransformViewSkin"));
|
||||
} else {
|
||||
sceneKeys.push_back(physis_shpk_crc("TransformViewRigid"));
|
||||
}
|
||||
|
||||
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"));
|
||||
found = true;
|
||||
}
|
||||
|
||||
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"));
|
||||
// Fall back to default if needed
|
||||
if (!found) {
|
||||
sceneKeys.push_back(renderMaterial.shaderPackage.scene_keys[j].default_value);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<uint32_t> materialKeys;
|
||||
|
|
Loading…
Add table
Reference in a new issue