ํฌ์ŠคํŠธ

Normal, NormalMap

Normal, NormalMap

๐Ÿ’ซ ๋ง๋จธ๋ฆฌ


Normal๊ณผ NormalMap์— ๋Œ€ํ•ด.

๐Ÿ’ซ Normal, NormalMap


๐Ÿซง Normal

๋ฒ•์„  ๋ฒกํ„ฐ.
ํ‘œ๋ฉด/Face์˜ ๋ฐฉํ–ฅ/๊ฐ๋„/๊ธฐ์šธ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฒกํ„ฐ.

๐Ÿซง NormalMap

Normal์„ ํ…์Šค์ณ๋กœ ๋งŒ๋“  ๊ฒƒ.

๐Ÿซง Use

๊ตด๊ณก์„ ๋งŒ๋“ค์–ด์ฃผ๋Š”, ํŠน์ • ๋ถ€์ค€์„ ๊ทธ๋ฆผ์ž์ง€๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š”, ๊ทธ๋ž˜์„œ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๋†’์•„๋ณด์ด๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ…์Šค์ณ.
์‹ค์ œ ๋ฉ”์‰ฌ ํด๋ฆฌ๊ณค ๋””ํ…Œ์ผ์ด ์—†๋Š” ๋ถ€๋ถ„์„ ๋””ํ…Œ์ผ์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒํ•˜๋Š” ๋งต

์ผ๋ฐ˜์ ์œผ๋กœ๋Š”, ๋กœ์šฐํด๋ฆฌ๋ฉ”์‹œ์—์„œ ํ•˜์ดํด๋ฆฌ๋ฉ”์‹œ์˜ ๋””ํ…Œ์ผ์„ ์‚ด๋ ค์ฃผ๋Š” ์—ญํ• 

๐Ÿซง Why

https://docs.unity3d.com/kr/2020.3/Manual/StandardShaderMaterialParameterNormalMap.html

์˜ค๋ธŒ์ ํŠธ์˜ ๋””ํ…Œ์ผ. ๋‚˜์‚ฌ, ์กฐ๊ธˆ์”ฉ ํŒŒ์ธ ๊ณณ ๊ฐ™์€.
์ด๋Ÿฐ ๊ฒƒ๋“ค์€ ๋ฉ”์‰ฌ๋กœ ํ‘œํ˜„๋œ๋‹ค.

๋””ํ…Œ์ผ์„ ๋ฉ”์‰ฌ๋กœ ํ‘œํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์€, ํฐ ๋ฉ”์‰ฌ์—์„œ ๋ฏธ์„ธํ•œ ํด๋ฆฌ๊ณค์„ ์จ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ.
๋ฏธ์„ธํ•œ ํด๋ฆฌ๊ณค์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„์ง„๋‹ค๋ฉด, ์ตœ์ ํ™” ์ธก๋ฉด์—์„œ, ๊ด€๋ฆฌ ์ธก๋ฉด์—์„œ ๋ณต์žกํ•ด์ง„๋‹ค.

๋ฏธ์„ธํ•œ ํด๋ฆฌ๊ณค ๋Œ€์‹ , ๋””ํ…Œ์ผ์„ ํ‘œํ˜„ํ•˜๋Š” ๋Œ€์ฒด ๋ฐฉ๋ฒ•์œผ๋กœ NormalMap์„ ์‚ฌ์šฉํ•œ๋‹ค.

(ํ•˜์ดํด๋ฆฌ์˜) ๋…ธ๋ง ์ •๋ณด๋ฅผ ํ…์Šค์ณ ์ด๋ฏธ์ง€ ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜์—ฌ ๋กœ์šฐํด๋ฆฌ์— ์ ์šฉ์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

ํ•˜์ดํด๋ฆฌ โ†’ ํด๋ฆฌ๊ณค์ด ๋งŽ์Œ โ†’ ๋…ธ๋ง์ด ๋งŽ์Œ
๋กœ์šฐํด๋ฆฌ โ†’ ํด๋ฆฌ๊ณค์ด ์ ์Œ โ†’ ๋…ธ๋ง์ด ์ ์Œ

๐Ÿ’ซ NormalMap์€ ๋ฌด์Šจ ์ƒ‰์ผ๊นŒ (WIP)


๐Ÿซง ๊ถ๊ธˆ์ฆ

