Unity渲染实战篇
Unity Shader实现一些常用的效果
坡托
这个作者很懒,什么都没留下…
展开
-
IBL的完整过程
将CubeMap的每个像素当成一个光源。漫反射IBL预计算出一个新的cubemap,存储了用卷积计算的每个采样方向ωo的漫反射积分结果。镜面的IBL镜面反射部分依赖于入射光方向和视线入射方向,尝试实时计算有入射光和所有入射视线的积分是几乎不可能的。使用预卷积镜面反射部分的方法:分裂和近似法。加入粗糙度,根据不同的粗糙度等级,在预过滤环境图的mipmap等级存储更模糊的结果。需要用到两个输入:法线和视线向量。卷积环境图并不知道视线防线,所以采用了一种妥协:V=R=N假设所有方向的入原创 2021-06-04 16:14:41 · 615 阅读 · 0 评论 -
玉石效果(半透明透射)的实现步骤
透射光线dot(-L, V)L : 光源方向V : 视角方向边缘透射偏转vLTLight = vLight + vNormal * fLTDistortion通过法线N和偏转系数 f 的引入,使得边缘处得透射效果增强。透射强调与衰减power(dot(-H, V), iLTPower) * iLTScale点光的支持URP的额外光的光照计算GetAdditionalLightsCount()……材质的透射厚度反转法线制作反转后的AO图1-AO可以用作厚度计算高光反射.原创 2021-03-12 10:23:59 · 680 阅读 · 0 评论 -
能量罩的制作拆解(URP)
交接处检测高亮使用屏幕坐标采样深度图,比较球体view空间下的Z值和场景的深度信息depth,如果depth > positionVS.z(右手坐标系的z都是负数,所以减法变加法),表示处于遮光罩内,而且越靠近交界处,这个差值越小,用1 - 差值,再乘以一个边缘系数就可以得到边缘信息。half4 hightlight = depth + i.positionVS.z;hightlight *= _HighLightFade;hightlight = 1 - hightlight;hight.原创 2021-03-02 10:11:25 · 480 阅读 · 0 评论 -
GPU实例化的详细步骤
GPU Instancing用于对多个对象(网格一样,材质一样,但是材质属性不一样)合批,单个合批最大上限为511个对象。硬件要支持:OpenGL3.0以上支持。C#代码:GameObject tree = Instantiate(prefab, pos, transform)shader 实现#pragma multi_compile_instancing 添加此指令后会使材质面板上曝露Instaning开关,同时会生成相应的Instancing变体UNITY_VERTEX_INPUT_原创 2021-02-23 15:35:02 · 890 阅读 · 0 评论 -
Unity不同合批方式的使用场景及规则
Dynamic Batching动态合批是Unity默认执行的,我们无法修改Unity的合批规则,只能尽量让游戏场景内的物体符合合批规则。动态合批规则材质相同是合批的前提。但是如果是材质实例的话,则一样无法合批。支持不同的网格合批。单个网格最多300个顶点,900个顶点属性。镜像的transform无法合批。Lightmap对象无法合批。合批上限是2^16Static Batching静态合批也需要使用相同的材质,然后Static标记为Batching Static。静态合批的顶点原创 2021-02-23 15:32:50 · 1189 阅读 · 0 评论 -
Unity Shader通用优化方法
fixed/half/float位置坐标、纹理坐标类使用float。HDR颜色、方向向量类使用half。普通纹理、颜色类使用fixed。现代桌面级GPU都是直接采用float, 不需要考虑性能。现代移动端GPU大多支持half和float, 所以能用half就用half。能在顶点着色器中处理的就在顶点着色器少用多Pass小心使用AlphaTest和ColorMaskAlphaTestclip(),通常大多数平台使用AlphaTest会有性能优势,但在IOS和某些使用PowerVR GPU原创 2021-02-22 15:41:51 · 317 阅读 · 0 评论 -
Unity全局照明.md
GI全局照明:直接光照 + 间接光照Unity 中的GI技术预计算实时GI把需要的数据提前烘培好,运行时再进行读取。烘培GI把光源对静态物体的光照效果提前烘培到一张lightmap,然后把lightmap采样到物体表面以产生全局光照效果。###LightMap静态物体使用 bake lightmapLight Probes光照探针是为了让动态物品也可以受bake GI的影响。与光照贴图类似,光探针存储有关场景中光照的“烘焙(baked)”信息。不同之处在于,光照贴图存储的是场景中光照射原创 2021-01-25 15:18:36 · 193 阅读 · 0 评论