Lower final color into final output stage
This commit is contained in:
@@ -35,6 +35,7 @@ constexpr const char* kBuiltinObjectIdShaderPath = "builtin://shaders/object-id"
|
||||
constexpr const char* kBuiltinSkyboxShaderPath = "builtin://shaders/skybox";
|
||||
constexpr const char* kBuiltinColorScalePostProcessShaderPath =
|
||||
"builtin://shaders/color-scale-post-process";
|
||||
constexpr const char* kBuiltinFinalColorShaderPath = "builtin://shaders/final-color";
|
||||
constexpr const char* kBuiltinDefaultPrimitiveTexturePath = "builtin://textures/default-primitive-albedo";
|
||||
constexpr float kPi = 3.14159265358979323846f;
|
||||
|
||||
@@ -59,6 +60,8 @@ constexpr const char* kBuiltinSkyboxShaderManifestRelativePath =
|
||||
"engine/assets/builtin/shaders/skybox/skybox.shader";
|
||||
constexpr const char* kBuiltinColorScalePostProcessShaderManifestRelativePath =
|
||||
"engine/assets/builtin/shaders/color-scale-post-process/color-scale-post-process.shader";
|
||||
constexpr const char* kBuiltinFinalColorShaderManifestRelativePath =
|
||||
"engine/assets/builtin/shaders/final-color/final-color.shader";
|
||||
|
||||
Containers::String NormalizeBuiltinAssetPath(const std::filesystem::path& path) {
|
||||
return Containers::String(path.lexically_normal().generic_string().c_str());
|
||||
@@ -143,6 +146,9 @@ const char* GetBuiltinShaderManifestRelativePath(const Containers::String& built
|
||||
if (builtinShaderPath == Containers::String(kBuiltinColorScalePostProcessShaderPath)) {
|
||||
return kBuiltinColorScalePostProcessShaderManifestRelativePath;
|
||||
}
|
||||
if (builtinShaderPath == Containers::String(kBuiltinFinalColorShaderPath)) {
|
||||
return kBuiltinFinalColorShaderManifestRelativePath;
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
@@ -691,6 +697,10 @@ Shader* BuildBuiltinColorScalePostProcessShader(const Containers::String& path)
|
||||
return TryLoadBuiltinShaderFromManifest(path);
|
||||
}
|
||||
|
||||
Shader* BuildBuiltinFinalColorShader(const Containers::String& path) {
|
||||
return TryLoadBuiltinShaderFromManifest(path);
|
||||
}
|
||||
|
||||
Material* BuildDefaultPrimitiveMaterial(const Containers::String& path) {
|
||||
auto* material = new Material();
|
||||
IResource::ConstructParams params;
|
||||
@@ -817,6 +827,10 @@ Containers::String GetBuiltinColorScalePostProcessShaderPath() {
|
||||
return Containers::String(kBuiltinColorScalePostProcessShaderPath);
|
||||
}
|
||||
|
||||
Containers::String GetBuiltinFinalColorShaderPath() {
|
||||
return Containers::String(kBuiltinFinalColorShaderPath);
|
||||
}
|
||||
|
||||
Containers::String GetBuiltinDefaultPrimitiveTexturePath() {
|
||||
return Containers::String(kBuiltinDefaultPrimitiveTexturePath);
|
||||
}
|
||||
@@ -880,10 +894,7 @@ LoadResult CreateBuiltinMeshResource(const Containers::String& path) {
|
||||
return LoadResult(Containers::String("Unsupported builtin mesh: ") + path);
|
||||
}
|
||||
|
||||
// The UV sphere generator already emits triangles in the runtime's front-face convention.
|
||||
if (primitiveType != BuiltinPrimitiveType::Sphere) {
|
||||
FlipTriangleWinding(buffers);
|
||||
}
|
||||
FlipTriangleWinding(buffers);
|
||||
|
||||
Mesh* mesh = BuildMeshResource(path, GetBuiltinPrimitiveDisplayName(primitiveType), std::move(buffers));
|
||||
if (mesh == nullptr) {
|
||||
@@ -922,6 +933,8 @@ LoadResult CreateBuiltinShaderResource(const Containers::String& path) {
|
||||
shader = BuildBuiltinSkyboxShader(path);
|
||||
} else if (path == GetBuiltinColorScalePostProcessShaderPath()) {
|
||||
shader = BuildBuiltinColorScalePostProcessShader(path);
|
||||
} else if (path == GetBuiltinFinalColorShaderPath()) {
|
||||
shader = BuildBuiltinFinalColorShader(path);
|
||||
} else {
|
||||
return LoadResult(Containers::String("Unknown builtin shader: ") + path);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user