์ผ๋ฐ˜์ ์œผ๋กœ Unity Editor์˜ Project ์ฐฝ์—์„œ NormalMap์€ ํŒŒ๋ž—๊ฒŒ ๋ณด์ธ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ, NormalMap์„ Albedo์— ๋„ฃ์€ Material์„ Mesh์— ์ ์šฉ์‹œํ‚ค๋ฉด, ์ด์ƒํ•˜๊ฒŒ๋„ ๋นจ๊ฐ›๊ฒŒ ๋‚˜์˜จ๋‹ค

Project ์ฐฝ์—์„œ ํŒŒ๋ž—๊ฒŒ ๋ณด์ด๋˜ NormalMap์ด ์™œ ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ๋‚˜์˜ค๋Š”์ง€ ๊ถ๊ธˆํ–ˆ๋‹ค.
์™œ ์ด๋ ‡๊ฒŒ ๋‚˜์˜ค๋Š”์ง€, ๊ทธ๋ž˜์„œ NormalMap์€ ์–ด๋–ค ์ƒ‰์ธ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค.

๐Ÿซง 1. NormalMap์€ ๋นจ๊ฐ„์ƒ‰์ด ๋งž๋‹ค

๊ฒฐ๋ก ์ ์œผ๋กœ, NormalMap์€ ๋นจ๊ฐ„์ƒ‰์ด ๋งž๋‹ค.

์ด ์ด์œ ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด์„œ๋Š” NormalMap์˜ ์›๋ฆฌ์™€ ์••์ถ•๋ฐฉ์‹๊ณผ ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•œ๋‹ค.

R U
G V
B Normal

https://www.reddit.com/r/Unity3D/comments/vcty4f/pink_normals/
Unity Normal๋งต ์••์ถ•์— DXTnm์„ ์‚ฌ์šฉํ•˜๊ณ  ๋…ธ๋ฉ€์„ RGBA = (1.0, y, y, x)๋กœ ์ €์žฅ

https://steamdb.info/patchnotes/5003146/ https://docs.unity3d.com/kr/2020.3/Manual/SL-BuiltinIncludes.html

https://80.lv/articles/overwatch-technical-overview/
์˜ค๋ฒ„์›Œ์น˜๋Š” ์‹ค์ œ๋กœ ๋…ธ๋ž€ ๋…ธ๋ง๋งต์„ ์“ด๋‹ค
BC5 ๊ฐ™์€ ์••์ถ• ๋ฐฉ๋ฒ•์„ ์จ์„œ, ์ถ”ํ›„์— ์–ธํŒฉ(์••์ถ•ํ•ด์ œ)ํ• ๋•Œ ๋ธ”๋ฃจ ์ฑ„๋„์„ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค
์ด๋Š” ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๊ณ , ์ ์€ ์•„ํ‹ฐํŒฉํŠธ

์ผ๋ฐ˜ ๋…ธ๋ฉ€ ๋งต์„ ์–ป์œผ๋ ค๋ฉด ์•ŒํŒŒ ์ฑ„๋„์„ ๋…น์ƒ‰ ์ฑ„๋„๋กœ ์ด๋™ํ•˜๊ณ  ํŒŒ๋ž€์ƒ‰ ์ฑ„๋„์„ ์ˆœ์ˆ˜ํ•œ ํฐ์ƒ‰

https://catlikecoding.com/unity/tutorials/rendering/part-6/

https://docs.unity3d.com/kr/2020.3/Manual/SL-BuiltinIncludes.html ์œ ๋‹ˆํ‹ฐ๊ฒฝ๋กœ/Data/CGIncludes/UnityCG.cginc

UnpackScaleNormal

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
inline fixed3 UnpackNormalDXT5nm (fixed4 packednormal)
{
	fixed3 normal;
	normal.xy = packednormal.wy * 2 - 1;
	normal.z = sqrt(1 - saturate(dot(normal.xy, normal.xy)));
	return normal;
}

// Unpack normal as DXT5nm (1, y, 1, x) or BC5 (x, y, 0, 1)
// Note neutral texture like "bump" is (0, 0, 1, 1) to work with both plain RGB normal and DXT5nm/BC5
fixed3 UnpackNormalmapRGorAG(fixed4 packednormal)
{
	// This do the trick
   packednormal.x *= packednormal.w;

	fixed3 normal;
	normal.xy = packednormal.xy * 2 - 1;
	normal.z = sqrt(1 - saturate(dot(normal.xy, normal.xy)));
	return normal;
}

