Unity Shader学习日记1(漫反射光照模型)

本文记录了在UnityShader中实现漫反射光照的过程,包括逐顶点和逐像素的光照效果。逐顶点光照在模型细节不足时可能出现问题,而逐像素光照则能提供更平滑的视觉体验。此外,还探讨了半兰伯特光照模型解决阴影面无明暗变化的问题。
摘要由CSDN通过智能技术生成

在UnityShader中实现漫反射光照模型

在这里插入图片描述

实现逐顶点的漫反射光照效果

// Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Unlit/NewUnlitShader"
{
   
    Properties
    {
   
        _Diffuse("Diffuse", Color) = (1,1,1,1)
    }
    SubShader
    {
   
        Tags {
    "LightMode"="ForwardBase" }

        Pass
        {
   
            CGPROGRAM
            #pragma vertex vert
            #pragma fragment frag
            #include "UnityCG.cginc"
			#include "Lighting.cginc"

			fixed4 _Diffuse;

            struct a2v {
   
				float4 vertex : POSITION;
				float3 normal : NORMAL; //为了访问顶点的法线
 			};

			//顶点着色器的输入和输出结构体
			//输出结构体同时也是片元着色器的输入结构体

            struct v2f
            {
   
                float4 pos 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值