您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
84 行
3.2 KiB
84 行
3.2 KiB
#ifndef UNITY_GRAPHFUNCTIONS_LW_INCLUDED
|
|
#define UNITY_GRAPHFUNCTIONS_LW_INCLUDED
|
|
|
|
#define SHADERGRAPH_SAMPLE_SCENE_DEPTH(uv) shadergraph_LWSampleSceneDepth(uv)
|
|
#define SHADERGRAPH_SAMPLE_SCENE_COLOR(uv) shadergraph_LWSampleSceneColor(uv)
|
|
#define SHADERGRAPH_BAKED_GI(positionWS, normalWS, uvStaticLightmap, uvDynamicLightmap, applyScaling) shadergraph_LWBakedGI(positionWS, normalWS, uvStaticLightmap, uvDynamicLightmap, applyScaling)
|
|
#define SHADERGRAPH_REFLECTION_PROBE(viewDir, normalOS, lod) shadergraph_LWReflectionProbe(viewDir, normalOS, lod)
|
|
#define SHADERGRAPH_FOG(position, color, density) shadergraph_LWFog(position, color, density)
|
|
#define SHADERGRAPH_AMBIENT_SKY unity_AmbientSky
|
|
#define SHADERGRAPH_AMBIENT_EQUATOR unity_AmbientEquator
|
|
#define SHADERGRAPH_AMBIENT_GROUND unity_AmbientGround
|
|
|
|
#if defined(REQUIRE_DEPTH_TEXTURE)
|
|
#if defined(UNITY_STEREO_INSTANCING_ENABLED) || defined(UNITY_STEREO_MULTIVIEW_ENABLED)
|
|
TEXTURE2D_ARRAY(_CameraDepthTexture);
|
|
#else
|
|
TEXTURE2D(_CameraDepthTexture);
|
|
#endif
|
|
SAMPLER(sampler_CameraDepthTexture);
|
|
#endif // REQUIRE_DEPTH_TEXTURE
|
|
|
|
#if defined(REQUIRE_OPAQUE_TEXTURE)
|
|
#if defined(UNITY_STEREO_INSTANCING_ENABLED) || defined(UNITY_STEREO_MULTIVIEW_ENABLED)
|
|
TEXTURE2D_ARRAY(_CameraOpaqueTexture);
|
|
#else
|
|
TEXTURE2D(_CameraOpaqueTexture);
|
|
#endif
|
|
SAMPLER(sampler_CameraOpaqueTexture);
|
|
#endif // REQUIRE_OPAQUE_TEXTURE
|
|
|
|
float shadergraph_LWSampleSceneDepth(float2 uv)
|
|
{
|
|
#if defined(REQUIRE_DEPTH_TEXTURE)
|
|
#if defined(UNITY_STEREO_INSTANCING_ENABLED) || defined(UNITY_STEREO_MULTIVIEW_ENABLED)
|
|
float rawDepth = SAMPLE_TEXTURE2D_ARRAY(_CameraDepthTexture, sampler_CameraDepthTexture, uv, unity_StereoEyeIndex).r;
|
|
#else
|
|
float rawDepth = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, uv);
|
|
#endif
|
|
return rawDepth;
|
|
#endif // REQUIRE_DEPTH_TEXTURE
|
|
return 0;
|
|
}
|
|
|
|
float3 shadergraph_LWSampleSceneColor(float2 uv)
|
|
{
|
|
#if defined(REQUIRE_OPAQUE_TEXTURE)
|
|
#if defined(UNITY_STEREO_INSTANCING_ENABLED) || defined(UNITY_STEREO_MULTIVIEW_ENABLED)
|
|
return SAMPLE_TEXTURE2D_ARRAY(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, uv, unity_StereoEyeIndex);
|
|
#else
|
|
return SAMPLE_TEXTURE2D(_CameraOpaqueTexture, sampler_CameraOpaqueTexture, uv);
|
|
#endif
|
|
#endif // REQUIRE_DEPTH_TEXTURE
|
|
return 0;
|
|
}
|
|
|
|
float3 shadergraph_LWBakedGI(float3 positionWS, float3 normalWS, float2 uvStaticLightmap, float2 uvDynamicLightmap, bool applyScaling)
|
|
{
|
|
#ifdef LIGHTMAP_ON
|
|
if (applyScaling)
|
|
uvStaticLightmap = uvStaticLightmap * unity_LightmapST.xy + unity_LightmapST.zw;
|
|
|
|
return SampleLightmap(uvStaticLightmap, normalWS);
|
|
#else
|
|
return SampleSH(normalWS);
|
|
#endif
|
|
}
|
|
|
|
float3 shadergraph_LWReflectionProbe(float3 viewDir, float3 normalOS, float lod)
|
|
{
|
|
float3 reflectVec = reflect(-viewDir, normalOS);
|
|
return DecodeHDREnvironment(SAMPLE_TEXTURECUBE_LOD(unity_SpecCube0, samplerunity_SpecCube0, reflectVec, lod), unity_SpecCube0_HDR);
|
|
}
|
|
|
|
void shadergraph_LWFog(float3 position, out float4 color, out float density)
|
|
{
|
|
color = unity_FogColor;
|
|
density = ComputeFogFactor(TransformObjectToHClip(position).z);
|
|
}
|
|
|
|
// Always include Shader Graph version
|
|
// Always include last to avoid double macros
|
|
#include "Packages/com.unity.shadergraph/ShaderGraphLibrary/Functions.hlsl"
|
|
|
|
#endif // UNITY_GRAPHFUNCTIONS_LW_INCLUDED
|