ceshi
Posted baolong-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ceshi相关的知识,希望对你有一定的参考价值。
内置常用的三种输出数据格式:
//Standard output structure of surface shaders is this: struct SurfaceOutput fixed3 Albedo; // diffuse color fixed3 Normal; // tangent space normal, if written fixed3 Emission; half Specular; // specular power in 0..1 range fixed Gloss; // specular intensity fixed Alpha; // alpha for transparencies ; //Unity 5版本以上, 支持physically based lighting models. struct SurfaceOutputStandard fixed3 Albedo; // base (diffuse or specular) color fixed3 Normal; // tangent space normal, if written half3 Emission; half Metallic; // 0=non-metal, 1=metal half Smoothness; // 0=rough, 1=smooth half Occlusion; // occlusion (default 1) fixed Alpha; // alpha for transparencies ; //镜面高光输出 struct SurfaceOutputStandardSpecular fixed3 Albedo; // diffuse color fixed3 Specular; // specular color fixed3 Normal; // tangent space normal, if written half3 Emission; half Smoothness; // 0=rough, 1=smooth half Occlusion; // occlusion (default 1) fixed Alpha; // alpha for transparencies ;
0x01 Surface Shader compile directives
Surface shader编码在CGPROGRAM...ENDCG块内,
- 必须在Subshader块内而不能在pass内部,Surface shader将自己编译成多个通道.
- 必须使用#pragma surface surfaceFunction lightModel [optionalparams] 指令来表明这是surface shader.
拆分#pragma surface surfaceFunction lightmodel [optional params]
蓝色为必要参数:require params
surfaceFunction | 格式void surf (Input IN, inout SurfaceOutput o),Input自定义结构常必须包含纹理坐标和其他自需变量 | ||||||
lightModel |
|
surfaceFunction Input参数详解
struct Input //纹理坐标必须带uv或uv2前缀,必须! float2 uv_MainTex; //---以下为可选--- float3 viewDir; //视图方向为了计算时差、边缘光照等效果,Input需要包含视图方向 float4 color; //每个顶点颜色值 float4 screenPos; //屏幕空间位置,为了获得反射效果 float3 worldPos; //世界坐标空间 float3 worldRefl; //世界空间反射向量,surface shader不能写入o.Normal参数 float3 worldNormal;//世界空间法向量,surface shader不能写入o.Normal参数
//世界坐标反射向量,surface shader必须写入o.Normal参数 //基于逐像素法线贴图获得反射向量,请使用WorldReflectionVector(IN,o.Normal) float3 worldRefl;INTERNAL_DATA;
//世界坐标法线向量,surface shader必须写入o.Normal参数 //基于逐像素法线贴图获得反射向量,请使用WorldReflectionVector(IN,o.Normal) float3 worldNormal;INTERNAL_DATA;
橙色为可选参数:optional params
|
|||||||||||||||||||
0x02 Surface Shader Light Model
0x03 Example
以上是关于ceshi的主要内容,如果未能解决你的问题,请参考以下文章