user-img
Unreal 4
thumbnail
์–ธ๋ฆฌ์–ผ ์—”์ง„ ๋…ธ๋ฉ€๋งต B ์ฑ„๋„ ๋ณต๊ตฌ
์–ธ๋ฆฌ์–ผ์—์„œ ์‚ฌ์šฉํ•˜๋Š” R์ฑ„๋„๊ณผ G์ฑ„๋„์„ ์‚ฌ์šฉํ•˜์—ฌ B์ฑ„๋„์„ ๋ณต๊ตฌํ•˜๋Š” ์ฝ”๋“œ. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด DXT5๋‚˜ BC7์—์„œ ๋…ธ๋ฉ€๋งต ๋‘์žฅ์„ ํ•˜๋‚˜์˜ ํ…์Šค์ฒ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.float4 UnpackNormalMap( float4 TextureSample ){ float2 NormalXY = TextureSample.rg; NormalXY = NormalXY * float2(2.0f,2.0f) - float2(1.0f,1.0f); float NormalZ = sqrt( saturate( 1.0f - dot( NormalXY, NormalXY ) ) ); return float4( NormalXY.xy, NormalZ, 1.0f );} ์œ„ ์ฝ”๋“œ์™€ ๋™์ผํ•˜๊ฒŒ ๋…ธ๋“œ๋ฅผ ๊ตฌ์„ฑํ•ด๋ณด์•˜๋‹ค.
2024.11.01
CG ์ด์•ผ๊ธฐ/์–ธ๋ฆฌ์–ผ์—”์ง„
thumbnail
๋ธ”๋ Œ๋”์—์„œ ์–ธ๋ฆฌ์–ผ ์—”์ง„์šฉ LOD ๊ตฌ์„ฑํ•˜๊ธฐ
4
์–ธ๋ฆฌ์–ผ ์—”์ง„ ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์—†์ง€๋งŒ ๋ธ”๋ Œ๋”์—์„œ๋„ ํ•˜๋‚˜์˜ FBX ํŒŒ์ผ๋กœ LOD๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๋‚ด๋ณด๋‚ด๊ธฐ๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ์š”. ์ด ๊ธฐ๋Šฅ ๋˜ํ•œ ์ •๋ฆฌ๋œ ํŠœํ† ๋ฆฌ์–ผ์ด ์•ˆ ๋ณด์—ฌ์„œ ์ €์žฅ์šฉ์œผ๋กœ ์ ์–ด๋ด…๋‹ˆ๋‹ค. 1. ์Šคํƒœํ‹ฑ ๋ฉ”์‰ฌ(Static Mesh) ๋จผ์ €, LOD ์ž‘์—…๊นŒ์ง€ ๋งˆ์นœ ๋ฉ”์‰ฌ๋ฅผ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. Empty ์˜ค๋ธŒ์ ํŠธ๋„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€๋œ Empty ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์„ ํƒํ•˜์—ฌ Custom Properties ํŒจ๋„๋กœ ์ด๋™ํ•˜์—ฌ Add ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ์•„๋ž˜ Edit ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ฐฝ์ด ํ•˜๋‚˜ ๋œจ๋Š”๋ฐ, Name์„ "fbx_type", Value๋ฅผ "LodGroup"์œผ๋กœ ์ ๊ณ  OK ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ์„ธ์š”. ์ค€๋น„ํ•œ LOD ์˜ค๋ธŒ์ ํŠธ๋“ค์„ Empty ์ž์‹์œผ๋กœ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ Empty๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ๊ตฌ๋ถ„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ด๋ฆ„์„ ๋†”๋’€์Šต๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณ€๊ฒฝ..
2021.10.16
CG ์ด์•ผ๊ธฐ/๋ธ”๋ Œ๋”
thumbnail
๋ธ”๋ Œ๋”์—์„œ ๋ฒคํŠธ ๋…ธ๋ง(Bent Normal)๋งต ๊ตฝ๊ธฐ
6
๋ธ”๋ Œ๋”์—์„œ ๋ฒคํŠธ ๋…ธ๋ง ์ œ์ž‘์— ๋Œ€ํ•œ ํŠœํ† ๋ฆฌ์–ผ์ด ์ •ํ™•ํžˆ ์—†์–ด์„œ ์ •๋ฆฌ ๊ฒธ ์ ์–ด๋ดค์Šต๋‹ˆ๋‹ค. 1. osl ๋‹ค์šด๋กœ๋“œ ์—ฌ๊ธฐ๋ฅผ ๋ˆŒ๋Ÿฌ์„œ oslํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋ฒคํŠธ ๋…ธ๋ง์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์‰์ด๋”์ž…๋‹ˆ๋‹ค. 2. ๋ Œ๋”๋Ÿฌ ๋ณ€๊ฒฝ ๋ Œ๋”์—”์ง„์„ ์‚ฌ์ดํด๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  Open Shading Language์— ์ฒดํฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ CPU๋กœ ๋ Œ๋”๋ง์„ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. (GPU ๋ฏธ์ง€์›) ๊ทธ๋ฆฌ๊ณ  Sampling ๊ฐ’๋„ ๋„‰๋„‰ํžˆ ์˜ฌ๋ ค์ค๋‹ˆ๋‹ค. 3. ํ•˜์ดํด์— osl ์ ์šฉํ•˜๊ธฐ ํ•˜์ดํด ๋ชจ๋ธ์— ๋จธํ‹ฐ๋ฆฌ์–ผ์„ ์ƒ์„ฑํ•˜๊ณ  ์•„๋ž˜์™€ ๊ฐ™์ด ๋…ธ๋“œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์‰์ด๋”๋Š” uv์™€ ๊ด€๋ จ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ•˜์ดํด์— ์–ธ๋žฉ์„ ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. *Script ๋…ธ๋“œ์—์„œ External ํƒญ์„ ๋ˆ„๋ฅด๊ณ  ๋‹ค์šด๋ฐ›์€ AmbientOcclusionDirection.osl ํŒŒ์ผ์„ ์—ฐ..
2021.10.13
CG ์ด์•ผ๊ธฐ/๋ธ”๋ Œ๋”
thumbnail
mikktspace normal ์ œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ
30
(์ด ํฌ์ŠคํŒ…์€ 2023.11.08์— ๋ฆฌ๋‰ด์–ผ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.) โ–Ž์ด๋ก ํŽธ  ์šฐ๋ฆฌ๊ฐ€ ๋…ธ๋ฉ€๋งต์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„ tangent space ๋˜๋Š” mikktspace๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค๊ณ ์š”? 100% ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ์œ ๋‹ˆํ‹ฐ๋Š” tangent space๋ฅผ, ์–ธ๋ฆฌ์–ผ์€ mikktspace๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„ ํ™•๋ฅ ์ด ํฝ๋‹ˆ๋‹ค. 1. mikktspace normal ์•Œ์•„๋ณด๊ธฐ  ๋ฏธ์ผˆ์Šจ ํƒ„์  ํŠธ ์ŠคํŽ˜์ด์Šค ๋…ธ๋ฉ€(Mikkelsen tangent space normal)์€ ์ œ์ž‘์ž์ธ Morten Mikkelsen ์ด๋ฆ„์„ ๋”ฐ์„œ ๋งŒ๋“ ๊ฒƒ์œผ๋กœ ๊ธฐ์กด tangent space์˜ ๋ฌธ์ œ์ ๋“ค์„ ๋ณด์™„ํ•œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๊ฒƒ์€ ์—ฌ๊ธฐ์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.2. ์™œ mikktspace๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ• ๊นŒ..
2021.01.20
CG ์ด์•ผ๊ธฐ/3D๊ธฐ์ดˆ