【技术美术】不同物体的渲染处理
【技术美术】不同物体的渲染处理
渲染顺序
不透明物体(从近到远)-> 天空盒 -> 透明物体(从远到近)
- 1 和 2 的顺序原因是为了减少 Overdraw,尽可能利用 early-z 减少需要渲染的像素。
- 3 的顺序原因是为了确保混合正确,因为透明物体依赖后面物体的颜色。
透明物体渲染
透明物体有两种渲染方式:
-
关闭深度写入(始终渲染后面)
透明物体必须按顺序渲染,但排序又是没法完全保证的。如果启用深度写入,虽然前面的物体是半透明的,但由于后面的物体无法通过深度测试,就会出现透明效果时有时无的情况。虽然关闭深度写入,混合效果也不完全正确,但视觉上会好很多。
-
先写入深度再渲染(始终不渲染后面)
自交的网格很容易出现上述的渲染顺序问题。一种在视觉上效果更好的解决方法是:在渲染前,先用一个额外 pass 来写入深度,然后再渲染颜色,这样就可以避免自交的视觉问题。
为什么不直接同时写入深度和颜色?由于先后顺序不定,可能出现先渲染前面导致后面失效,但也可能出现先渲染后面所以前面混合正确的情况,结果就是透明效果时有时无。相比之下,不如直接让后面永远不渲染。
总结起来就是要避免透明效果时有时无的情况,这样视觉效果上才会更好。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现