Fix scene selection outline mask path

This commit is contained in:
2026-04-09 05:16:04 +08:00
parent c48311eaaf
commit 2084412010
29 changed files with 1250 additions and 56 deletions

View File

@@ -33,6 +33,8 @@ constexpr const char* kBuiltinDepthOnlyShaderPath = "builtin://shaders/depth-onl
constexpr const char* kBuiltinShadowCasterShaderPath = "builtin://shaders/shadow-caster";
constexpr const char* kBuiltinObjectIdShaderPath = "builtin://shaders/object-id";
constexpr const char* kBuiltinObjectIdOutlineShaderPath = "builtin://shaders/object-id-outline";
constexpr const char* kBuiltinSelectionMaskShaderPath = "builtin://shaders/selection-mask";
constexpr const char* kBuiltinSelectionOutlineShaderPath = "builtin://shaders/selection-outline";
constexpr const char* kBuiltinSkyboxShaderPath = "builtin://shaders/skybox";
constexpr const char* kBuiltinVolumetricShaderPath = "builtin://shaders/volumetric";
constexpr const char* kBuiltinColorScalePostProcessShaderPath =
@@ -60,6 +62,10 @@ constexpr const char* kBuiltinObjectIdShaderAssetRelativePath =
"engine/assets/builtin/shaders/object-id.shader";
constexpr const char* kBuiltinObjectIdOutlineShaderAssetRelativePath =
"engine/assets/builtin/shaders/object-id-outline.shader";
constexpr const char* kBuiltinSelectionMaskShaderAssetRelativePath =
"engine/assets/builtin/shaders/selection-mask.shader";
constexpr const char* kBuiltinSelectionOutlineShaderAssetRelativePath =
"engine/assets/builtin/shaders/selection-outline.shader";
constexpr const char* kBuiltinSkyboxShaderAssetRelativePath =
"engine/assets/builtin/shaders/skybox.shader";
constexpr const char* kBuiltinVolumetricShaderAssetRelativePath =
@@ -149,6 +155,12 @@ const char* GetBuiltinShaderAssetRelativePath(const Containers::String& builtinS
if (builtinShaderPath == Containers::String(kBuiltinObjectIdOutlineShaderPath)) {
return kBuiltinObjectIdOutlineShaderAssetRelativePath;
}
if (builtinShaderPath == Containers::String(kBuiltinSelectionMaskShaderPath)) {
return kBuiltinSelectionMaskShaderAssetRelativePath;
}
if (builtinShaderPath == Containers::String(kBuiltinSelectionOutlineShaderPath)) {
return kBuiltinSelectionOutlineShaderAssetRelativePath;
}
if (builtinShaderPath == Containers::String(kBuiltinSkyboxShaderPath)) {
return kBuiltinSkyboxShaderAssetRelativePath;
}
@@ -710,6 +722,14 @@ Shader* BuildBuiltinObjectIdOutlineShader(const Containers::String& path) {
return TryLoadBuiltinShaderFromAsset(path);
}
Shader* BuildBuiltinSelectionMaskShader(const Containers::String& path) {
return TryLoadBuiltinShaderFromAsset(path);
}
Shader* BuildBuiltinSelectionOutlineShader(const Containers::String& path) {
return TryLoadBuiltinShaderFromAsset(path);
}
Shader* BuildBuiltinSkyboxShader(const Containers::String& path) {
return TryLoadBuiltinShaderFromAsset(path);
}
@@ -735,9 +755,6 @@ Material* BuildDefaultPrimitiveMaterial(const Containers::String& path) {
params.memorySize = 0;
material->Initialize(params);
MaterialRenderState renderState = {};
renderState.cullMode = MaterialCullMode::Back;
material->SetRenderState(renderState);
material->SetRenderQueue(MaterialRenderQueue::Geometry);
material->SetShader(ResourceManager::Get().Load<Shader>(GetBuiltinForwardLitShaderPath()));
material->SetTexture(
@@ -823,6 +840,14 @@ bool TryGetBuiltinShaderPathByShaderName(
outPath = GetBuiltinObjectIdOutlineShaderPath();
return true;
}
if (shaderName == "Builtin Selection Mask") {
outPath = GetBuiltinSelectionMaskShaderPath();
return true;
}
if (shaderName == "Builtin Selection Outline") {
outPath = GetBuiltinSelectionOutlineShaderPath();
return true;
}
if (shaderName == "Builtin Skybox") {
outPath = GetBuiltinSkyboxShaderPath();
return true;
@@ -902,6 +927,14 @@ Containers::String GetBuiltinObjectIdOutlineShaderPath() {
return Containers::String(kBuiltinObjectIdOutlineShaderPath);
}
Containers::String GetBuiltinSelectionMaskShaderPath() {
return Containers::String(kBuiltinSelectionMaskShaderPath);
}
Containers::String GetBuiltinSelectionOutlineShaderPath() {
return Containers::String(kBuiltinSelectionOutlineShaderPath);
}
Containers::String GetBuiltinSkyboxShaderPath() {
return Containers::String(kBuiltinSkyboxShaderPath);
}
@@ -1018,6 +1051,10 @@ LoadResult CreateBuiltinShaderResource(const Containers::String& path) {
shader = BuildBuiltinObjectIdShader(path);
} else if (path == GetBuiltinObjectIdOutlineShaderPath()) {
shader = BuildBuiltinObjectIdOutlineShader(path);
} else if (path == GetBuiltinSelectionMaskShaderPath()) {
shader = BuildBuiltinSelectionMaskShader(path);
} else if (path == GetBuiltinSelectionOutlineShaderPath()) {
shader = BuildBuiltinSelectionOutlineShader(path);
} else if (path == GetBuiltinSkyboxShaderPath()) {
shader = BuildBuiltinSkyboxShader(path);
} else if (path == GetBuiltinVolumetricShaderPath()) {