十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从模型到像素:渲染管线后期阶段深度解析

从模型到像素:渲染管线后期阶段深度解析 开场做 3D 项目的时候,你有没有遇到过这种场景——明明模型、贴图、光照都摆好了,运行起来却发现半透明物体和实心物体叠加后出现黑边,或者远处的物体穿透了近处的物体,又或者透明玻璃后面什么都没显示?这些翻车问题,十有八九都出在渲染管线的最后一站——Output Merger(输出合并,简称 OM)阶段,也就是像素已经算完颜色、准备写进帧缓冲的那一步。整个渲染管线粗看是“顶点处理 → 光栅化 → 像素着色 → 输出合并”四段旅程,前三段决定“每个像素算出什么颜色”,而 OM 决定“这个颜色最终能不能、以及怎样落到屏幕上”。这一关看着不起眼——不就是把颜色塞进 Framebuffer 嘛——但它里面藏着深度测试、模板测试、混合、Early-Z 这些工程化关键点,而且全是只能配置、不能编程的固定功能硬件。今天咱们把这块彻底拆开。一、OM 阶段的核心操作像素着色器(Pixel Shader)算出来的颜色,并不是直接落到屏幕上的。GPU 在写入之前,要让它过一串闸门。下面这几步决定了最终画面长什么样。1.1 深度测试:谁是挡路的英雄深度测试(Depth Test)是第一道闸门:拿当前像素的深度和深度缓冲(Z-Buffer)里已存的值比一比,比不过就丢弃,连写入的机会都不给。// ShaderLab:深度相关的两个开关 ZWrite On // 是否把深度写进 Z-Buffer(不透明物体开,半透明物体关) ZTest LEqual // 比较函数:深度小于等于(更近)才通过,Unity
返回列表