钢铁侠材质制作

您所在的位置:网站首页 java实用教程第五版第六章详解 钢铁侠材质制作

钢铁侠材质制作

#钢铁侠材质制作| 来源: 网络整理| 查看: 265

钢铁侠Unlit光照Shader,三种效果变化

返回目录

大家好,我是阿赵。这里是制作钢铁侠材质的第一部分,模型发光部分的材质制作。 在这里插入图片描述

1、效果分析

这一个部分只是处理眼睛、胸口、手掌的发光部位,为了能单独控制这些部分,所以在制造模型的时候,需要给这些部位的网格指定Channel为2,这样,在使用多维子材质的时候,就可以单独为这些发光的shader指定一个材质球。 在这里插入图片描述

其实多维子材质在我平常在游戏引擎里面是比较的不喜欢用的,因为一个模型用了多个材质球,本身就是多个pass。但针对这个例子本身来说,钢铁侠的身体材质本身会比较复杂,而发光的部位本身会比较的单纯,如果分开来计算,对性能反而是有帮助的。 在做了通道指定之后,在导入引擎使用时,就可以指定2个材质球了,第一个材质球是身体部分的,第二个材质球是发光部分的。 在这里插入图片描述

2、完整shader Shader "azhao/IronManLightCode" {Properties{[HDR]_lightCol("lightCol", Color) = (1,1,1,0)}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;};struct v2f{float4 vertex : SV_POSITION;};float4 _lightCol;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = _lightCol;return col;}ENDCG}} } 3、说明

可以看出,上面的shader非常的简单,只是指定了一个lightCol作为灯光的颜色而已。 需要注意的是,这里的颜色定义使用了HDR

[HDR]_lightCol("lightCol", Color) = (1,1,1,0)

在这里插入图片描述

具体什么是HDR颜色,各位可以自己去搜一下。我简单说明就是,平常我们使用的颜色都是LDR,L指Low,它的颜色强度取值范围都是0-1的,而HDR的H指的是High,它的颜色强度取值范围是可以超过1的。 在这里插入图片描述

不过单纯是设置了HDR颜色之后,会发现模型也没有发光 在这里插入图片描述

然后我们再添加一个Bloom屏幕后处理: 在这里插入图片描述

在这里插入图片描述

可以看到现在是已经发光了。 在旧版本的Unity屏幕后处理,并没有支持HDR效果,所以旧版本的Bloom只是单纯的模糊再叠加,所以是越接近白色的地方越亮。 Unity新的Post-process后处理系统支持了HDR效果之后,就变成了根据HDR颜色来做辉光效果,就算是白色,但如果HDR强度小于等于0时,也不会发光。 知道了这个规则之后,我们就可以调整HDR颜色,做出不同的发光效果。 在这里插入图片描述

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3