2df6e57b613d5cb05f6b086175b386da8712fa1c
默认 ClearColor 0.1 → 0(策划阶段结束,无用)。 透明分层折射(玻璃见玻璃):透明段原来单个 ForwardTrans pass,折射 采样源 SceneColor 副本只在不透明段后快照一次(不含任何透明体)→ 前 玻璃折射不出后玻璃。改为按绘制单位远→近拆成至多 kTransparentLayers 层,每层绘制前刷新 SceneColor 副本,使层 L 玻璃采样含所有更远透明体。 RenderGraph pass 编译期定序,故层数固定;超出并入末层。深度 storeOp 改 eStore(多层需 Load 承接有效深度内容)。shader 不改。 透明排序修正:排序键由"相机到实例的欧氏距离"改为视图空间深度 (-(view·p).z)——欧氏距离把侧向偏移计入距离,偏侧物体被误判为更远 (正方体右上的甜甜圈在特定视角被排到后方)。并让透明队列逐实例成批 (不合并):透明本就是每层一个绘制单位,合并成多实例 batch 会让排序 只能用批平均深度、批内实例无法各自定序。零额外 draw 代价。
Description
No description provided
5.6 MiB
Languages
C++
56.3%
C
41.6%
GLSL
1.8%
CMake
0.3%