์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

D3D12 Mesh Shader์†Œ๊ฐœ

D3D12์—์„œ ์ถ”๊ฐ€๋œ ์‹ ๊ธฐ๋Šฅ Mesh Shader์˜ ์šฉ๋„์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

(5.0) ์ˆ˜๊ฐ•ํ‰ 8๊ฐœ

์ˆ˜๊ฐ•์ƒ 331๋ช…

๋‚œ์ด๋„ ์ค‘๊ธ‰์ด์ƒ

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

directx12
directx12
directx
directx
3d-graphics
3d-graphics
directx12
directx12
directx
directx
3d-graphics
3d-graphics
๋‚ ๊ฐœ ๋‹ฌ๋ฆฐ ๋™์ „

๊ฐ•์˜ ์ถ”์ฒœํ•˜๊ณ  ์„ฑ์žฅ๊ณผ ์ˆ˜์ต์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

๋‚ ๊ฐœ ๋‹ฌ๋ฆฐ ๋™์ „

๋งˆ์ผ€ํŒ… ํŒŒํŠธ๋„ˆ์Šค

๊ฐ•์˜ ์ถ”์ฒœํ•˜๊ณ  ์„ฑ์žฅ๊ณผ ์ˆ˜์ต์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”!

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

๋จผ์ € ๊ฒฝํ—˜ํ•œ ์ˆ˜๊ฐ•์ƒ๋“ค์˜ ํ›„๊ธฐ

5.0

5.0

์ฟ ์นด์ด๋“ 

100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

์ข‹์€ ๊ฐ•์˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค~!!

์ˆ˜๊ฐ• ํ›„ ์ด๋Ÿฐ๊ฑธ ์–ป์„ ์ˆ˜ ์žˆ์–ด์š”

  • Mesh Shader ์‚ฌ์šฉ ์šฉ๋„

  • Mesh Shaderํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒ

D3D12 Mesh Shader ์†Œ๊ฐœ

D3D12์— ์ถ”๊ฐ€๋œ ๊ธฐ๋Šฅ ์ค‘์— Mesh Shader๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ธฐ์กด Vertex Shader - Geometry Shader ํŒŒ์ดํ”„๋ผ์ธ์„ GPGPU๊ธฐ๋ฐ˜์˜ Compute Shader๋กœ ๋Œ€์ฒดํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

Mesh Shader๋Š” ํ˜„๋Œ€ GPU ํ•˜๋“œ์›จ์–ด๋ฅผ ์ข€ ๋” ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GPU๊ธฐ๋ฐ˜์˜ view-frustum culling์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ Geometry Shader๋กœ ์ˆ˜ํ–‰ํ–ˆ๋˜ LOD์™€ point๋ฅผ ๋‹ค๊ฐํ˜•์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๊ธฐ๋Šฅ๋„ Mesh Shader๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋Š” Mesh Shader๊ฐ€ ๋ฌด์—‡์ธ์ง€, ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€, ์‹ค์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ๋•Œ๋Š” ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด์•ผํ•˜๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜๊ฐ• ์ „ ์ฐธ๊ณ ์‚ฌํ•ญ

  • ๋ณธ ๊ฐ•์˜๋Š” megayuchi ์ฑ„๋„์—์„œ ์ง„ํ–‰ํ•œ D3D12 Mesh Shader ๋ผ์ด๋ธŒ ์˜์ƒ ๋…นํ™”๋ณธ์ž…๋‹ˆ๋‹ค.

  • ์—ฐ์†๋œ ๊ฐ•์˜๊ฐ€ ์•„๋‹Œ 1ํšŒ์„ฑ ๋…นํ™” ๊ฐ•์˜์ด๋‹ˆ ์ˆ˜๊ฐ•์— ์ฐธ๊ณ ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  • ์‹œ์ฒญ์ž ์ฑ„ํŒ… ๊ธฐ๋ก์€ ์œ ํŠœ๋ธŒ ์ฑ„๋„์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ จ ๊ฐ•์˜

D3D12 ๊ธฐ์ดˆํŽธ https://inf.run/7gJhS

D3D12๊ธฐ์ดˆ ํ”Œ๋Ÿฌ์Šค https://inf.run/itHDW
DirectX Raytracing https://inf.run/cQqx7

์ด๋Ÿฐ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

1. Shader Pipeline๊ณผ Mesh Shader ์†Œ๊ฐœ

