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

本篇摘要: 只烘焙间接光 混合烘焙阴影和实时阴影 处理代码的变化和问题 支持消减光照(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。 如何增强呢?通常我们使用了法线来增强模型表面的凹凸层次感,法线带来的视觉增强是第一步,但是法线只适用于采样直接光...

选中当前材质后,若材质使用的Shader调用了GUI拓展,则会自动读取该Shader的所有属性。通过重实现OnGUI函数后,获取其参数地址就能读取。

一块完美的镜子是不会发生漫反射,但现在我们自己的Shader包含的光照:环境光、漫反射、高光反射、纹理、阴影,结果看起来蛮好。但是当把Metallic设为1,Smoothness设位0.95,看起来很亮就很不自然了。从下图看尽管颜色是白色但整个表面都是黑色,只有一个很小的高亮点。这个亮点形成1是光源的入射,2朝向观察者的反射。