inline fixed3 UnpackNormal(fixed4 packednormal)
{
#if defined(UNITY_NO_DXT5nm)
	return packednormal.xyz * 2 - 1; //DXY๊ฐ€ ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ๋ฒ”์œ„๋งŒ ์กฐ์ •ํ•ด์„œ  
#else
	return UnpackNormalmapRGorAG(packednormal);
#endif
}

https://community.gamedev.tv/t/baking-normal-map-on-orc-horn-turning-out-yellow/182487
ํŒŒ๋ž‘ ๋…ธ๋ง๋งต์— ์ค‘๊ฐ„์ค‘๊ฐ„ ๋…ธ๋ž€ ๋…ธ๋ง๋งต
๋ฉด์ด ๋’ค์ง‘ํ˜€์ ธ ์žˆ๋‹ค๋˜์ง€?

  • Normalmap์„ ์“ฐ๊ธฐ ์œ„ํ•ด ํ”„๋กœํผํ‹ฐ์— _BumpMap(โ€œNormalmapโ€ ,2D) = โ€œbumpโ€{} ๋ฅผ ์„ ์–ธ
  • Normalmap์€ ๊ฒŒ์ž„์šฉ ํ…์Šค์ณ ํฌ๋งท์ธ DXT1, DXT5๊ฐ€ ์•„๋‹ˆ๋ผ DXTnm์˜ ํฌ๋งท
  • DXTnm์€ ์ผ๋ฐ˜์ ์ธ ํ…์Šค์ฒ˜ ์••์ถ•์œผ๋กœ ์ธํ•œ Normalmap ํ’ˆ์งˆ์ €ํ•˜๋ฅผ ๋ง‰๊ธฐ์œ„ํ•œ AGํŒŒ์ผ ํฌ๋งท
  • ์ด ํ…์Šค์ณ๋ฅผ ์ด์šฉํ•˜์—ฌ Normalmap์„ ์ƒ์„ฑํ•ด๋‚ด๋ ค๋ฉด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•จ

์ด ํŒŒ์ผ ํฌ๋งท์€ ์ผ๋ฐ˜์ ์ธ ํ…์Šค์ณ์˜ ์••์ถ•์— ์˜ํ•œ NormalMap ํ’ˆ์งˆ์˜ ์ €ํ•˜๋ฅผ ๋ง‰๊ธฐ ์œ„ํ•ด ๋งŒ๋“  AG ํŒŒ์ผ ํฌ๋งท. ์ด ํฌ๋งท์€ NormalMap์˜ R๊ณผ G์˜ ํ€„๋ฆฌํ‹ฐ๋ฅผ ์ตœ๋Œ€ํ•œ ๋ณด์ „ํ•˜์—ฌ A์™€ G์— ๋„ฃ์–ด ์ €์žฅํ•จ. (B๋Š” ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Œ) ์ด๋ ‡๊ฒŒ ๋ณด์ „๋œ R๊ณผ G๋Š” NormalMap์˜ X์™€ Y๋กœ ๊ณ„์‚ฐ๋˜๋ฉฐ, Z๋Š” ์‚ผ๊ฐํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆ˜ํ•™์ ์œผ๋กœ ์ถ”์ถœ๋จ

๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด ํ…์Šค์ณ๋ฅผ ์ด์šฉํ•ด์„œ NormalMap์œผ๋กœ ์˜จ์ „ํ•˜๊ฒŒ ์ƒ์„ฑํ•ด๋‚ด๋ ค๋ฉด ์•ž์— ์„ค๋ช…ํ•œ ๊ณต์‹์ด ์ ์šฉ๋˜์–ด ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๊ฐ„ํŽธํ•จ.

DXT5nm์—์„œ์˜ ๋…ธ๋ฉ€ ์ฒ˜๋ฆฌ.

์œ„๋Š” DXTnm๋‚˜ BC5์˜ ๋…ธ๋ฉ€ ํ…์Šค์ณ์˜ RGB ์ƒ‰์ƒ์— 1๊ฐœ์˜ ์ฑ„๋„์„ ๋”ํ•ด RGBA๋กœ ๋ฐ”๊พธ๊ณ  ์†Œ์Šค R์€ G๋กœ, ์†Œ์ŠคG๋Š” A๋กœ ๋ณ€๊ฒฝํ•ด R๊ณผ B๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๋‘”๋‹ค.(์ด๋ ‡๊ฒŒ ๋จ์œผ๋กœ ์•„ํ‹ฐํŒฉํŠธ๋ฅผ ์ค„์ผ์ˆ˜ ์žˆ์Œ) ๋”ฐ๋ผ์„œ packednormal.xy๋Š” packednormal.ag์™€ ๋™์ผํ•˜๋‹ค.

