์ถ๊ฐ์กฐ๋ช
์ ๋ฐ๋ฅธ ๋ฆฌ์๋ธ ์๋์ฐ ์ปค์คํ
์ผ๋ก ๊ตฌํ ์ด๋ป๊ฒ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.. ์์ฑ๋ ์ฝ๋๋ ๊ทธ๋ฐ๊ฑฐ ์์ผ์๋ฉด ๋์์... ์๋ฌด๋ฆฌ ์ฐพ์๋ ์ด์ผํ๋์ง ๋ชป์ฐพ๊ฒ ์ด์
URP๋ก ์๋ ค์ฃผ์๋ฉด ๋ ์ข์ต๋๋ค
- dc official App
https://github.com/Unity-Technologies/Graphics/blob/master/Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl
๊ฑฐ๊น์ง๋๊ฐ๋๋ฐ ๊ตฌํํ ์์ ์ข ๋ณด๊ณ ์ถ์.. - dc App
๋ฆฌํฌ์งํ ๋ฆฌ์ ์๋ ์ฝ๋ ๋ณด์ ๋ ๋๊ณ . hlsl์ฝ๋์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ includeํ ์ฝ๋๋ค ๋ณด์๋ฉด ๋ฉ๋๋ค. Shadows.hlsl Lightings.hlsl RealtimeLighting.hlsl์ ํ์ํ๊ฑฐ ๋๋ถ๋ถ ๋ค ๊ตฌํ๋์ด์์ด์ ๋ผ๋ค ์ฐ์๋ฉด ๋ ๋ฏ. ๋ฌธ์๊ฐ ์ ์์ด์ ์๋ฐ ์ด๊ฑธ ์ด์บํด ํ๋๋ฐ ์ฝ๋๋ณด๋ฉด ๋ค ์๋๋ผ๊ณ
https://nedmakesgames.medium.com/creating-custom-lighting-in-unitys-shader-graph-with-universal-render-pipeline-5ad442c27276
์ ๊ธฐ ๋ธ๋ก๊ทธ๊ฐ ๊ทธ๋๋ง ์ ๋ฆฌ ์ ๋์๋๋ฏ
const int light_count = GetAdditionalLightsCount(); for (int i = 0; i < light_count; ++i) { const int light_index = GetPerObjectLightIndex(i); Light l = GetAdditionalPerObjectLight(light_index, world_pos); const float shadow_atten = AdditionalLightRealtimeShadow(i, world_pos, l.direction); const float shadow_strength = GetAdditionalLightShadowParams(i).x; }
GetAdditionalLightShadowParams(i).x 0๊ณ ์ AdditionalLightRealtimeShadow 1๊ณ ์ ๋ํจ์ ์ด๋ ๊ฒ ๊ณ ์ ๋์ ๋์์ ๋ณ๋ค๋ฅผ๊ฒ์๋ค..๋ญ ๋ฐ๋ก ์ต์ ์ ๋์ผ์ผํ๋๊ฑด์ง ๋ญ์ง๋ ๋ชจ๋ฅด๊ฒ ๋๋ฐ ๋ฆฌ์๋ธ ๊ทธ๋ฆผ์๋ ์ ์ฉ์ด ์๋จ..
#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS ์ํด๊ฒฐ ์ด๊ฑฐ ํจ์์ ๋ฃ์ด์ค์ผํจ ์ผ๋ฐ