
Unity GPU Instance(翻译十九)
本篇摘要: 渲染大量球体-优化DrawCall 支持GPU-Instance 使用材质属性块 LOD-Groups支持GPU-Instance Batching Instance-批处理 指示GPU绘制需要花时间;向其传递mesh和material属性也要花时间。现在已知两种节省Draw Call的方式:static和dynamic batching Unity...

本篇摘要: 渲染大量球体-优化DrawCall 支持GPU-Instance 使用材质属性块 LOD-Groups支持GPU-Instance Batching Instance-批处理 指示GPU绘制需要花时间;向其传递mesh和material属性也要花时间。现在已知两种节省Draw Call的方式:static和dynamic batching Unity...

本篇摘要: 支持实时全局光照 用动画控制发光对GI的贡献 使用光照探针代理体LPPV LOD组与GI结合 LOD之间的淡入淡出 从这篇开始,这个系列教程将由Unity 2017.1.0f3来完成。后续的Shader新特性Unity的旧版本没有,因为我们要使用一个新的着色器函数。 实时全局光照 烘焙光照在静态物体上工作的非常好,对于动态几何体,由于有光照探...

本篇摘要: 只烘焙间接光 混合烘焙阴影和实时阴影 处理代码的变化和问题 支持消减光照(subtractivelighting) 烘焙间接光 光照贴图可以提供预计算光照:以纹理内存为代价减少了GPU在实时中的工作量;还加入了间接光。 烘焙光的限制 1.高光不能被烘焙 2.烘焙光只通过光照探头影响动态物体 3.烘焙光不产生实时阴影 你可以...

实时光照计算的开销非常昂贵。根据翻译13,延迟渲染允许程序员使用的光源可以多于Forward渲染,但阴影的开销仍然对性能有一个限制。如果我们的场景是动态的,那么没有办法来避免执行这些计算。但是如果光源和几何物体位置都是不变的,那么我们可以只计算一次 光照并重复使用。这使得我们可以在场景中放置许多光源,而不必在运行的时候再渲染它们。这种方法也可以使用那些不能用作实时光源的区域光源(area l...

本篇摘要: 自定义灯光渲染 解码LDR颜色 增加独立Pass渲染光 支持方向光、点光源、聚光灯 手动采样阴影纹理 光照Light Shader 在G-Buffers填充完毕后,然后渲染光。本篇先介绍Unity是如何渲染光,以及实现自己的渲染光的Shader。在Edit / Project Settings / Graphics 去掉默认的Shader。 Us...

本篇摘要: 应用雾到游戏对象 基于距离或深度的雾 支持deferred fog 前向渲染雾-Forward Fog 在14之前,一直假定着光线在真空中传播,在真空中可能是精确的。但是当光线穿过大气或水就不一样了,光线在击中物体表面时会发生被吸收、散射和反射。 一个精确的大气干扰光线渲染将需要及其昂贵的体积测量方法,那是大多数现代GPU负担不起的。相反,勉强采用一些常...

本篇摘要: G-Buffer HDR与LDR Deffered反射 Deferred Rendering Path 到目前为止一直使用了Unity的Forward Render Path,现在开始学习Deferred Path,以及对比这两者间的差异 准备工作 通过Edit/Project Setting/Graphic切换Render Path; 关闭...

本篇摘要: 支持镂空阴影 噪声 粗略的半透明阴影 镂空阴影和半透明阴影之间切换 镂空阴影 翻译11介绍了镂空渲染,可能也注意到了,物体的投射的阴影是物体本身的形状,跟镂空形状完全不一致。这是因为我们之前的Shader投射阴影只是简单的采样了光的方向和到达物体表面的距离,没有区分表面形状。 ...

本篇摘要: 剪纸镂空shader 渲染队列 半透明材质 合并反射和透明 Cutout-镂空渲染 要创建透明的材质,首先要了解每个片元的透明度。透明度信息存储在颜色的alpha通道,在我们的shader里是主纹理的alpha通道和调色值的alpha通道。 确定Alpha值 获取alpha值 //采样alpha float GetAlpha(Interpolat...

本篇摘要: 把自身阴影烘焙进材质 增加细节纹理部分 支持更丰富的shader变体 一次编辑多个材质球 遮挡区域的Self-Shading 美术能够创作非常复杂丰富的表面纹理,它只是一个视错觉。为了增强表面纹理视觉真实感,引入Self-Shading。 如何增强呢?通常我们使用了法线来增强模型表面的凹凸层次感,法线带来的视觉增强是第一步,但是法线只适用于采样直接光...