Summary

VDB๋Š” ์—ฐ๊ธฐ, ๊ตฌ๋ฆ„, ๋ถˆ๊ฝƒ๊ณผ ๊ฐ™์€ ๋ณผ๋ฅจ๋ฉ”ํŠธ๋ฆญ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๋ Œ๋”๋งํ•˜๋Š” ํŒŒ์ผ ํฌ๋งท์ž…๋‹ˆ๋‹ค.

UE5์—์„  Sparse Volume Texture(SVT) ์‹œ์Šคํ…œ์„ ํ†ตํ•ด OpenVDB ํŒŒ์ผ์„ ์ž„ํฌํŠธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,
5.3 ๋ฒ„์ „ ์ดํ›„ Heterogeneous Volume Actor๋ฅผ ํ†ตํ•ด ์•ˆ์ •์ ์ธ ์‹ค์‹œ๊ฐ„ ๋ Œ๋”๋ง์ด ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด Houdini๋‚˜ EmberGen ๊ฐ™์€ ์™ธ๋ถ€ ํˆด์—์„œ ์ œ์ž‘ํ•œ ๊ณ ํ’ˆ์งˆ ๋ณผ๋ฅจ ์ดํŽ™ํŠธ๋ฅผ ๊ฒŒ์ž„์ด๋‚˜ ์‹œ๋„ค๋งˆํ‹ฑ ์˜์ƒ์— ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์„ค์ • ๋ฐ ์›Œํฌํ”Œ๋กœ์šฐ

1๋‹จ๊ณ„. VDB ํŒŒ์ผ ์ž„ํฌํŠธ

  • VDB ํŒŒ์ผ์„ ์–ธ๋ฆฌ์–ผ ์—”์ง„ ์ฝ˜ํ…์ธ  ๋ธŒ๋ผ์šฐ์ €๋กœ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญํ•ฉ๋‹ˆ๋‹ค.
  • ์ž„ํฌํŠธ ์˜ต์…˜์—์„œ โ€˜Import as Sequenceโ€™๋ฅผ ์ฒดํฌํ•˜๋ฉด ์• ๋‹ˆ๋ฉ”์ด์…˜๋œ VDB ์‹œํ€€์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œํ€€์Šค ํ˜•์‹์œผ๋กœ ์ž„ํฌํŠธํ•˜๋ฉด ์—ฌ๋Ÿฌ ํ”„๋ ˆ์ž„์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ณผ๋ฅจ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

#### 2๋‹จ๊ณ„. Sparse Volume Texture Viewer ์ƒ์„ฑ
  • VDB๋ฅผ ์ž„ํฌํŠธํ•˜๋ฉด Sparse Volume Texture ์—์…‹์ด ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋ฅผ ๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด ๋ทฐ์–ด๋ฅผ ํ†ตํ•ด ์ž„ํฌํŠธํ•œ VDB ๋ฐ์ดํ„ฐ๋ฅผ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•˜๊ณ  ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3๋‹จ๊ณ„. VDB์šฉ ๋จธํ‹ฐ๋ฆฌ์–ผ ์ƒ์„ฑ

VDB๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŠน๋ณ„ํ•œ ์„ค์ •์ด ํ•„์š”ํ•œ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:

  • ์ƒˆ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์ƒ์„ฑํ•˜๊ณ  Details ํŒจ๋„์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    • Material Domain: Volume (๋ณผ๋ฅจ ๋ฐ์ดํ„ฐ ๋ Œ๋”๋ง์„ ์œ„ํ•œ ์„ค์ •)
    • Blend Mode๋Š” ํšจ๊ณผ ์œ ํ˜•์— ๋”ฐ๋ผ Additive ๋˜๋Š” AlphaComposite๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      • ๋ถˆ๊ฝƒ/์—๋„ˆ์ง€ ๊ณ„์—ด - Additive
      • ์—ฐ๊ธฐ๋‚˜ ๊ตฌ๋ฆ„ ๊ณ„์—ด - AlphaComposite


4๋‹จ๊ณ„. VDB ๋ฐ์ดํ„ฐ๋ฅผ ๋จธํ‹ฐ๋ฆฌ์–ผ์— ์—ฐ๊ฒฐ

์ž„ํฌํŠธํ•œ Sparse Volume Texture ์—์…‹์„ ๋จธํ‹ฐ๋ฆฌ์–ผ ๊ทธ๋ž˜ํ”„๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค


