Three.js: three.js์˜ Normal Map Handedness Convention์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2017๋…„ 05์›” 11์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mrdoob/three.js

์ด๋ฅผ ๋ฌธ์„œํ™”ํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @emackey ๋Š” GLTF2Loader (https://github.com/donmccurdy/three-gltf-viewer/issues/10)์˜ ๋ฌธ์ œ๋ฅผ ์ง€์ ํ–ˆ์œผ๋ฉฐ ๋…ธ๋ฉ€ ๋งต ๋ฐ˜์ „์ด ์›์ธ ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋น„๊ตํ•˜๋ ค๊ณ :

BabylonJS : x ์ถ• = ์™ผ์ชฝ, y ์ถ• = ์•„๋ž˜์ชฝ
OpenGL : x ์ถ• = ์˜ค๋ฅธ์ชฝ, y ์ถ• = ์œ„์ชฝ
DirectX : x ์ถ• = ์˜ค๋ฅธ์ชฝ, y ์ถ• = ์•„๋ž˜์ชฝ

Question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‹ต๋ณ€์€ @WestLangley ๋ฐ @donmccurdy์— ์˜ํ•ด ํ•ด๊ฒฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค : https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

์ž˜ ๋งŒํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ThreeJS์˜ ๊ธฐ๋ณธ ๋…ธ๋ฉ€ ๋งต์€ OpenGL, ์˜ค๋ฅธ ์†์žก์ด, glTF์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  • ThreeJS์˜ ๊ธฐ๋ณธ UV ์›์ ์€ glTF์˜ ์™ผ์ชฝ ์œ„ UV ์›์ ๊ณผ ๋ฐ˜๋Œ€ ์ธ ์™ผ์ชฝ ์•„๋ž˜์ž…๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ GLTFLoader๋Š” UV๋ฅผ ๋’ค์ง‘์€ ๋‹ค์Œ ๋ณด์ •์„ ์œ„ํ•ด ์ •์ƒ์ ์ธ ์†์„ ๋’ค์ง‘์–ด ์•ผํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ด๊ฒƒ์— ์ง„์ „์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ๋‹ค์Œ ์„ ์„ค์ •

    material.normalScale.x = -1;

๋‚˜๋Š” ์•„๋ฌด๊ฒƒ๋„ ๋“ฃ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์•Œ์•„๋‘๋ฉด ์ข‹๊ฒ ์ง€ ๋งŒ ์ƒ˜ํ”Œ ๋ชจ๋ธ์—์„œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด normalScale.x ๋’ค์ง‘๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ต๋ณ€์€ @WestLangley ๋ฐ @donmccurdy์— ์˜ํ•ด ํ•ด๊ฒฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค : https://github.com/mrdoob/three.js/pull/13784#issuecomment -379511456

์ž˜ ๋งŒํ•˜๋ฉด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์š”์•ฝํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ThreeJS์˜ ๊ธฐ๋ณธ ๋…ธ๋ฉ€ ๋งต์€ OpenGL, ์˜ค๋ฅธ ์†์žก์ด, glTF์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
  • ThreeJS์˜ ๊ธฐ๋ณธ UV ์›์ ์€ glTF์˜ ์™ผ์ชฝ ์œ„ UV ์›์ ๊ณผ ๋ฐ˜๋Œ€ ์ธ ์™ผ์ชฝ ์•„๋ž˜์ž…๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ GLTFLoader๋Š” UV๋ฅผ ๋’ค์ง‘์€ ๋‹ค์Œ ๋ณด์ •์„ ์œ„ํ•ด ์ •์ƒ์ ์ธ ์†์„ ๋’ค์ง‘์–ด ์•ผํ•ฉ๋‹ˆ๋‹ค.
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