์ด๋Š” DXT5 R:5 G:6 B:5 A:8๋กœ ๋ณ€ํ™˜(RGB16bit๋ฅผ 24bit RGBA๋กœ ๋ณ€ํ™˜)ํ• ๋•Œ G์™€A์ฑ„๋„ ๊ฐ’์ด ๊ฐ€์žฅ ํฌ๊ธฐ ๋•Œ๋ฌธ

https://docs.unrealengine.com/5.1/ko/vector-operation-material-expressions-in-unreal-engine/
https://forum.unity.com/threads/modifying-standard-shader-to-work-with-dxt-normal-textures.774353/
https://forum.unity.com/threads/runtime-generated-bump-maps-are-not-marked-as-normal-maps.413778/
5.5๋ณด๋‹ค ์ƒˆ๋กœ์šด Unity ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋นจ๊ฐ„์ƒ‰๊ณผ ํŒŒ๋ž€์ƒ‰ ์ฑ„๋„์ด ๊ฒ€์€ ์ƒ‰์ด ์•„๋‹Œ ํฐ์ƒ‰์ด์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋” ์ด์ƒ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ฉ€ ๋งต์„ ์Šค์œ„์ฆ๋งํ•  ํ•„์š”๋„ ์—†์Šต๋‹ˆ๋‹ค.

์ „์ฒด โ€œ๋…ธ๋ฉ€ ๋งตโ€ ์ง€์ •์€ ๊ฒŒ์ž„๊ณผ ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์— ๊ฐœ๋…์ด ์—†๋Š” ์ˆœ์ „ํžˆ ์—๋””ํ„ฐ ํ…์Šค์ฒ˜ ์ž„ํฌํ„ฐ์ด๋ฉฐ, ํŠน๋ณ„ํ•œ ๋ฐฉ์‹์œผ๋กœ ํฌ๋งท๋œ ํ…์Šค์ฒ˜2D ์• ์…‹์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ ๊ฐ€ ๊ท€์ฐฎ๊ณ  ์ปค์Šคํ…€ ์…ฐ์ด๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ _BumpMap ๋˜๋Š” _NormalMap๋ผ๋Š” ํ…์Šค์ฒ˜ ์†์„ฑ ๋˜๋Š” [Normal] ์žฌ์งˆ ์†์„ฑ ์„œ๋ž์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

2017.2 ~ 2018.4 ์‚ฌ์ด์—
์ด์ „์—๋Š” float4(1, y, 1, x)๋กœ ํ‘œ์‹œ๋˜์—ˆ์ง€๋งŒ ์ด์ œ๋Š” float4(x,y,?,1)์ž…๋‹ˆ๋‹ค.

2017.1์— BC5 ๋…ธ๋ฉ€๋งต์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€
์„ ํƒ์ ์œผ๋กœ RGBA 1y1x (์‹ค์ œ๋กœ๋Š” ์Šค์œ„์ฆ DXT5์ธ โ€œDXTnmโ€ ๋˜๋Š” ์Šค์œ„์ฆ RGBA32์ธ โ€œ์„ ํ˜• Nm 32๋น„ํŠธโ€๋กœ ํ‘œ์‹œ๋จ) ๋ฐ RG xy01 ํŒฉ ๋…ธ๋ฉ€(BC5๋Š” ํ•ญ์ƒ 0.0B ๋ฐ 1.0A๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” 5์ฑ„๋„ RG ์ „์šฉ ํ˜•์‹์ž„)์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 6.2018 ๋ฐ ์ด์ „ ๋ฒ„์ „์˜ ๊ฒฝ์šฐ ์‹ค์ œ๋กœ yyyx๋กœ ์••์ถ•๋˜์—ˆ์ง€๋งŒ GA ์ฑ„๋„ ๋งŒ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

4.5์—์„œ๋Š” ๋‘˜ ๋‹ค ๊ณ„์† ์ง€์›๋ฉ๋‹ˆ๋‹ค. HDRP์˜ ๊ธฐ๋ณธ๊ฐ’์€ BC5 ๋…ธ๋ฉ€ ๋งต์ž…๋‹ˆ๋‹ค. LWRP ๋‹ค๋ฅธ ๊ฐœ์ •ํŒ์˜ ๊ธฐ๋ณธ ํ˜•์‹์— BC1 ๋ฐ ์ด์ „ โ€œDXTnmโ€์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ณด์•˜์ง€๋งŒ ํ˜„์žฌ ๊ธฐ๋ณธ๊ฐ’์„ ์‚ดํŽด ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด์žฅ ๋ Œ๋”๋ง ๊ฒฝ๋กœ ์ธ AFAIK๋Š” ์—ฌ์ „ํžˆ DXTnm์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ 1y01x ๋ฐ xy<>์ด ๋ชจ๋‘ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

