首页 > 其他分享 >前向渲染和延迟渲染

前向渲染和延迟渲染

时间:2024-04-12 09:04:45浏览次数:23  
标签:灯光 渲染 前向 点光源 计算 延迟

光照计算总览

光照计算

image

Render Path渲染路径

它决定了一个shader是以怎样的一种方式渲染灯光
image

Unity前向渲染

前向渲染预览

Camera组件设置Rendering Path为Forward,其默认的渲染方式也是Forward
image
目前场景中有1个平行光,和5个点光灯,1个球体,一个地面,我们发现每个灯光都对每个物体渲染了1次
image
但我们可以注意到,有6个光源,每个物体却只渲染了5次,而且右上角的点光源似乎有点粗糙,这是因为它和平行光都归入了同一个Pass计算(ForwardBase),且该点光源是在顶点着色器中计算。其他点光源是在另一个Pass中计算(ForwardAdd)
该图可以注意到第一次计算就把平行光和点光源一起计算出来了
image
image
为什么1个点光源和平行光会合在一起计算,这是因为前向渲染灯光的消耗问题,我们引擎对光源的数量有限制,超出的灯光只能在顶点着色器中进行计算
image
超出灯光数量也有限制,最多4个灯,多了会发现渲染不出来
image

前向渲染规则

内光灯指其他平行光、点光源、聚光灯灯
image

Unity延迟渲染

延迟渲染预览

Camera组件设置Rendering Path为Deferred
image
我们可以看到在DEFFERRED Pass中采用MRT(Multi Render Target)计算,预先生成4张图(RT0 - RT1)。注意,是每个物体都要单独做一次MRT计算
RT0:diffuse信息(基本的BaseColor)
RT1:metallic信息(金属反射的颜色)
RT2:normal信息(法线)
RT3:depth信息(深度)
image
然后以灯光为单位,每个灯光再对场景单独绘制一次。不像前向渲染,每个物体都要调用灯光一遍
image
可以看到,做法就是拿到先前算好的一系列RT图标
image

前向渲染和延迟渲染对比

以上面举例场景为例。
延迟渲染计算复杂度:2(场景中每个物体做MRT) + 5(每个灯光数量) + 1(Draw GL) = 8
前向渲染计算复杂度:2(场景中每个物体数量) * 5(每个灯光数量) = 10
延迟渲染计算量复杂度更少,但是延迟渲染每个物体都要生成跟屏幕相同尺寸的4张图,对带宽的占用非常高,有些机型甚至不支持MRT。前向渲染则比较轻量化,如果灯光少的化,用前向渲染是挺好的

主方向灯判断

image
一个场景中,只有一个主方向灯(或者指定数量的像素灯),你可以把你希望是主方向灯(或者像素灯)标记为Important,如果Auto的话,它则将把Intensity最大的灯,作为主方向灯(像素灯)。

标签:灯光,渲染,前向,点光源,计算,延迟
From: https://www.cnblogs.com/chenxiayun/p/18127928

相关文章

  • 3dmax2024渲染大图高清参数,3dmax效果图渲染设置
    ​2024版的3dsMax带来了更为强大的渲染工具和优化的参数设置,使得设计师能够创造出令人惊叹的视觉作品,何利用3dsMax2024的先进功能,精心调整渲染参数,以实现高分辨率、高质量的效果图输出,满足专业设计和视觉表现的需求。下面一起来看看。3dmax2024渲染高清图的参数设置1、打开......
  • oc渲染预览出来是白色怎么解决?云渲染解决oc渲染慢
    许多初学者在使用OC渲染器进行三维图像渲染时,经常会遇到一个常见问题:预览图像显示正常,但最终渲染完成的作品却出现整体亮度过高,即泛白现象。针对这一问题,本文将提供专业的解决方案,并探讨如何利用云渲染技术来提升OC渲染器的处理速度,帮助用户克服渲染过程中的挑战,确保最终输出的图......
  • 用于平板电脑的建筑效果图渲染工具!最后必备云渲染插件
    当前市场上存在众多适用于平板电脑的软件,它们能够让用户轻松体验建筑效果图的渲染过程。对于刚开始学习建筑渲染的用户而言,选择一款界面直观、功能基础且能够迅速完成渲染任务的软件显得尤为关键。下面,我们将探讨一些适合初学者使用的平板电脑上的建筑渲染软件。适于平板电脑的......
  • 渲染农场实时画面怎么设置?云渲染农场实时预览效果查看
    许多用户在使用渲染农场服务时,常常难以找到查看实时渲染画面的功能。由于渲染是一个时间消耗较大的任务,如果最终结果与预期不符,可能会对整个工作流程产生负面影响。因此,渲染平台若能提供实时预览渲染进度和效果的功能,将显著提高用户的使用体验,并帮助他们更加直观地把握渲染质量。......
  • 浅谈从浏览器输入URL到页面渲染的流程
    浏览器输入URL到页面渲染完成,这个过程大致可分为两个阶段:网络通信和页面渲染。一、网络通信互联网内各网络间设备的通信遵循TCP/IP协议,利用TCP/IP协议进行网络通信时,会通过分层与对方通信。数据传输的过程:由应用层产生数据后,经过传输层的分段处理(添加TCP或UDP包头)、网络层(添加IP......
  • java switch 自定义表格的渲染和编辑示例
    目录正常使用表格自定义表格样式正常使用表格很简单,使用一次就知道了,不过多介绍。//创建JTable实例,使用默认的模型JTabletable=newJTable();//设置表格数据Object[][]data={ {1,"Apple",10.0}, {2,"Banana",5.0}, {3,"Orange",8.0}};Object[]col......
  • 你真会判断DataGuard的延迟吗?
    这是一个比较细节的知识点,但必须要理解这个才能准确判断OracleADG的延迟情况。以前做运维工作时,记得是要同时重点关注v$dataguard_stats视图中的几个字段的值,分别是:NAME、VALUE、TIME_COMPUTED、DATUM_TIME。本文先不考虑v$dataguard_stats视图没有数值显示的特殊情况,只针对当v......
  • 监控指标体系:交互延迟上的探索与最佳实践
    FID在互联网高速发展的时代,用户体验已成为企业竞争的关键所在。网页性能作为用户体验的重要组成部分,直接影响着用户的满意度和工作效率。FirstInputDelay(FID)作为衡量网页性能的重要指标,越来越受到业界关注。今天,让我们一起来深入了解FID,探讨如何优化FID以提升用户体验,同时......
  • 3dmax渲染十几个小时怎么办?3dmax怎么多机渲染
    当使用3dsMax进行渲染作业时,如果发现单张图像的渲染时间长达十数小时,这可能是由于计算机硬件配置较低或渲染场景过于复杂所致。为了缩短渲染时间并提高效率,我们可以考虑采用多台计算机进行协同渲染。下面,让我们一起探讨如何通过这种方式优化渲染流程。3dmax渲染十几个小时正常......
  • 浏览器工作原理与实践--渲染流水线:CSS如何影响首次加载时的白屏时间
    在上一篇文章中我们详细介绍了DOM的生成过程,并结合具体例子分析了JavaScript是如何阻塞DOM生成的。那本文我们就继续深入聊聊渲染流水线中的CSS。因为CSS是页面中非常重要的资源,它决定了页面最终显示出来的效果,并影响着用户对整个网站的第一体验。所以,搞清楚浏览器中的CSS是怎......