5๋‹จ๊ณ„. ๋จธํ‹ฐ๋ฆฌ์–ผ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ

  • ์ƒ์„ฑํ•œ VDB ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์šฐํด๋ฆญํ•˜๊ณ  โ€˜Create Material Instanceโ€™๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค
  • ๋จธํ‹ฐ๋ฆฌ์–ผ ์ธ์Šคํ„ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›๋ณธ ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ ๋„ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6๋‹จ๊ณ„. Heterogeneous Volume Actor ๋ฐฐ์น˜

  • ๋ ˆ๋ฒจ์— โ€˜Heterogeneous Volumeโ€™ ์•กํ„ฐ๋ฅผ ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.
  • Details ํŒจ๋„์—์„œ ์ƒ์„ฑํ•œ ๋จธํ‹ฐ๋ฆฌ์–ผ ์ธ์Šคํ„ด์Šค๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ์•กํ„ฐ๊ฐ€ ์‹ค์ œ๋กœ VDB ๋ฐ์ดํ„ฐ๋ฅผ ์›”๋“œ์—์„œ Ray Marching ๊ธฐ๋ฐ˜ ๋ณผ๋ฅจ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Tip

์ถœ๋ ฅ ์ฝ˜์†”(~)์— ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜์—ฌ VDB์— ๊ฐ„์ ‘๊ด‘์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค

r.HeterogeneousVolumes.IndirectLighting 1

์ด ์„ค์ •์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ฃผ๋ณ€ ํ™˜๊ฒฝ์˜ ์กฐ๋ช…์ด ๋ณผ๋ฅจ์— ๋ฐ˜์˜๋˜์–ด ๋”์šฑ ์‚ฌ์‹ค์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์• ๋‹ˆ๋ฉ”์ด์…˜ VDB ์„ค์ •

์‹œํ€€์„œ(Sequencer)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ ˆ์ž„๋ณ„๋กœ VDB ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‹œํ€€์„œ๋ฅผ ์—ด๊ณ  Heterogeneous Volume ์•กํ„ฐ๋ฅผ ํŠธ๋ž™์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋ ˆ์ž„ ๋ ˆ์ดํŠธ์™€ ํƒ€์ด๋ฐ์„ ์กฐ์ •ํ•˜์—ฌ ์›ํ•˜๋Š” ์†๋„๋กœ ์• ๋‹ˆ๋ฉ”์ด์…˜์„ ์žฌ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Trouble Shooting

Translucency Issue

Volume๊ณผ Translucent ์˜ค๋ธŒ์ ํŠธ๊ฐ€ ๊ฒน์น  ๊ฒฝ์šฐ VDB๊ฐ€ ๋ Œ๋”๋ง๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌ

Check

Material- Translucency Pass: Before DOF๋กœ ์„ค์ •

Artfect ๊ฐœ์„ 

r.HeterogeneousVolumes.OrthoGrid.ShadingRate 1
r.HeterogeneousVolume.FrustumGrid.ShadingRate 1

ShadingRate ๊ฐ’์ด ๋‚ฎ์„์ˆ˜๋ก ๋” ์ด˜์ด˜ํ•œ ์ƒ˜ํ”Œ๋ง์ด ์ด๋ฃจ์–ด์ ธ ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋˜์ง€๋งŒ ์„ฑ๋Šฅ ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

r.HeterogeneousVolumes.OrthoGrid.MaxBottomLevelMemoryInMegabytes 512 
r.HeterogeneousVolumes.FrustumGrid.MaxBottomLevelMemoryInMegabytes 512 

PathTracing VDB ํ™œ์„ฑํ™”

r.PathTracing.HeterogeneousVolumes 1

VDB ๊ฐ„์ ‘๊ด‘ ์ ์šฉ

r.HeterogeneousVolumes.IndirectLighting 1

๋ณผ๋ฅจ ๋ Œ๋” ์ตœ๋Œ€ ๊ฑฐ๋ฆฌ

r.HeterogeneousVolumes.MaxTraceDistance

๋ณผ๋ฅจ์„ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ๊นŒ์ง€ ๋ Œ๋”๋งํ• ๊ฑด์ง€

์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋ฆฌํŒจ์น˜ ๋ฐ‰ ๋ ˆ๋ฒจ

r.SparseVolumeTexture.Streaming.PrefetchMipLevelBias

์• ๋‹ˆ๋ฉ”์ด์…˜ ๋ณผ๋ฅจ์ด ๊นœ๋ฐ•์ด๊ณ  ํ๋ฆฟํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•˜์—ฌ ๋” ๋†’๊ฑฐ๋‚˜ ๋‚ฎ์€ ํ’ˆ์งˆ์˜ Load๋ฅผ ๊ฐ•์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ ๋กœ๋“œ ํ•  ์ˆ˜ ์—†์œผ๋ฉด 1ํ”„๋ ˆ์ž„์—์„œ ๋ฉˆ์ถœ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’ 0 ๊ฐ’์ด ์ปค์งˆ์ˆ˜๋ก ์†๋„โ†‘ ํ’ˆ์งˆโ†“

Comment: Movie Render Queue์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.


์ฐธ๊ณ ์ž๋ฃŒ