Shader-高光反射(顶点实现);控制高光范围;控制高光颜色

本文介绍了Blinn光照模型在顶点着色器中如何实现高光反射效果,通过计算反射光方向与视野方向的夹角cosθ来控制高光范围,并详细说明了如何利用pow函数的指数参数调整高光的大小。同时,文章探讨了如何自定义高光的颜色,以增强场景的视觉表现。
摘要由CSDN通过智能技术生成
  • Blinn光照模型     
  • cosθ= dot(reflectDir, viewDir)
  • 直射光 Specular = 直射光 * pow( max(cosθ,0),10)  θ:是反射光方向和视野方向的夹角    10可以控制高光的范围参数越小范围越大
    // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'
    
    // Upgrade NOTE: replaced '_World2Object' with 'unity_WorldToObject'
    
    Shader "LXC/07 Specular Vertex"
    {
    	Properties{
    		_Diffuse("Diffuse Color",Color) = (1,1,1,1)
    	}
    		SubShader
    	{
    		Pass{
    		Tags{ "LightMode" = "ForwardBase" }
    		CGPROGRAM
    #include "Lighting.cginc"
    #pragma vertex vert		
    #pragma fragment frag
    		fixed4 _Diffuse;
    
    	struct a2v {
    		float4 vertex:POSITION;
    		float3 normal:NORMAL;
    	};
    
    	struct v2f {
    		float4 position:SV_POSITION;
    		fixed3 color : COLOR0;
    	};
    
    	v2f vert(a2v v) {
    		v2f f;
    		f.position = UnityObjectToClipPos(v.vertex);
    		fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.rgb;
    		fixed3 normalDir = normalize(mul(v.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值