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

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

渲染顺序

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

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

透明物体渲染

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

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

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

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

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

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

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

posted @   BDFFZI  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示