ํ˜„๋Œ€ ๊ทธ๋ž˜ํ”ฝ API๋Š” ์ ์ฐจ ๊ธฐ์กด Vertex Shader ํŒŒ์ดํ”„๋ผ์ธ์„ ๋ฒ—์–ด๋‚˜ ๋ฒ”์šฉ์ ์ธ GPGPU๊ธฐ์ˆ ๋กœ ์ดํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Mesh Shader๋Š” ๊ทธ ์ฒซ๊ฑธ์Œ์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Vertex Shader ํŒŒ์ดํ”„๋ผ์ธ์ด GPGPU๊ธฐ๋ฐ˜์˜ Mesh Shader๋กœ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š”์ง€ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

2. Mesh Shader์˜ ์ด์ ๊ณผ ๊ตฌํ˜„

Mesh Shader๋Š” ๋Œ€๋Ÿ‰์˜ ์ธ์Šคํ„ด์‹ฑ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค Mesh Shader๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋ˆˆ์— ๋„๋Š” ๊ทธ๋ž˜ํ”ฝ์ด ํ™• ์ข‹์•„์ง€๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ ํ’ˆ์งˆ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์„ฑ๋Šฅ์ƒ ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ Mesh Shader๊ตฌํ˜„์„ ์œ„ํ•ด์„œ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ Meshlet์ด๋ž€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์•ผ ํ•ฉ๋‹ˆ๋‹ค. Meshlet์„ ๋งŒ๋“ค๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ์‚ฌ์šฉ ์˜ˆ์‹œ์™€ Q&A

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • D3D12๊ฒฝํ—˜์ž

  • D3D12์˜ ์‹ ๊ธฐ๋Šฅ์ด ๊ถ๊ธˆํ•œ ํ”„๋กœ๊ทธ๋ž˜๋จธ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • D3D12

์•ˆ๋…•ํ•˜์„ธ์š”
megayuchi์ž…๋‹ˆ๋‹ค.

3,134

๋ช…

์ˆ˜๊ฐ•์ƒ

87

๊ฐœ

์ˆ˜๊ฐ•ํ‰

20

๊ฐœ

๋‹ต๋ณ€

5.0

์ 

๊ฐ•์˜ ํ‰์ 

10

๊ฐœ

๊ฐ•์˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ

C++,x86/x64 ASM, DirectX9/11/12, Metal, OpenGL, CUDA, win32, winsock/bsd socket

 

์ธํ”„๋Ÿฐ ๊ฐ•์˜

D3D12ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆํŽธ - https://inf.run/7gJhS

D3D12ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆํ”Œ๋Ÿฌ์Šค - https://inf.run/itHDW

DirectX Raytracing ํ”„๋กœ๊ทธ๋ž˜๋ฐ - https://inf.run/cQqx7

Windows System ํ”„๋กœ๊ทธ๋ž˜๋ฐ - https://inf.run/AwfCv

Windows Debugging Tips - https://inf.run/zL7E4

 

Blog : https://megayuchi.com

Youtube : https://youtube.com/megayuchi

LinkedIn : https://www.linkedin.com/in/megayuchi/

 

 

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

1๊ฐœ โˆ™ (2์‹œ๊ฐ„ 15๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์ „์ฒด

8๊ฐœ

5.0

8๊ฐœ์˜ ์ˆ˜๊ฐ•ํ‰

  • dmax๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
    dmax

    ์ˆ˜๊ฐ•ํ‰ 146

    โˆ™

    ํ‰๊ท  ํ‰์  5.0

    5

    100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

    • KYUNG TAE BAE๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
      KYUNG TAE BAE

      ์ˆ˜๊ฐ•ํ‰ 303

      โˆ™

      ํ‰๊ท  ํ‰์  5.0

      5

      100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

      • ๊ฐ•ํ–‰์ค€๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
        ๊ฐ•ํ–‰์ค€

        ์ˆ˜๊ฐ•ํ‰ 12

        โˆ™

        ํ‰๊ท  ํ‰์  4.3

        5

        100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

        • ๊น€๋ณ‘์šฐ๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
          ๊น€๋ณ‘์šฐ

          ์ˆ˜๊ฐ•ํ‰ 3

          โˆ™

          ํ‰๊ท  ํ‰์  5.0

          5

          100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

          • minsu๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€
            minsu

            ์ˆ˜๊ฐ•ํ‰ 66

            โˆ™

            ํ‰๊ท  ํ‰์  4.7

            5

            100% ์ˆ˜๊ฐ• ํ›„ ์ž‘์„ฑ

            megayuchi๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜

            ์ง€์‹๊ณต์œ ์ž๋‹˜์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

            ๋น„์Šทํ•œ ๊ฐ•์˜

            ๊ฐ™์€ ๋ถ„์•ผ์˜ ๋‹ค๋ฅธ ๊ฐ•์˜๋ฅผ ๋งŒ๋‚˜๋ณด์„ธ์š”!

            ๋ฌด๋ฃŒ