3.5 Early-Z 与 Z Prepass

2023-10-29 06:04
文章标签 3.5 early prepass

本文主要是介绍3.5 Early-Z 与 Z Prepass,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、深度测试DepthTest

1.传统渲染管线中的深度测试

深度测试在逐片元操作中的第二步

2.解决物体可见遮挡性的问题

3.深度测试的逻辑

for(each triangle T) //对每一个三角形	
{				for(each fragment(x,y,z) in T)//对每一个三角形中的片元 {	   	if(fragment.z < ZBuffer[x,y])//深度测试:如果片元深度小于ZBuffer深度{	FrameBuffer[x,y] = fragment.rgb; //更新颜色     ZBuffer[x,y] = fragment.z;		 //更新深度     }        else{					//深度测试失败        		//什么都不做,片元数据被丢弃       }    }
}

4.深度测试带来的问题

物体2与物体3的计算得到的片元都将会被丢弃

先将1、2、3进行片元着色后,在进行深度测试后抛弃2、3,则2、3在片元部分做的计算都浪费掉了。

二、提前深度测试Early-Z

应用阶段(CPU)->几何阶段(顶点着色器)->early-z(提前深度测试)->光栅化阶段(片元着色器)->各种测试(深度测试,透明度测试,模板测试等)->颜色缓冲区(buffer)

Early-Z失效:

1. 开启Alpha Test 或 clip/discard 等手动丢弃片元操作

2. 手动修改GPU插值得到的深度

3. 开启Alpha Blend

4. 关闭深度测试Depth Test

如果按照3-2-1顺序渲染测试,Early-Z将不会带来任何优化效果

三、使用Z-Prepass

方式一:双Pass法

  • 使用两个Pass:
    • 在第一个Pass即Z-Prepass中仅仅值写入深度,不计算输出任何颜色。
    • 在第二个Pass中关闭深度写入,并且将深度比较函数设置为相等。

动态批处理问题:

DrawCall问题:

方式二:提前分离的PrePass

  • 仍然使用两个Pass,但:
    • 将原先第一个Pass(即Z-Prepass)单独分离出来未单独一个Shader,并先使用这个Shader将整个场景的Opaque的物体渲染一遍。
    • 而原先材质只剩下元原先的第二个Pass,仍然关闭深度写入,并且将深度比较函数设置为相等。

例子:使用URP下的RendererFeature

Z-Prepass也是透明渲染的一种解决方案

单Pass不写入深度的透明渲染 第一Z-Prepass写入深度,第二Pass(Ztest Equal)透明渲染

四、Z-Prepass所带来的问题

Z-Prepass的计算消耗

五、Early-Z 和 Z-Prepass的实例应用

这篇关于3.5 Early-Z 与 Z Prepass的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298723

相关文章

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

以后写代码都是AI自动写了,Cursor+Claude-3.5-Sonnet,Karpathy 点赞的 AI 代码神器。如何使用详细教程

Cursor 情况简介 AI 大神 Andrej Karpathy 都被震惊了!他最近在试用 VS Code Cursor +Claude Sonnet 3.5,结果发现这玩意儿比 GitHub Copilot 还好用! Cursor 在短短时间内迅速成为程序员群体的顶流神器,其背后的原因在于其默认使用 OpenAI 投资的 Claude-3.5-Sonnet 模型,这一举动不仅改变了代码生成

一键部署Phi 3.5 mini+vision!多模态阅读基准数据集MRR-Benchmark上线,含550个问答对

小模型又又又卷起来了!微软开源三连发!一口气发布了 Phi 3.5 针对不同任务的 3 个模型,并在多个基准上超越了其他同类模型。 其中 Phi-3.5-mini-instruct 专为内存或算力受限的设备推出,小参数也能展现出强大的推理能力,代码生成、多语言理解等任务信手拈来。而 Phi-3.5-vision-instruct 则是多模态领域的翘楚,能同时处理文本和视觉信息,图像理解、视频摘要

带AI功能朵米客服系统3.5无限制开心版+搭建文档

带AI功能朵米客服系统3.5无限制开心版+搭建文档,朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持(如在线聊天、邮件、电话等),帮助企业建立与客户的实时互动。该系统具有智能分流功能,可以快速将客户请求分配给适当的客服人员,提高工作效率。同时,朵米客服系统还提供丰富的数据分析和报告功能,帮助企业了解客户需求和行为,从而优化服务质量。总体而言,朵米客服系统致力于提升客户体验,提高客服效率,

内核调试之early printk

early printk 解决什么问题那?本质也是打印调试信息,但是不同于printk,printk属于打印的一个框架,既然是框架必然需要一些必备条件,框架的初始化等,在内核启动初期这些框架都没来得及初始化,所以这些函数肯定不能用,eary pritnk实现就比较直接简单,就是直接调用对应芯片的串口寄存器,把数据写到串口控制器寄存器里面,只要你芯片启动了就能输出。各个架构下都实现了

Vue 3.5 的一些主要特性及其代码示例

Vue 3.5 的一些主要特性及其代码示例,依照vue官网整理。更多详细内容,请参考 Vue 官方文档。 1. Script Setup 语法 <script setup> 是一种编写组合式 API(Composition API)的简洁语法,它允许你在单文件组件中直接声明响应式状态和计算属性,而不需要显式地返回它们。 <template><div>{{ message }}</div><

微软发布Phi-3.5 SLM,附免费申请试用

Phi-3 模型系列是Microsoft 小型语言模型 (SLM) 系列中的最新产品。 它们旨在具有高性能和高性价比,在语言、推理、编码和数学等各种基准测试中的表现均优于同类和更大规模的模型。Phi-3 模型的推出扩大了 Azure 客户的高质量模型选择范围,为他们编写和构建生成式 AI 应用程序时提供了更多实用的选择。 参考链接:微软 Azure AI 、Phi-3等免费试用申请 自 20

ChatGPT 3.5/4.0使用手册:解锁人工智能的无限潜能

1. 引言 在人工智能的浪潮中,ChatGPT以其卓越的语言理解和生成能力,成为了一个革命性的工具。它不仅仅是一个聊天机器人,更是一个能够协助我们日常工作、学习和创造的智能伙伴。随着ChatGPT 3.5和4.0版本的推出,其功能和应用范围得到了前所未有的扩展。本手册旨在为所有希望充分利用ChatGPT潜能的用户,提供一个全面的指南和实用的参考。 1.1 介绍ChatGPT的重要性和普及度

吐血整理(最全论文指令手册),还有 ChatGPT 3.5/4.0 新手使用手册~ 【亲测好用】

今天给大家分享下论文润色、降重、写作的GPT指令提示词,按论文步骤整理 让你的文章更加有逻辑且通顺,助力快速完成论文,相信对你有帮助~ 一、论文写作润色指令 1、写作选题指令 ① 确定研究对象 我是一名【XXXXX】,请从以下素材内容中,结合【XXXXX】相关知识,提炼出可供参考的学术概念。以下是结合素材内容,提炼出的几个可供参考的学术概念: 【概念 a】、【概念 b】、【概念

OpenAI发布GPT-4o mini,3.5从此退出历史舞台?

随着OpenAI在2024年7月18日正式发布GPT-4o Mini,无疑在科技界引发了一场新的风暴。这一创新不仅标志着GPT-3.5模型正式退出历史舞台,更预示着人工智能在自然语言处理领域迈入了一个全新的时代。 之前速度最快的模型一直是GPT3.5,随着后来的GPT-4o推出成为了最快。 尽管目前处于初步阶段,第三方测试结果显示GPT4o的响应速度堪称顶尖,这或许可以归因于其相对较小