[Unity基础]从“漫反射光照模型”了解Unity Shader渲染原理

最近在看《UnityShader入门精要》来进行Shader的入门学习。看完第六章的”Unity中的基础光照“后,对前面所讲的顶点着色器和片元着色器有了更透彻的理解,于是做了个小实验,一方面验证自己对着色器渲染原理的理解是否正确,另一方面想亲眼看看渲染的整个流程,加深记忆。


为了计算方便,实验场景尽量简单化

1.场景模型只要一个平行光,一个带漫反射Shader材质的胶囊和一个用于参照地平线的terrain;
2.平行光设置为沿x轴旋转正45度。这样一来,其向量可以表示为(0,-1,1),方便计算;
3.平行光强度设置为1,颜色为纯白,即(1,1,1,1),减少干扰;
4.环境光强度设置为0.2,可以明显看到效果。另外环境光强度在这里的范围是0~8,其实实际范围是0~3.445,由于这个问题导致先前计算一直出错,我也是醉了;
5.在胶囊上挂个脚本,只声明了”public color a;“,为了方面使用Unity自带取色器。


实验Shader代码:

shader "Caddress Unity Shader/Diffuse Vertex-Level"
{
    Properties{
        _Diffuse("Diffuse",color) = (1,1,1,1)
    }

    SubShader{
        Pass{
            Tags{
  "LightMode" = "ForwardBase"}

            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag

            #include "Lighting.cginc"

            fixed4 _Diffuse;

            struct a2v {
                float4 vertex : POSITION;
                float3 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值