• u3d_Shader_effects笔记3 half diffuse 和 ramp texture


    1.前面的心情

    每次写博客,先写心情也好,就当是小日记了吧。现在已经懒到不想动笔和纸来写日记了。近两天公司的活较少,晚上直接回来了,没有留公司。在公司看代码,不做工,就困...

    哎,小辉哥家的老房子后天要拆了,时间过的真快啊,想起小时候去他家玩,鞭炮,烟花,和大辉哥一起,我们三个,快乐的吹牛快乐的小人书电视;哎时光不再,timefly...如今他孩子都多大了...

    2.参考内容:

    老样子,书和妹子的博客

    3.主要实现:

    主要是rampTexture的数据加载。

    使用rampTexture:

    得到结果:

    4.代码

    我主要关注rampTexture的读取,光照数据直接忽略掉。即surf里,传入lightingBasicDiffuse接口之前,直接使用(1,1,1,1)

    Shader "Custom/NewShader" {
    	Properties {
    	  _RampTex("Ramp Texutre",2D)="white"{}
    	}
    	SubShader {
    		Tags { "RenderType"="Opaque" }
    		LOD 200
    		
    		CGPROGRAM
    		#pragma surface surf BasicDiffuse
    		sampler2D _RampTex;
    
    		struct Input {
    		 float2 uv_MainTex;  
    		};
    		  
    		void surf (Input IN, inout SurfaceOutput o) {
    			float4 c;
    			c = float4(1,1,1,1);//直接置1
    			o.Albedo = c.rgb;
    			o.Alpha = c.a;
    		}
    
    		inline float4 LightingBasicDiffuse(SurfaceOutput s,fixed3 lightDir,fixed atten)
    		{
    			float difLight = max(0,dot(s.Normal,lightDir));
    			float3 rampColor = tex2D(_RampTex,float2(difLight,difLight)).rgb;//**纹理采样**
    			float4 col;
    			col.rgb = (rampColor);//**直接上texture数据**
    			col.a = s.Alpha;
    			return col;
    		}
    
    		ENDCG
    	} 
    	FallBack "Diffuse"
    } 

    5.我学到什么

    (1).简单数学曲线的分析,以及绘制:

    例子中halfLambert:dot后的数据A,A*0.5+0.5的曲线:https://developer.valvesoftware.com/wiki/Half_Lambert

    (2)u3d纹理模式的分析:

    现象,和lightDir为0的顶点显示为棕色:

    首先设置了Directional Light

    a.如上图问题;当设置Repeat,并用线性插值会出现这种问题;不管是二次还是三次线性插值。   

    float difLight = max(0.001,dot(s.Normal,lightDir));颜色逐渐趋近红色

    原因:边缘插值,可能边缘数据0左侧为空数据,导致了和red中和的数据为0,哎,也是猜测的,但应该如此

    当纹理寻址模式为Clamp,直接使用边缘数据,则不会出现这种问题。

    改变自己
  • 相关阅读:
    摩尔定律 四
    为什么要重载new? 四
    JS 完美识别IE FIREFOX CHROME safari
    Chrome的JS调试工具
    JetBrains WebStorm 6注册码(其实版本v4, v5, v6都通用)
    require.js 入门学习
    str_replace、preg_replace、strtr比较
    获取当前IP地址,跳转到对应城市网站。
    mysql大数据高并发处理(转)
    SESSION的安全性(转)
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/4896502.html
Copyright © 2020-2023  润新知