【技术美术】不同物体的渲染处理

【技术美术】不同物体的渲染处理

渲染顺序

不透明物体(从近到远)-> 天空盒 -> 透明物体(从远到近)

  • 1 和 2 的顺序原因是为了减少 Overdraw,尽可能利用 early-z 减少需要渲染的像素。
  • 3 的顺序原因是为了确保混合正确,因为透明物体依赖后面物体的颜色。

透明物体渲染

透明物体有两种渲染方式:

  • 关闭深度写入(始终渲染后面)

    透明物体必须按顺序渲染,但排序又是没法完全保证的。如果启用深度写入,虽然前面的物体是半透明的,但由于后面的物体无法通过深度测试,就会出现透明效果时有时无的情况。虽然关闭深度写入,混合效果也不完全正确,但视觉上会好很多。

  • 先写入深度再渲染(始终不渲染后面)

    自交的网格很容易出现上述的渲染顺序问题。一种在视觉上效果更好的解决方法是:在渲染前,先用一个额外 pass 来写入深度,然后再渲染颜色,这样就可以避免自交的视觉问题。

    为什么不直接同时写入深度和颜色?由于先后顺序不定,可能出现先渲染前面导致后面失效,但也可能出现先渲染后面所以前面混合正确的情况,结果就是透明效果时有时无。相比之下,不如直接让后面永远不渲染。

总结起来就是要避免透明效果时有时无的情况,这样视觉效果上才会更好。

posted @ 2025-02-23 20:19  BDFFZI  阅读(39)  评论(0)    收藏  举报