์๋ ํ์ธ์.
์ด๋ฐ ์๋ฌ๊ฐ ๋จ๋ ์ค์ธ๋ฐ...
์ฝ๋๋ ์์ ๊ฐ์ต๋๋ค. ๋ณต๋ถ ์ํ์๋ฉด..
#ifndef CUSTOM_SHADOWS_INCLUDED
#define CUSTOM_SHADOWS_INCLUDED
//#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Shadow/ShadowSamplingTent.hlsl"
#define MAX_SHADOWED_DIRECTIONAL_LIGHT_COUNT 4
TEXTURE2D_SHADOW(_DirectionalShadowAtlas);
#define SHADOW_SAMPLER sampler_linear_clamp_compare
SAMPLER_CMP(SHADOW_SAMPLER);
CBUFFER_START(_CustomShadows)
float4x4 _DirectionalShadowMatrices[MAX_SHADOWED_DIRECTIONAL_LIGHT_COUNT];
CBUFFER_END
float SampleDirectionalShadowAtlas(float3 positionSTS)
{
ย ย return SAMPLE_TEXTURE2D_SHADOW
ย ย (_DirectionalShadowAtlas, SHADOW_SAMPLER, positionSTS);
}
float GetDirectionalShadowAttenuation(DirectionalShadowData data, Surface surfaceWS)
{
ย ย if (data.strength <=0.0)
ย ย {
ย ย ย ย return 1.0;
ย ย }
ย ย ย
ย ย float3 positionSTS = mul(
ย ย ย ย _DirectionalShadowMatrices[data.tileIndex],
ย ย ย ย float4(surfaceWS.position, 1.0)
ย ย ).xyz;
ย ย float shadow = SampleDirectionalShadowAtlas(positionSTS);
ย ย return lerp(1.0, shadow, data.strength);
}
#endif
์ด๊ฑด๋ฐ ๊ฐํผ๋ฅผ ๋ชป์ก๊ฒ ๋ค์.
Shadows๋ย
์ฌ๊ธฐ์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. Common.hlsl ํ์ผ์ SAMPLE_TEXTURE2D_SHADOW๋ฅผ includeํ๋ ๋ถ๋ถ๋ค์ด ์๋ ๊ฑด ํ์ธํ๋๋ฐ ์ ์๋ ๊น.. ์ด๋์ ์๋ชปํ๊ฑธ๊น ๊ฐํผ๋ฅผ ๋ชป์ก๊ฒ ๋ค์.
๋ ํ์ํ์ ์ ๋ณด ์์ผ๋ฉด ์ฌ๋ฆฌ๊ฒ ์ต๋๋ค.
Catlikecoding ํํ ๋ฆฌ์ผ ๋ฐ๋ผ๊ฐ๋ ์ค์ด์๊ณ ... Custom Render Pipeline, Direectional Shadows, pdf ๊ธฐ์ค 25ํ์ด์ง์ฆ์... ์ ์ ๋๋ค.
์ ํํ๊ฒ๋ ๋ ์ฐพ์๋ด์ผ๊ฒ ์ง๋ง Shadows.hlsl ์ธ ๋ฒ์งธ ์ค์ include ์ฃผ์๋์ด์๋๊ฒ ์์ํ๊ฑธ? - dc App
์๋ ํ์ธ์ ๊ฐ์ฌํฉ๋๋ค. ์ ๊ฑด ํํ ๋ฆฌ์ผ์์ repository๋ฅผ ์ ๊ณตํด์ฃผ๋๋ฐ.. ๊ฑฐ๊ธฐ์ ๋น๊ตํ๋ค๊ฐ ์ด๊ฑธ ๋ด๊ฐ ๋์ณค๋? ์ถ์ด์ ๋ฃ์๋ ๋ด์ฉ์ด์์ต๋๋ค. ์์ ๋ด์ฉ์ ํ์ธํด๋ณด๋ ํํ ๋ฆฌ์ผ ์งํ์ ํ์ฌ ํ์ํ๋ค๊ณ ์๊ฐ๋๋ ๋ด์ฉ(SAMPLE_TEXTURE2D_SHADOW)์ ์์์ต๋๋ค. (ํํ ๋ฆฌ์ผ ์งํ์ ๋์ค์ ๋ฃ๊ธฐ๋ ํด์.) ์ฃผ์ ์ฒ๋ฆฌํ ๊ฑด ๊ทธ ๋๋ฌธ์ด์์ด์.
Common์ Shadows ์์ includeํด๋ณด์ - dc App
์๋๋ค์.. ใ ใ
๊ณ ๋ฏผํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค..
๋์ค์ ์ฌ์ ๋๋ฉด ์ปดํจํฐ ์์์ ์ข ์ฐพ์๋ณผ๊ป - dc App
ShaderLibrary/Common.hlsl์ด
https://bitbucket.org/catlikecodingunitytutorials/custom-srp-04-directional-shadows/src/master/Assets/Custom%20RP/ShaderLibrary/Common.hlsl
์ด๊ฑฐ๋ ์ ํํ ๊ฐ์?
์ฝ๋ ๋ค์ ธ๋ดค๋๋ฐ ๋ง๊ฒ ํ๋ค๋ฉด ์ง์ง ๋ญ์ง ์ ๋งคํ๋ค. ๋์ ํ ์๋๊ฒ ์ผ๋ฉด ์ ๊ธฐ ์ ์ฅ์ ๋ฐ์์ ์คํํด๋ด
์ ์ฉํ๋ ๊ทธ๋ํฝ์ค API๋ ๋ฐ๊ฟ๋ณด๊ณ .. LTS๋ฒ์ ๋ ๊น์๋ณด๊ณ ์ด๊ฒ ๋ฌธ์ ๊ฐ ์๋์๊ตฌ๋..๋ฅผ ํ์ธํ๋๋ฐ.. ์ฐธ ์ด์ด์๋ค์... return SAMPLE_TEXTURE2D_SHADOW (_DirectionalShadowAtlas, SHADOW_SAMPLER, positionSTS); => return SAMPLE_TEXTURE2D_SHADOW(_DirectionalShadowAtlas, SHADOW_SAMPLER, positionSTS); ๋ก ๋ฐ๊ฟ์ฃผ๋ ๋ฉ๋๋ค... ๊ท์คํ ์๊ฐ ๋ด์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค... ํ์...
! - dc App