Forward Rendering 正向渲染
来源:互联网 发布:linux 固定ip 编辑:程序博客网 时间:2024/05/10 16:34
Forward Rendering 正向渲染
正向渲染一个基于着色器的渲染路径。它支持逐像素计算光照(包括法线贴图和灯光Cookies)和来自一个平行光的实时阴影。在默认设置中,少数最亮的灯光在逐像素计算光照模式下渲染。其余的灯光计算对象顶点的光照。
根据影响物体的光源的不同,正向渲染路径用单个或多个通道来渲染物体。在正向渲染中,光源本身也会根据他们的设置和强度受到不同的对待。
实现细节
在正向渲染中,影响物体的最亮的几个光源使用逐像素光照模式。接下来,最多有4个点光源会以逐顶点渲染的方式被计算。其他光源将以球面调和(Spherical Harmonics)的方式进行计算,球面调和技术计算很快但只能得到近似值。根据以下的规则判断一个光源是否为逐像素光源:
注意不同的光照组间有重叠,如,最后一个逐像素光源也以逐顶点光照模式的方式渲染,这样能减少当物体和灯光移动时可能出现的"光照跳跃"现象。
Base Pass 基本通道
基础通道用一个逐像素方向光和所有球面调和光渲染物体。此通道还负责渲染着色器中的光照贴图,环境光和自发光。在此通道中渲染的方向光可以产生阴影。需要注意的是,使用了光照贴图的物体不会得到球面调和光的光照。
Additional Passes 附加通道
附加通道用于渲染影响物体的其他逐像素光源。这些通道中渲染的光源无法产生阴影(因此,前向渲染支持一个能产生阴影的方向光)。
Performance Considerations 性能注意事项
渲染球面调和光很快。它们只花费很少的CPU计算时间,并且实际上无需花费任何GPU计算时间(换言之,基础通道会计算球面调和光照,但由于球面调和光的计算方式,无论有多少球面调和光源,计算它们所花费的时间都是相同的)。
球面调和光源的缺点有:
正向渲染一个基于着色器的渲染路径。它支持逐像素计算光照(包括法线贴图和灯光Cookies)和来自一个平行光的实时阴影。在默认设置中,少数最亮的灯光在逐像素计算光照模式下渲染。其余的灯光计算对象顶点的光照。
根据影响物体的光源的不同,正向渲染路径用单个或多个通道来渲染物体。在正向渲染中,光源本身也会根据他们的设置和强度受到不同的对待。
实现细节
在正向渲染中,影响物体的最亮的几个光源使用逐像素光照模式。接下来,最多有4个点光源会以逐顶点渲染的方式被计算。其他光源将以球面调和(Spherical Harmonics)的方式进行计算,球面调和技术计算很快但只能得到近似值。根据以下的规则判断一个光源是否为逐像素光源:
- 渲染模式被设置为不重要(Not Important)的光源以逐顶点或球面调和的方式进行计算
- 最亮的方向光源为像素光源
- 渲染模式被设置重要(Important)的光源为像素光源
- 如根据以上规则得到的像素光源数量小于质量设置中的像素光源数量(Pixel Light Count),为了减少亮度,会有更多的光源以逐像素的方式进行渲染
- 基础通道渲染一个逐像素方向光和所有的逐顶点/球面调和光。
- 其他逐像素光在附加的通道中进行渲染,每个光源都需要一个通道
注意不同的光照组间有重叠,如,最后一个逐像素光源也以逐顶点光照模式的方式渲染,这样能减少当物体和灯光移动时可能出现的"光照跳跃"现象。
Base Pass 基本通道
基础通道用一个逐像素方向光和所有球面调和光渲染物体。此通道还负责渲染着色器中的光照贴图,环境光和自发光。在此通道中渲染的方向光可以产生阴影。需要注意的是,使用了光照贴图的物体不会得到球面调和光的光照。
Additional Passes 附加通道
附加通道用于渲染影响物体的其他逐像素光源。这些通道中渲染的光源无法产生阴影(因此,前向渲染支持一个能产生阴影的方向光)。
Performance Considerations 性能注意事项
渲染球面调和光很快。它们只花费很少的CPU计算时间,并且实际上无需花费任何GPU计算时间(换言之,基础通道会计算球面调和光照,但由于球面调和光的计算方式,无论有多少球面调和光源,计算它们所花费的时间都是相同的)。
球面调和光源的缺点有:
- 它们计算的是物体的顶点而不是像素。这意味着它们不支持投影遮罩和发现贴图。
- 球面调和光只有很低的频率。球面调和光不能产生锋利的照明过渡。它们也只会影响散射光照(对高光来说,球面调和光的频率太低了)。
- 球面调和不是局部的,靠近曲面的球面调和点光和聚光可能会"看起来不正确"。
0 0
- Forward Rendering 正向渲染
- 正向渲染路径细节 Forward Rendering Path Details
- Unity渲染路径 Rendering Paths_2_Forward Rendering 正向渲染
- Forward Rendering
- Unity前向渲染路径细节(Forward Rendering Path Details)
- Forward Rendering和Deferred Rendering的区别
- 实例渲染Instanced Rendering
- text-rendering文本渲染
- Forward Render VS Deferred Rendering
- Graphics2D渲染(Rendering with Graphics2D)
- AGG 渲染缓存(Rendering Buffer)
- unity3d渲染路径Rendering Path
- unity3d渲染路径Rendering Path
- unity3d渲染路径Rendering Path
- Rendering Problems(布局渲染错误)
- [Unity 笔记] 关于 Unity Forward Rendering
- Unity forward vs deferred rendering path
- Forward vs Deferred vs Forward+ Rendering with DirectX 11
- linux中使用匿名管道实现进程间通信
- linux epoll介绍
- 渲染路径-Deferred Lighting 延时光照
- Vertex Lit 顶点光照
- 正则表达式收集
- Forward Rendering 正向渲染
- QQ邮箱发送邮件代码及分析
- 【NOIP2016提高A组模拟8.19】(雅礼联考day2)总结
- GeometryService方法研究之relation
- 《JAVA与模式》之适配器模式
- Volley框架
- angularjs中ngModelController学习
- socket编程——sockaddr_in结构体操作
- 产品经理对于版本内容了解多少?