材质表面参数接通:新增 emissiveFactor(无 emissive 贴图时的发光入口,glTF 语义)入 UBO/YAML/缓存键/两 shader;Transmission/Thickness 未勾 Transparent 时禁用编辑(不透明段 shader 不读)

This commit is contained in:
2026-10-09 00:04:55 +08:00
parent 235482733c
commit 6447b5c0fa
6 changed files with 42 additions and 8 deletions
+4 -1
View File
@@ -84,7 +84,10 @@ namespace Engine
",s:" + std::to_string(params.surface.x) +
"," + std::to_string(params.surface.y) +
"," + std::to_string(params.surface.z) +
"," + std::to_string(params.surface.w);
"," + std::to_string(params.surface.w) +
",e:" + std::to_string(params.emissiveFactor.x) +
"," + std::to_string(params.emissiveFactor.y) +
"," + std::to_string(params.emissiveFactor.z);
// per-slot UV 变换 + unlit 入键:同一张贴图配不同变换是不同材质
//(KHR_texture_transform 测试模型:一张棋盘格被 82 个材质以不同
// 变换共享,键漏了会串成同一份)
+4
View File
@@ -84,6 +84,8 @@ namespace Engine
EmitVec4(out, data.params.baseColor);
out << YAML::Key << "Surface" << YAML::Value;
EmitVec4(out, data.params.surface);
out << YAML::Key << "EmissiveFactor" << YAML::Value;
EmitVec4(out, data.params.emissiveFactor);
out << YAML::Key << "Misc" << YAML::Value;
EmitVec4(out, data.params.misc);
// per-slot UV 变换(KHR_texture_transform):6 槽各 A(4 分量) + T
@@ -145,6 +147,8 @@ namespace Engine
m["BaseColor"], MaterialParams{}.baseColor);
out.params.surface = ReadVec4(
m["Surface"], MaterialParams{}.surface);
out.params.emissiveFactor = ReadVec4(
m["EmissiveFactor"], MaterialParams{}.emissiveFactor);
out.params.misc = ReadVec4(
m["Misc"], MaterialParams{}.misc);
for (u32 slot = 0; slot < Material::kSlotCount; ++slot) {