Properties {
_BaseMap("Texture", 2D) = "white" {}
_BaseColor("Color", Color) = (0.5, 0.5, 0.5, 1.0)
_Cutoff ("Alpha Cutoff", Range(0.0, 1.0)) = 0.5
[Toggle(_CLIPPING)] _Clipping ("Alpha Clipping", Float) = 0
_Metallic ("Metallic", Range(0, 1)) = 0
_Smoothness ("Smoothness", Range(0, 1)) = 0.5
[Toggle(_PREMULTIPLY_ALPHA)] _PremulAlpha ("Premultiply Alpha", Float) = 0
[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("Src Blend", Float) = 1
[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("Dst Blend", Float) = 0
[Enum(Off, 0, On, 1)] _ZWrite ("Z Write", Float) = 1
}
SubShader {
Pass {
Tags {
"LightMode" = "CustomLit"
}
Blend [_SrcBlend] [_DstBlend]
ZWrite [_ZWrite]
HLSLPROGRAM
#pragma target 3.5
#pragma shader_feature _CLIPPING
#pragma shader_feature _PREMULTIPLY_ALPHA
#pragma multi_compile_instancing
#pragma vertex LitPassVertex
#pragma fragment LitPassFragment
#include "LitPass.hlsl"
ENDHLSL
}
}
v2f vert (appdata v)
{
v2f o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.normal = UnityObjectToWorldNormal(v.normal);
o.lightDir = WorldSpaceLightDir(v.vertex);
o.eyeDir.xyz = normalize( _WorldSpaceCameraPos.xyz - o.worldPos.xyz ).xyz;
o.uv = TRANSFORM_TEX(v.uv, _MainTex);
o.normal = normalize( mul( unity_ObjectToWorld, float4_t( v.normal, 0 ) ).xyz );
o.tangent = normalize( mul( unity_ObjectToWorld, float4_t( v.tangent.xyz, 0 ) ).xyz );
o.binormal = normalize( cross( o.normal, o.tangent ) * v.tangent.w );
//若是采样法线贴图
float3_t normalVec = normalize( tex2D( _NormalMapSampler, input.uv ).xyz * 2.0 - 1.0 );
// float3_t normalVec = normalize(UnpackNormal(tex2D(_NormalMapSampler, input.uv)));
float3x3_t localToWorldTranspose = float3x3_t(
input.tangent,
input.binormal,
input.normal
);
normalVec = normalize( mul( normalVec, localToWorldTranspose ) );
return o;
}
fixed4 frag (v2f i) : SV_Target
{
fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);
}
shader变量
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 查阅源码:three.js-master\src\renderers\webgl\WebGLProgram.js ...
- https://blog.csdn.net/qq826364410/article/details/8153932...
- 当你用久了会发现gdshader的内建变量/常量是只能用在fregment/vertex等内建函数里的,这个问题会...
- // Computes world space view direction, from object space...