赞
踩
固定颜色的漫反射
Shader "MyShader/Surface/SurfaceShader001" { Properties { } SubShader { //------------------CG语言的开始 //主要是针对图形学 CGPROGRAM //vertex 顶点着色器 //fragment 片段着色器 //标记编译指令 着色器类型 入口函数名称 光照模式 //Lambert 实现漫反射的算法 #pragma surface surf Lambert //浮点数 32位 float value = 0; float2 pos2D = float2(0,1); float3 pos3D = float3(1,2,3); float4 color = float4(1,0,0,1); //半浮点数 16位 half halfValue = 1.3; half2 halfPos = half2(1,2); //整数 32位 int intValue = 2; int2 intPos = int2(1,2); //定点数 12位 表示范围---整数和0-1范围的小数 fixed4 mycolor = fixed4(1,0,0,1); //布尔类型 bool isOn = false; //字符类型 string str = "abc"; //纹理对象,内置的结构体 sampler2D mytexture; struct Input { float4 color:COLOR; } ; //入口函数 输入结构(需自行定义) 输出结构(系统定义好的) void surf(Input IN, inout SurfaceOutput o) { o.Albedo = fixed3(1,0,0); } ENDCG //--------------------CG语言的结束 } }
可以调节的漫反射
Shader "MyShader/Surface/SurfaceShader002" { Properties { _MainColor("主颜色",Color) = (1,1,1,1) } SubShader { Blend One One //------------------CG语言的开始 //主要是针对图形学 CGPROGRAM //vertex 顶点着色器 //fragment 片段着色器 //标记编译指令 着色器类型 入口函数名称 光照模式 //Lambert 实现漫反射的算法 #pragma surface surf Lambert //浮点数 32位 float value = 0; float2 pos2D = float2(0,1); float3 pos3D = float3(1,2,3); float4 color = float4(1,0,0,1); //半浮点数 16位 half halfValue = 1.3; half2 halfPos = half2(1,2); //整数 32位 int intValue = 2; int2 intPos = int2(1,2); //定点数 12位 表示范围---整数和0-1范围的小数 fixed4 mycolor = fixed4(1,0,0,1); //布尔类型 bool isOn = false; //字符类型 string str = "abc"; //纹理对象,内置的结构体 sampler2D mytexture; struct Input { float4 color:COLOR; } ; //声明外部属性 fixed4 _MainColor; //入口函数 输入结构(需自行定义) 输出结构(系统定义好的) void surf(Input IN, inout SurfaceOutput o) { //出来直接就是漫反射,因为Lambert o.Albedo = _MainColor.rgb; } ENDCG //--------------------CG语言的结束 } }
透明度的调节
Shader "MyShader/Surface/SurfaceShader003" { Properties { _MainColor("主颜色",Color) = (1,1,1,1) } SubShader { Blend One One //------------------CG语言的开始 //主要是针对图形学 CGPROGRAM //vertex 顶点着色器 //fragment 片段着色器 //标记编译指令 着色器类型 入口函数名称 光照模式 //Lambert 实现漫反射的算法 //加alpha表示支持透明通道 #pragma surface surf Lambert alpha //浮点数 32位 float value = 0; float2 pos2D = float2(0,1); float3 pos3D = float3(1,2,3); float4 color = float4(1,0,0,1); //半浮点数 16位 half halfValue = 1.3; half2 halfPos = half2(1,2); //整数 32位 int intValue = 2; int2 intPos = int2(1,2); //定点数 12位 表示范围---整数和0-1范围的小数 fixed4 mycolor = fixed4(1,0,0,1); //布尔类型 bool isOn = false; //字符类型 string str = "abc"; //纹理对象,内置的结构体 sampler2D mytexture; struct Input { float4 color:COLOR; } ; //声明外部属性 fixed4 _MainColor; //入口函数 输入结构(需自行定义) 输出结构(系统定义好的) void surf(Input IN, inout SurfaceOutput o) { //出来直接就是漫反射,因为Lambert o.Albedo = _MainColor.rgb; o.Alpha = _MainColor.a; } ENDCG //--------------------CG语言的结束 } }
加纹理
加混合
法线渲染:只是告诉这个像素的法线
主纹理和法线贴图
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。