zoukankan      html  css  js  c++  java
  • 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,直接使用边缘数据,则不会出现这种问题。

    改变自己
  • 相关阅读:
    IO—》字节流&字符流
    IO—》递归
    IO—》File类
    IDEA快速升级模块版本号
    redis使用Jackson2JsonRedisSerializer序列化问题
    git 创建管理多用户
    linux后台启动程序脚本实例
    linux 安装配置kafka脚本
    linux 安装配置zookeeper脚本
    linux安装配置JDK脚本
  • 原文地址:https://www.cnblogs.com/sun-shadow/p/4896502.html
Copyright © 2011-2022 走看看