RGBA(107, 153, 250, 255)๋Š” Unity 2017, 1๋ถ€ํ„ฐ RGBA(153, 107, 255.153)๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ B ๊ฐ’์€ ๋‹ค์†Œ ์ž„์˜์ ์ด๋ฉฐ 0, 255, G ๋˜๋Š” ํ…์Šค์ฒ˜์— ์••์ถ•ํ•˜๋ ค๋Š” ๋‹ค๋ฅธ ์ž„์˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ถ€ ์ถ”๊ฐ€ ์••์ถ• ์•„ํ‹ฐํŒฉํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์ง€๋‚œ ๊ฒŒ์‹œ๋ฌผ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด Unity๊ฐ€ R ์ฑ„๋„๊ณผ A ์ฑ„๋„์„ ํ•จ๊ป˜ ๊ณฑํ•˜์—ฌ ์ธ์ฝ”๋”ฉ ๋œ X๋ฅผ ์–ป์—ˆ ๊ธฐ ๋•Œ๋ฌธ์— Unity 2017.1 ์ด์ƒ์€ RG ๋ฐ AG ์ผ๋ฐ˜ ์ธ์ฝ”๋”ฉ์„ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ’์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ๋‹ค๋ฃจ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. BC (์ผ๋ช… DXTC) ์••์ถ• ํ˜•์‹์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹, ๋นจ๊ฐ„์ƒ‰ ๋ฐ ํŒŒ๋ž€์ƒ‰ ์ฑ„๋„์€ ๊ฐ๊ฐ 5 ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋…น์ƒ‰ ์ฑ„๋„์€ ๋ธ”๋ก ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ ๋‹น ์ธ์ฝ”๋”ฉ์— 6 ๋น„ํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋…น์ƒ‰ ๊ฐ’์ด ๋นจ๊ฐ„์ƒ‰ ๋˜๋Š” ํŒŒ๋ž€์ƒ‰๋ณด๋‹ค ์ •๋ฐ€๋„๊ฐ€ ์•ฝ๊ฐ„ ๋” ๋†’๊ธฐ ๋•Œ๋ฌธ์— Y๊ฐ€ ๋…น์ƒ‰ ์ฑ„๋„์— ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค. Unity๋Š” ์‹ค์ œ๋กœ โ€œDXTnโ€์„ (1.0, y, y, x)๋กœ ์ €์žฅํ•˜์ง€๋งŒ G์™€ B์˜ ์ •๋ฐ€๋„ ์ฐจ์ด๋Š” ์…ฐ์ด๋”๋กœ ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ์™„๋ฒฝํ•˜๊ฒŒ ๋™์ผํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์†”์งํžˆ ์™œ ํŒŒ๋ž€์ƒ‰ ์ฑ„๋„์—์„œ Y๋ฅผ ๋ณต์ œํ•˜๊ธฐ๋กœ ์„ ํƒํ–ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ทธ๋ ˆ์ด ์Šค์ผ€์ผ ๊ฐ’์œผ๋กœ ์ €์žฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— 3 ๊ฐœ ์ฑ„๋„ ๋ชจ๋‘ Y๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋นจ๊ฐ„์ƒ‰์„ 1.0์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ๊ธฐ์กด ์ฝ”๋“œ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ž‘์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ RGB ์ฑ„๋„์— ๋ณต์ œ ๋  ๋•Œ ์ผ๋ถ€ ์ธ์ฝ”๋”๊ฐ€ ์•ฝ๊ฐ„ ๋” ์ž˜ ์ˆ˜ํ–‰ ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜•์‹์ด ๊ทธ๋ ‡๊ฒŒ ๋” ์ž˜ ์••์ถ• ๋  ๊ธฐ์ˆ ์  ์ธ ์ด์œ ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

https://someiyoshino.info/entry/20171205/1512486725

DXTC, DXT5, BCn BC3
Direct X Texture Compression
Block Compression

DXT5 = BC3

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hram01&logNo=221489477514

๐Ÿ’ซ Memo


์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.