http://blog.three-eyed-games.com/2018/05/03/gpu-ray-tracing-in-unity-part-1/



์ง€๊ธˆ ์ด๊ฑฐ ํ•˜๊ณ ์žˆ๋Š”๋ฐ


์ค‘๊ฐ„์— ์•ˆํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ ์ง์ „๊นŒ์ง€๋Š” ์ž˜ ๋์Œ

๊ทผ๋ฐ ์•ˆํ‹ฐ์•จ๋ฆฌ์–ด์‹ฑ ๋ถ€๋ถ„ ์ฝ”๋“œ ์ˆ˜์ • ๋‹ค ํ•˜๊ณ ๋‚˜์„œ C#์ฝ”๋“œย SetShaderParameters ๋ฉ”์„œ๋“œ์— ์ด๊ฑฐ ์ถ”๊ฐ€ํ•  ๋•Œ


RayTracingShader.SetVector("_PixelOffset", new Vector2(Random.value, Random.value));


ํ™”๋ฉด์ด ์กด๋‚˜๊ฒŒ ๋œ๋œ ๋–จ๋ฆฌ๋”๋ผ



ํ”„๋ ˆ์ž„์„ ๋ฉˆ์ท„์–ด๋„ ์œ ๋‹ˆํ‹ฐ ์—๋””ํ„ฐ ์ž์ฒด์—์„œ ๊ฒŒ์ž„๋ทฐ ์œˆ๋„์šฐ์— ๋งˆ์šฐ์Šค๊ฐ€ ์˜ค๋ฅด๋‚ด๋ฆฌ๊ฑฐ๋‚˜ ๋“œ๋ž˜๊ทธํ•˜๋ฉดย OnRenderImage๊ฐ€ ํ˜ธ์ถœ๋˜๋‚˜๋ด


์ปดํ“จํŠธ์…ฐ์ด๋” CSMain์—์„œ


float2 uv = float2((id.xy + _PixelOffset) / float2(width, height) * 2.0f - 1.0f);


์—ฌ๊ธฐ์— ์œ„์— ์ ์€๋Œ€๋กœ SetVector๋กœ ๋žœ๋ค๋ฐธ๋ฅ˜ ๋„˜๊ฒจ์ค„๋•Œ ์ง„๋™ํ•˜๋”๋ผ

์ž„์˜์˜ ์˜คํ”„์…‹์œผ๋กœย ๋ธ”๋ Œ๋”ฉ๋งŒ ํ•˜๊ณ  ๋ Œ๋”๋งํ• ๋•Œ๋Š” ์›๋ž˜ ์˜คํ”„์…‹์—์„œ ํ•ด์•ผํ•˜๋Š”๋ฐ

๋ Œ๋”๋ง๊นŒ์ง€ ์ž„์˜์˜ ์˜คํ”„์…‹์—์„œ ํ•˜๋‹ˆ๊นŒ ๋–จ๋ฆฌ๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€ ํ•˜๊ณ  ๋ง‰์—ฐํ•˜๊ฒŒ ์ถ”์ธก๋งŒ ํ•˜๊ณ ์žˆ์Œ

๊ธ€ ๋Œ“๊ธ€์—๋„ ๊ด€๋ จํ•œ ๋‚ด์šฉ์€ ์—†์Œ

ํ˜น์‹œ ๋ญ๊ฐ€ ๋ฌธ์  ์ง€ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