Three.js: USD ๋ฐ USDZ ํ˜•์‹์— ๋Œ€ํ•œ ์ง€์› ์ถ”๊ฐ€

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

USD(Universal Scene Description) ํŒŒ์ผ ํ˜•์‹๊ณผ ์˜ค๋Š˜ WWDC์—์„œ ๋ฐœํ‘œ๋  ์˜ˆ์ •์ธ USDZ ํ˜•์‹์— ๋Œ€ํ•œ Three.js ์ง€์›์„ ๋ฐ›๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

USDZ ์‚ฌ์–‘ ๋ฌธ์„œ: https://graphics.pixar.com/usd/files/USDZFileFormatSpecification.pdf (์ด ํ˜•์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•ž์œผ๋กœ ๋ช‡ ๋‹ฌ ์•ˆ์— ๋‚˜์˜ฌ ๊ฒƒ์œผ๋กœ ๊ฐ€์ •)

Enhancement Loaders

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

์ด๋Š” Apple์ด ์ž์‚ฌ ํ”Œ๋žซํผ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ๋…์ ์ ์ธ 3D ํ˜•์‹์„ ํ†ตํ•ด ๊ณ„์†ํ•ด์„œ ๊ณ ๊ธ‰ ๊ณ ๊ธ‰ ์„ ํƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค...

๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ๋” ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ "๋Ÿฐํƒ€์ž„" ํ˜•์‹์— ๋Œ€ํ•ด ์šฐ๋ฆฌ(threejs + ์›น ๊ฐœ๋ฐœ์ž)์™€ ๋‹ค๋ฅธ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฅธ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ~15MB USD ๋Ÿฐํƒ€์ž„์„ iOS์— ๋ฒˆ๋“ค๋กœ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐํƒ€์ž„ ์—†์ด USDZ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์—„์ฒญ๋‚˜๊ฒŒ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ๊ฐœ์˜์น˜ ์•Š๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ชจ๋ธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋ธ์„ ์—ฌ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์—์„œ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค.

"๊ณ ๊ธ‰ ๋Ÿญ์…”๋ฆฌ"์—์„œ Apple์˜ iOS QuickLook ๋ทฐ์–ด๋Š” ๊ธˆ์†/๊ฑฐ์น ๊ธฐ PBR ์žฌ๋ฃŒ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์žฌ๋ฃŒ ๋ชจ๋ธ์€ ์˜ค๋Š˜๋‚  glTF 2.0์ด ์ง€์›ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„ glTF 2.0์— ๋Œ€ํ•ด ๊ณ„ํš๋˜๊ณ  https://github.com/mrdoob/three.js/issues/16977 ์— ์„ค๋ช…๋œ ์ถ”๊ฐ€ ์ž๋ฃŒ ๊ธฐ๋Šฅ์€ ํ˜„์žฌ Apple์˜ USDZ ์‹œ์ฒญ์ž๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฒƒ ์ด์ƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ "Apple์˜ USDZ ์‹œ์ฒญ์ž"๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ ์ด์œ ๋Š” ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค์ƒ ์‚ฌ๋žŒ๋“ค์ด USDZ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ USDZ ํ˜•์‹์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์••์ถ•๋œ USD ํŒŒ์ผ์ด๋ฉฐ ์ผ๋ฐ˜ ์žฌ๋ฃŒ ๋ชจ๋ธ์—์„œ ์™„์ „ํžˆ ์‚ฌ์šฉ์ž ์ง€์ • ์…ฐ์ด๋”์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apple ๋ทฐ์–ด๋Š” USD์˜ ์ž‘์€ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ ์ง€์›ํ•˜๋ฉฐ ํ•ด๋‹น ๋ถ€๋ถ„ ์ง‘ํ•ฉ์€ ์ž˜ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ข‹์€ ์š”์•ฝ์€ https://github.com/google/usd_from_gltf#compatibility์ž…๋‹ˆ๋‹ค.

๋ Œ๋”๋ง ์ถฉ์‹ค๋„ ์ธก๋ฉด์—์„œ ๋ชจ๋ธ ๋ทฐ์–ด ๋Š” threejs๋กœ glTF ๋ชจ๋ธ์„ ํ‘œ์‹œํ•˜๊ณ  iOS Quick Look์—์„œ USDZ ๋ฒ„์ „์„ ์—ฌ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•˜๋ฉฐ ์‹œ๊ฐ์  ๊ฒฐ๊ณผ๋Š” ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ง€๊ธˆ์€ ๋‹ค์šด๋˜์—ˆ์ง€๋งŒ ์ด ํŽ˜์ด์ง€ ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ง์ ‘์ ์ธ ๋น„๊ต๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์—ฌ๊ธฐ์—์„œ Apple์˜ ์‚ฌ์•…ํ•œ ๋ชฉํ‘œ๋ฅผ ์ „๋ณต์‹œํ‚ค๋Š” ๊ฒƒ ์™ธ์— ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” USDZ๋ฅผ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

https://github.com/mrdoob/three.js/issues/14219#issuecomment -395107896์„ ์ฐธ์กฐ

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

์œ ํšจํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ Apple/Pixar๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. glTF ๋งŒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ํŒŒ์ผ ํ˜•์‹์„ ๋„์ž…ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? USD / USDZ ๊ฐ€ glTF ๋ณด๋‹ค ๋‚˜์€ ์ ์„ ๋ˆ„๊ตฐ๊ฐ€ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

USD ๋ฌธ์„œ: http://graphics.pixar.com/usd/docs/index.html

์œ ํšจํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ Apple/Pixar๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์™œ ๊ทธ๋“ค์€ glTF๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ํŒŒ์ผ ํ˜•์‹์„ ๋„์ž…ํ•ฉ๋‹ˆ๊นŒ? ๋ˆ„๊ตฐ๊ฐ€ USD/USDZ๊ฐ€ glTF๋ณด๋‹ค ๋‚˜์€ ์ ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ์ œ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์ •์น˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๋ณ„๋„์˜ ํ† ๋ก ์ž…๋‹ˆ๋‹ค :)

USD๋Š” ๋ช‡ ๋…„ ๋™์•ˆ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ํ™”์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ ๋Ÿฐํƒ€์ž„ ์ „์†ก์„ ์œ„ํ•œ ํ™•์‹คํ•œ ์„ ํƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜์žˆ๋Š” ํ•œ USDZ๋Š” ๊ทธ ์ฃผ๋ณ€์˜ ๋ž˜ํผ์ž…๋‹ˆ๋‹ค. Apple์€ ์ด ์‹œ์ ์—์„œ ๋งŽ์€ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„์— ๋” ์ ํ•ฉํ•˜๊ฒŒ ๋งŒ๋“ค ๊ณ„ํš์ด ์žˆ๊ฑฐ๋‚˜ WWDC์˜ ๋ฉ”์‹œ์ง•์ด ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋ช…ํ™•ํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ๋” ๋งŽ์€ ์ •๋ณด๋ฅผ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ THREE.USDZLoader ๊ธฐ๋ถ€์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๊ผญ ํ•ด๋ณด์„ธ์š”. ๐Ÿ™‚ ํ•˜์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€ ๋‚ด๊ฐ€ ์ฐพ์€ ๋ชจ๋“  ๋ฌธ์„œ๋Š” ํ˜•์‹์ด FBX ๋ฐ FBX SDK์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„์„ ์œ„ํ•ด ๊ณต์‹(C++/Python) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋งค์šฐ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ WASM์œผ๋กœ ์›น ์นœํ™”์ ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด three.js์—์„œ USDZ ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ˜•์‹์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ด์  ์—†์ด๋Š” ๋งค์šฐ ์‹œ๊ฐ„ ์†Œ๋ชจ์ ์ธ ํ”„๋กœ์„ธ์Šค์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.

ํ˜ธ๊ธฐ์‹ฌ์— https://developer.apple.com/arkit/gallery/ ์—์„œ "Retro TV" ํŒŒ์ผ์„ ๊ฐ„๋‹จํ•œ zip์œผ๋กœ ์—ด์–ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” .usdz์˜ ํ™•์žฅ์ž๋ฅผ .zip์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ '๋ณด๊ด€ ์ทจ์†Œ'ํ•œ ๋‹ค์Œ ๋‚ด OS์—์„œ ์ผ๋ฐ˜์ ์ธ ์—ด๊ธฐ ์ ˆ์ฐจ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ https://gildas-lormeau.github.io/zip.js/๋กœ ๋น„์Šทํ•œ ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ usdz๋ฅผ '๋ณด๊ด€ ์ทจ์†Œ'ํ•  ๋•Œ ๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

screen shot 2018-07-04 at 2 17 46 pm

๋”ฐ๋ผ์„œ ํ…์Šค์ฒ˜๋Š” ๋‹ค์Œ ๋ฌธ์ œ์ธ ํ•ด๋‹น .usdc ๋‚ด์—์„œ ์ฐธ์กฐ๋˜๋Š” PNG์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. https://graphics.pixar.com/usd/docs/Converting-Between-Layer-Formats.html ์— ๋”ฐ๋ฅด๋ฉด ".usdc ํŒŒ์ผ - ๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹"์€ ํฌ๋ ˆ์ดํŠธ์— ์žˆ์Šต๋‹ˆ๋‹ค(https://graphics์˜ _Crate ํŒŒ์ผ ํ˜•์‹_ ์ฐธ์กฐ). pixar.com/usd/docs/USD-Glossary.html) ํ˜•์‹.

ASCII๋กœ ์ธ์ฝ”๋”ฉ๋œ .usda๋„ ์žˆ๋Š”๋ฐ, ์ด๋Š” ์•„๋งˆ๋„ ๋กœ๋”๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ๋” ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ํ•  ์ผ์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ๊ฐœ์š”๋กœ, Loader๋Š” ์ตœ์†Œํ•œ JS์—์„œ Zip ํŒŒ์ผ์„ ์ถ”์ถœํ•œ ๋‹ค์Œ .usda(๋ฐ ์ž ์žฌ์ ์œผ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ Crate .usdc๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Œ)๋ฅผ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

@richardmonette๋‹˜ , ์ €๋Š” USDZ์™€ USDA ํ˜•์‹์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์œผ๋ฉฐ ๊ฐœ๋… ์ฆ๋ช… glTF๋ฅผ USDZ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ณ€ํ™˜๊ธฐ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๊ท€ํ•˜์˜ ์—ฐ๊ตฌ์— ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค: https://github.com/timvanscherpenzeel/gltf-to-usdz. ์—ฌ๊ธฐ์—์„œ ๋ฐ๋ชจ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://twitter.com/domenicopanacea/status/1011292393801420800 ๋˜๋Š” ์—ฌ๊ธฐ์—์„œ ์ง์ ‘ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: https://timvanscherpenzeel.github.io/gltf-to-usdz/(iOS 12 ํ•„์š”).

๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ๋Š” OBJ ๋กœ ๋ณ€ํ™˜๋˜๊ณ  ๊ธˆ์† ๊ฑฐ์น ๊ธฐ ํ…์Šค์ฒ˜๋Š” ์ฑ„๋„๋ณ„๋กœ ๋ถ„ํ• ๋˜๊ณ  ํ…์Šค์ฒ˜๋Š” Y-ํ”Œ๋ฆฝ๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ๋ถ€ํ„ฐ USDA ํŒŒ์ผ์ด ๋™์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  usdz_converter์— ๊ณต๊ธ‰๋˜์–ด ์ตœ์ข… usdz ํ•ฉ๋‹ˆ๋‹ค.

์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด USDZ์— ๋Œ€ํ•œ ์ง์ ‘ ๋ณ€ํ™˜๊ธฐ๋ฅผ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ํ˜„์žฌ ์‹œ์ ์—์„œ (๋””์ฝ”๋”ฉ ์ธก๋ฉด์—์„œ๋„) USDC ํ˜•์‹์— ๋Œ€ํ•ด ๋งŽ์ด ์•Œ๋ ค์ ธ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

@TimvanScherpenzeel๋‹˜ , ๋ฉ”์‹œ์ง€ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

USD Python API(https://graphics.pixar.com/usd/docs/Hello-World---Creating-Your-First-USD-Stage.html) ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•ด ๋ณด์…จ์Šต๋‹ˆ๊นŒ? .obj ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ๊ณ  Python์„ ์‚ฌ์šฉํ•˜์—ฌ glTF๋ฅผ ์ฝ๊ณ  ๋ฐ”๋กœ ๊ทธ๋Ÿฐ ์‹์œผ๋กœ .usda/c๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค.

USD๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋งŽ์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์ง€๋งŒ ์•„์ง ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋“ค์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ Python์„ ์„ค์น˜ํ•˜๊ณ  ์ปดํŒŒ์ผํ•˜๋Š” ๋™์•ˆ ์ž˜๋ชป๋œ Python์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค).

์‹ค์ œ๋กœ OBJ ํŒŒ์ผ์„ USDA ํŒŒ์ผ์— ์ง์ ‘ ์“ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์‹ค์ œ๋กœ ๊ฐœ๋… ์ฆ๋ช…์˜ ์ข‹์€ ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ). ๋‚ด ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ์—ฌ์ž๊ฐ€ USDC ํŒŒ์ผ์„ usdcat ๋””์ฝ”๋”ฉํ•œ ํ›„ USDA ํŒŒ์ผ์„ ๋ณด๋‚ด์™”๊ธฐ ๋•Œ๋ฌธ์— AR ๊ฐค๋Ÿฌ๋ฆฌ ์˜ˆ์ œ์˜ ํŒŒ์ผ ๊ตฌ์กฐ๋ฅผ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Apple์ด USDZ QuickLook์„ ์ œ๊ณตํ•˜๋Š” ์š”์ ์€ WebGL, DOM ๋ฐ Javascript ์‚ฌ์šฉ์„ ์™„์ „ํžˆ ์šฐํšŒํ•˜๊ณ  ARkit2.0๊ณผ ํ•จ๊ป˜ ์žฅ๋ฉด์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
Apple/Pixar ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” rOS์˜ ์ด์ •ํ‘œ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.
๋‚˜์ค‘์— ์ƒํ˜ธ ์ž‘์šฉ/์Šคํฌ๋ฆฝํŠธ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์›น UI๊ฐ€ ๋” ์ ๊ฒŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํ•˜ํ•™์— ๊ณ ํšจ์œจ OpenSubDiv ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Pixar USD๋Š” ๋ชจ๋ฐ”์ผ Metal๋กœ ์ด์‹๋˜์–ด ๊ณง HighEnd PC-VR WebVR์„ ๋Šฅ๊ฐ€ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
ํŒŒ์ผ ํ˜•์‹์ด ์•„๋‹ˆ๋ผ ์ „์ฒด Experience-Making/Presenting/(-Interaction) ํŒŒ์ดํ”„๋ผ์ธ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ IMHO๋Š” WebGL2 ํŒŒ์ดํ”„๋ผ์ธ์— ์ˆ˜์ž…์—…์ฒด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค AR/VR ํŽธ์ง‘๊ธฐ์—์„œ USDZ ๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  Android ๋ฐ Windows์—์„œ USD ๊ธฐ์ฐจ๋ฅผ ์žก๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”ํ•œ ๋ฌธ์ œ๋Š” WebXR์ด Apple์—์„œ ์‚ฌ์šฉํ•˜๋Š” USD๋ฅผ ์™„์ „ํžˆ ์ง€์›ํ•˜๋ ค๋ฉด ๋ ˆ๊ฑฐ์‹œ ํด๋ฆฌ๋ฉ”์‰ฌ ๋Œ€์‹  SubDiv ํŒจ์น˜๋„ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@pixelpartner ๋‹น์‹ ์€ ๋‚˜๋ฅผ ์žƒ์—ˆ์Šต๋‹ˆ๋‹ค.

๋กœ๋”๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด JavaScript๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ€ต ๋ฃฉ์ด ๊ณ ๋„๋กœ ์ตœ์ ํ™”๋˜์–ด ์žˆ๋‹ค๊ณ  ํ™•์‹ ํ•˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €์—์„œ USDZ ์ž์‚ฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”ํ˜• ์ฝ˜ํ…์ธ ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์œ ํšจํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ Apple/Pixar๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์™œ ๊ทธ๋“ค์€ glTF๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ํŒŒ์ผ ํ˜•์‹์„ ๋„์ž…ํ•ฉ๋‹ˆ๊นŒ? ๋ˆ„๊ตฐ๊ฐ€ USD/USDZ๊ฐ€ glTF๋ณด๋‹ค ๋‚˜์€ ์ ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ตœ๊ทผ์— ์ œํ’ˆ ๋””์Šคํ”Œ๋ ˆ์ด ์†Œํ”„ํŠธ์›จ์–ด ์ž‘์—…์„ ํ•˜๋Š” ์‚ฌ๋žŒ๊ณผ ์ฑ„ํŒ…์„ ํ–ˆ๋Š”๋ฐ, glTF ๋ฐ USDZ๋กœ ์ˆ˜์ถœํ•˜๋ฏ€๋กœ ์ด์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋Š”์ง€ ๋ฌผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ Apple์€ ARKit2.0/SceneKit์„ ํ†ตํ•ด์„œ๋งŒ ํ•ด๋‹น ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•˜๋Š” ๋…์ ์ ์ธ 3D ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์†ํ•ด์„œ ๊ณ ๊ธ‰ ๊ณ ๊ธ‰ ์„ ํƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ์ค€ glTF ํ˜•์‹์„ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์€ ์—ฌ๊ธฐ์—์„œ ๊ทธ๋“ค์˜ ๋ชฉํ‘œ์™€ ๋ฐ˜๋Œ€๋กœ ์‹คํ–‰๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ _์ž์‹ ์˜_ ํ˜•์‹์ด ๋” ์ข‹๊ณ  glTF๊ฐ€ (์•„์ง?) ์ง€์›ํ•˜์ง€ ์•Š๋Š” PBR ์žฌ๋ฃŒ ์†์„ฑ์œผ๋กœ ์ธํ•ด ๋” ๋†’์€ ํ’ˆ์งˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

16977 ๋ฐ ์•„๋งˆ๋„ #14051์€ three.js๋ฅผ Apple ์ œํ’ˆ๊ณผ ๋™์ผํ•œ ๋ Œ๋”๋ง ํ‘œ์ค€์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ glTF์˜ ํ˜„์žฌ ์ƒํƒœ ๋˜๋Š” ํ–ฅํ›„ ๊ณ„ํš์ด ์ด์™€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์—ฌ๊ธฐ์—์„œ Apple์˜ ์‚ฌ์•…ํ•œ ๋ชฉํ‘œ๋ฅผ ์ „๋ณต์‹œํ‚ค๋Š” ๊ฒƒ ์™ธ์— ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” USDZ๋ฅผ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” Apple์ด ์ž์‚ฌ ํ”Œ๋žซํผ์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ๋…์ ์ ์ธ 3D ํ˜•์‹์„ ํ†ตํ•ด ๊ณ„์†ํ•ด์„œ ๊ณ ๊ธ‰ ๊ณ ๊ธ‰ ์„ ํƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค...

๋‚˜๋Š” ์—ฌ๊ธฐ์„œ ๋” ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ "๋Ÿฐํƒ€์ž„" ํ˜•์‹์— ๋Œ€ํ•ด ์šฐ๋ฆฌ(threejs + ์›น ๊ฐœ๋ฐœ์ž)์™€ ๋‹ค๋ฅธ ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‹ค๋ฅธ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ~15MB USD ๋Ÿฐํƒ€์ž„์„ iOS์— ๋ฒˆ๋“ค๋กœ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋„ค์ดํ‹ฐ๋ธŒ ๋Ÿฐํƒ€์ž„ ์—†์ด USDZ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์—„์ฒญ๋‚˜๊ฒŒ ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ๊ฐœ์˜์น˜ ์•Š๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋ชจ๋ธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ  ๋ชจ๋ธ์„ ์—ฌ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์—์„œ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋ชจ๋ธ๋งํ•ฉ๋‹ˆ๋‹ค.

"๊ณ ๊ธ‰ ๋Ÿญ์…”๋ฆฌ"์—์„œ Apple์˜ iOS QuickLook ๋ทฐ์–ด๋Š” ๊ธˆ์†/๊ฑฐ์น ๊ธฐ PBR ์žฌ๋ฃŒ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์žฌ๋ฃŒ ๋ชจ๋ธ์€ ์˜ค๋Š˜๋‚  glTF 2.0์ด ์ง€์›ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฑฐ์˜ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„ glTF 2.0์— ๋Œ€ํ•ด ๊ณ„ํš๋˜๊ณ  https://github.com/mrdoob/three.js/issues/16977 ์— ์„ค๋ช…๋œ ์ถ”๊ฐ€ ์ž๋ฃŒ ๊ธฐ๋Šฅ์€ ํ˜„์žฌ Apple์˜ USDZ ์‹œ์ฒญ์ž๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฒƒ ์ด์ƒ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ "Apple์˜ USDZ ์‹œ์ฒญ์ž"๋ผ๊ณ  ์–ธ๊ธ‰ํ•œ ์ด์œ ๋Š” ๊ทธ๊ฒƒ์ด ์‚ฌ์‹ค์ƒ ์‚ฌ๋žŒ๋“ค์ด USDZ๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ USDZ ํ˜•์‹์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ์••์ถ•๋œ USD ํŒŒ์ผ์ด๋ฉฐ ์ผ๋ฐ˜ ์žฌ๋ฃŒ ๋ชจ๋ธ์—์„œ ์™„์ „ํžˆ ์‚ฌ์šฉ์ž ์ง€์ • ์…ฐ์ด๋”์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Apple ๋ทฐ์–ด๋Š” USD์˜ ์ž‘์€ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ ์ง€์›ํ•˜๋ฉฐ ํ•ด๋‹น ๋ถ€๋ถ„ ์ง‘ํ•ฉ์€ ์ž˜ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์ง€๋งŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ข‹์€ ์š”์•ฝ์€ https://github.com/google/usd_from_gltf#compatibility์ž…๋‹ˆ๋‹ค.

๋ Œ๋”๋ง ์ถฉ์‹ค๋„ ์ธก๋ฉด์—์„œ ๋ชจ๋ธ ๋ทฐ์–ด ๋Š” threejs๋กœ glTF ๋ชจ๋ธ์„ ํ‘œ์‹œํ•˜๊ณ  iOS Quick Look์—์„œ USDZ ๋ฒ„์ „์„ ์—ฌ๋Š” ์ˆ˜๋‹จ์„ ์ œ๊ณตํ•˜๋ฉฐ ์‹œ๊ฐ์  ๊ฒฐ๊ณผ๋Š” ๋งค์šฐ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ์ง€๊ธˆ์€ ๋‹ค์šด๋˜์—ˆ์ง€๋งŒ ์ด ํŽ˜์ด์ง€ ๋Š” ๋ช‡ ๊ฐ€์ง€ ์ง์ ‘์ ์ธ ๋น„๊ต๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์–ด์จŒ๋“  ์—ฌ๊ธฐ์—์„œ Apple์˜ ์‚ฌ์•…ํ•œ ๋ชฉํ‘œ๋ฅผ ์ „๋ณต์‹œํ‚ค๋Š” ๊ฒƒ ์™ธ์— ๋‹ค๋ฅธ ์ด์œ ๊ฐ€ ์—†๋‹ค๋ฉด ์–ธ์  ๊ฐ€๋Š” USDZ๋ฅผ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

https://github.com/mrdoob/three.js/issues/14219#issuecomment -395107896์„ ์ฐธ์กฐ

์ €๋Š” ์—ฌ๊ธฐ์„œ "์‚ฌ์น˜์Šค๋Ÿฌ์šด ์„ ํƒ์ด๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š”" Apple ์™ธ์— USD๋ฅผ ์ง€์›ํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ์Œ์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. @Mugen87 ์€ "๋ˆ„๊ตฐ๊ฐ€ USD/USDZ๊ฐ€ glTF๋ณด๋‹ค ๋‚˜์€ ์ ์„ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?"๋ผ๊ณ  ๋ฌป์Šต๋‹ˆ๋‹ค.
๋‚ด๊ฐ€ ์‹ ๊ฒฝ์“ฐ๋Š” ๋ช‡ ๊ฐ€์ง€:

  • HDR/ํ”Œ๋กœํŠธ ํ…์Šค์ฒ˜
  • ํ™˜๊ฒฝ ๋งต(UsdLuxDomeLight)
  • ์˜์—ญ ๋ฐ ๊ตฌ ์กฐ๋ช…(UsdLuxRectLight ๋“ฑ)
  • WebGL์šฉ "๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ‘œ๋ฉด"์ด ์žˆ๋Š” ์…ฐ์ด๋” ์žฌ๋ฃŒ(OSL/MDL)

๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋™์ผํ•œ ์žฅ๋ฉด ์„ค๋ช…์„ WebGL๊ณผ ๊ณ ๊ธ‰ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์— ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ชจ์–‘์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋ฌผ๋ก  ๋‹ค๋ฅด๋ฉฐ ์ผ๋ถ€ ๋Œ€์ฒด๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@garyo ์กฐ๋ช… ๋ฐ ํ™˜๊ฒฝ์€ ์‹ค์ œ ํ™˜๊ฒฝ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด AR ๋ทฐ์–ด์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์ด ๋น„๋””์˜ค๋Š” ์ง€์›ํ•˜๋Š” ๋งต(์•Œ๋ฒ ๋„, ๋ฉ”ํƒˆ๋ฆญ, ๋Ÿฌํ”„๋‹ˆ์Šค, ๋…ธ๋ฉ€, ์•ฐ๋น„์–ธํŠธ ์˜คํด๋ฃจ์ „, ์ด๋ฏธ์‹œ๋ธŒ)์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
https://developer.apple.com/videos/play/wwdc2018/603/

๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์€ three.js์˜ USDA ๋‚ด๋ณด๋‚ด๊ธฐ์ด๋ฏ€๋กœ AR์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก 3๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์„ฑ/๊ตฌ์„ฑํ•œ ๋ชจ๋ธ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"model-view"๋Š” iOS์—์„œ ๋ณผ ๋•Œ USDZ ๋ชจ๋ธ ๋Œ€์•ˆ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
https://modelviewer.dev/

Apple์ด ๋‹ค๋ฅธ ๋ˆ„๊ตฌ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์–ด๋””์—์„œ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ •๋ง ๋ถ€๋„๋Ÿฌ์šด ์ผ์ž…๋‹ˆ๋‹ค(๋ฒ ํƒ€ ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” Blender์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ). ๋”ฐ๋ผ์„œ ๊ธฐ์กด ๋ชจ๋ธ์„ ๋ชจ๋‘ ์ˆ˜๋™์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ํ…์Šค์ฒ˜๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ „์ฒด ๋ชจ๋ธ ๋ฒ”์œ„์—์„œ ๋™์ผํ•œ ํ…์Šค์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์™ธ๋ถ€ ์ฐธ์กฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
Pixar ์‚ฌ์–‘์˜ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ์™€ ๋งคํ•‘๋งŒ ํ™œ์šฉํ•˜๊ณ  ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์••์ถ•ํ•˜๋Š” ์ผ์ข…์˜ ์—‰ํ„ฐ๋ฆฌ ํ˜•์‹์ž…๋‹ˆ๋‹ค.
glTF/glb๋Š” ํ›จ์”ฌ ๋” ๋‚˜์•˜์„ ๊ฒƒ์ด๊ณ  ์šฐ๋ฆฌ๋Š” ์–ด๋””์—์„œ๋‚˜ ํ•˜๋‚˜์˜ ๋ชจ๋ธ๋งŒ ํ•„์š”ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค...
๊ทธ๋“ค์ด ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์ „์ž ์ƒ๊ฑฐ๋ž˜ ์˜์—ญ์—์„œ iOS์—์„œ๋งŒ ์ž‘๋™ํ•˜๋Š” ์›น ๊ฒฝํ—˜์„ ์›ํ•˜๋Š” ๊ณ ๊ฐ์€ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ‰์†Œ์™€ ๊ฐ™์ด ๋ชจ๋“  ์›์ˆญ์ด ์ž‘์—…๊ณผ ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@garyo

๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋™์ผํ•œ ์žฅ๋ฉด ์„ค๋ช…์„ WebGL๊ณผ ๊ณ ๊ธ‰ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์— ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž ๊น, webgl์—์„œ usd(z)๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

USDZ์˜ ๊ธฐ๋Šฅ ์„ธํŠธ๋Š” ์ตœ๊ทผ iOS 13.4(๋ฐ RealityComposer 1.4(133+))์—์„œ ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

Apple์€ ํ˜„์žฌ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ•ด์„ํ•  ์ˆ˜ ์—†๊ณ  ๋‹จ์ˆœํžˆ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ USD ์ฒด๊ณ„๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
RealityComposer์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๋Œ€ํ™”ํ˜• ๊ธฐ๋Šฅ์€ ์ด์ œ .reality ์žฅ๋ฉด ํŒŒ์ผ์— ์ €์žฅ๋  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด ์ƒˆ๋กœ์šด USD ๋ฐฉ์‹์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ๋จธ๋ฆฌ ๊ผญ๋Œ€๊ธฐ์˜ ๋ช‡ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด USD ๊ธฐ๋Šฅ:
๊ฒฝ๊ณ„ ํŠธ๋ฆฌ๊ฑฐ, ์˜์—ญ ํƒญ ๋˜๋Š” ์ž…๋ ฅ
๊ทธ๋ฃนํ™”๋œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์ž‘์—…, ์ˆœ์ฐจ์  ๋ฐ/๋˜๋Š” ๋ณ‘๋ ฌ
Text Geometry๋Š” ๋ฌธ์ž์—ด, ๊ธ€๊ผด ๋ฐ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ Prim์— ์˜ํ•ด ์ฆ‰์„์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ์‹œ๋Œ€๋ฅผ ์—ฝ๋‹ˆ๋‹ค. ์ด์ œ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ Pixar ์‚ฌ์šฉ ๋„๊ตฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(C++/python 2.6/python 3.x)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ˆœํžˆ ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ๋Œ€ํ™”ํ˜• ๊ฒฝํ—˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” USD ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ถ„๋ช…ํžˆ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ์—ฌ์ „ํžˆ iDevice๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

-
(๊ทธ๋ƒฅ ๊ฒฉ๋ฆฌ ์ข…๋ฃŒ, ์žฌํƒ๊ทผ๋ฌด)
ํฅ๋ถ„ํ•œ ํ† ๋งˆ์Šค

์˜ค์ „ 14.04.2020 ์Œ 20:25 schrieb theightyatom [email protected] :
@garyo https://github.com/garyo ์กฐ๋ช… ๋ฐ ํ™˜๊ฒฝ์€ ์‹ค์ œ ํ™˜๊ฒฝ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด AR ๋ทฐ์–ด์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
์ด ๋น„๋””์˜ค๋Š” ์ง€์›ํ•˜๋Š” ๋งต(์•Œ๋ฒ ๋„, ๋ฉ”ํƒˆ๋ฆญ, ๋Ÿฌํ”„๋‹ˆ์Šค, ๋…ธ๋ฉ€, ์•ฐ๋น„์–ธํŠธ ์˜คํด๋ฃจ์ „, ์ด๋ฏธ์‹œ๋ธŒ)์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
https://developer.apple.com/videos/play/wwdc2018/603/ https://developer.apple.com/videos/play/wwdc2018/603/
๋‚ด๊ฐ€ ๋ณด๊ณ  ์‹ถ์€ ๊ฒƒ์€ three.js์˜ USDA ๋‚ด๋ณด๋‚ด๊ธฐ์ด๋ฏ€๋กœ AR์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก 3๊ฐœ์˜ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒ์„ฑ/๊ตฌ์„ฑํ•œ ๋ชจ๋ธ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
iOS์—์„œ ๋ณผ ๋•Œ USDZ ๋ชจ๋ธ ๋Œ€์•ˆ์„ ์ง€์ •ํ•˜๊ธฐ ์œ„ํ•œ ํƒœ๊ทธ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
https://modelviewer.dev/ https://modelviewer.dev/
Apple์ด ๋‹ค๋ฅธ ๋ˆ„๊ตฌ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์–ด๋””์—์„œ๋„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ์ •๋ง ๋ถ€๋„๋Ÿฌ์šด ์ผ์ž…๋‹ˆ๋‹ค(๋ฒ ํƒ€ ๋‚ด๋ณด๋‚ด๊ธฐ๋Š” Blender์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ). ๋”ฐ๋ผ์„œ ๊ธฐ์กด ๋ชจ๋ธ์„ ๋ชจ๋‘ ์ˆ˜๋™์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ํ…์Šค์ฒ˜๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์ „์ฒด ๋ชจ๋ธ ๋ฒ”์œ„์—์„œ ๋™์ผํ•œ ํ…์Šค์ฒ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์™ธ๋ถ€ ์ฐธ์กฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
Pixar ์‚ฌ์–‘์˜ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ์™€ ๋งคํ•‘๋งŒ ํ™œ์šฉํ•˜๊ณ  ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ์••์ถ•ํ•˜๋Š” ์ผ์ข…์˜ ์—‰ํ„ฐ๋ฆฌ ํ˜•์‹์ž…๋‹ˆ๋‹ค.
glTF/glb๋Š” ํ›จ์”ฌ ๋” ๋‚˜์•˜์„ ๊ฒƒ์ด๊ณ  ์šฐ๋ฆฌ๋Š” ์–ด๋””์—์„œ๋‚˜ ํ•˜๋‚˜์˜ ๋ชจ๋ธ๋งŒ ํ•„์š”ํ–ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค...

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub https://github.com/mrdoob/three.js/issues/14219#issuecomment-613604756 ์—์„œ ํ™•์ธํ•˜๊ฑฐ๋‚˜ https://github.com/notifications/unsubscribe-auth/AAR6X5SXAY32JAPYL5V44TRMSTBTANCNFSM4๋ฅผ ๊ตฌ๋… ์ทจ์†Œ

USD ๋˜๋Š” USDZ์— ๋Œ€ํ•œ ์›น ํ˜ธํ™˜ ํŒŒ์„œ๋ฅผ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. WebGL์ด๋‚˜ ๋‹ค๋ฅธ API์—์„œ ๋ Œ๋”๋งํ•˜๋Š” ๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ํŒŒ์ผ ์ฝ˜ํ…์ธ ๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ OpenSubdiv ๋ฐ MaterialX๋ฅผ ํฌํ•จํ•œ ์ข…์†์„ฑ์ด ์žˆ๋Š” ๊ณต์‹ USD ๋Ÿฐํƒ€์ž„์—์„œ ๊ฐ€์žฅ ์ž˜ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ์ด์ œ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ Pixar ์‚ฌ์šฉ ๋„๊ตฌ ๋ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(C++/python 2.6/python 3.x)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ USD ํŒŒ์ผ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ USD ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๐Ÿ™‚ ๊ธฐ์ˆ ์ ์ธ ์ด์œ ๋กœ ๋‚˜๋Š” ๊ธฐ๋Šฅ์ ์ธ three.js ๊ตฌํ˜„์ด ์ง€๊ธˆ ๋‹น์žฅ์€ ๊ฐ€๋Šฅํ•˜์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์—ฌ๊ฐ€ ์‹œ๊ฐ„์— ์ถ•๋ณต์„ ๋ฐ›๋Š”๋‹ค๋ฉด OpenSubdiv(w/ WASM?) ๋˜๋Š” MaterialX(w/ THREE.NodeMaterial?)๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. USD ํŒŒ์„œ๊ฐ€ ์—†์–ด๋„ ๊ทธ ์ž์ฒด๋กœ ์œ ์šฉํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. .

@garyo

๋‚ด ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋™์ผํ•œ ์žฅ๋ฉด ์„ค๋ช…์„ WebGL๊ณผ ๊ณ ๊ธ‰ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์— ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž ๊น, webgl์—์„œ usd(z)๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ, ๋‚ด๊ฐ€ ์ฐพ๊ณ ์žˆ๋Š”๊ฑฐ์•ผ. ์žฅ๋ฉด(๊ฐ์ฒด, ์กฐ๋ช…, ์žฌ๋ฃŒ, ์นด๋ฉ”๋ผ, ์• ๋‹ˆ๋ฉ”์ด์…˜ ๋“ฑ - ์ „์ฒด)์ด ์žˆ๊ณ  ํ˜•์‹์— ์ƒ๊ด€์—†์ด ๋™์ผํ•œ ์žฅ๋ฉด์„ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์œ„ํ•ด WebGL(3.js๋ฅผ ํ†ตํ•ด)์— ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ข… ๋ Œ๋”๋ง์„ ์œ„ํ•œ ๋ธ”๋ Œ๋”์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. glTF๋Š” ํ˜„์žฌ๋กœ์„œ๋Š” ์ตœ์„ ์˜ ์„ ํƒ์ด์ง€๋งŒ ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์‚ฌํ•ญ(์˜์—ญ ์กฐ๋ช… ๋“ฑ)์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. glTF ์‚ฌ๋žŒ๋“ค์ด ์‹ค์ œ ์žฅ๋ฉด์ด ์•„๋‹Œ ์žฅ์น˜์— ๋Œ€ํ•œ ๋ผ์ŠคํŠธ ๋งˆ์ผ ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๊บผ๋ฆฌ๋Š” ๊ฒƒ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. ์˜ฎ๊ธฐ๋‹ค.
์˜ต์…˜์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@garyo Collada๊ฐ€ ์ฒญ๊ตฌ์„œ์— ๋งž๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๊นŒ? ์ €๋Š” three.js์—์„œ ํŽธ์ง‘๋œ ๋ฒ„์ „์˜ ์ฝœ๋ผ๋‹ค ๋‚ด๋ณด๋‚ด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ Œ๋”๋ง์„ ์œ„ํ•ด ์ž์‚ฐ์„ ๋ธ”๋ Œ๋”๋กœ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

@themightyatom ๋‚˜๋Š” ๋ช‡ ๋…„ ์ „์— Collada๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”. (๋‹น์‹œ ๋‚˜๋Š” Godot ํ•˜๋‚˜, PBR ์ง€์› ์—†์Œ ๋“ฑ๊ณผ ๊ฐ™์€ ์ฃผ์žฅ์— ์˜ํ•ด ํ™•์‹ ์„

@garyo Collada๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž ๊ฐ„์— ์ž์‚ฐ์„ ์ „์†กํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ „๋‹ฌ ํ˜•์‹์€ ์•„๋‹ˆ์ง€๋งŒ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ๋งค์šฐ ์ž˜ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. :)
๋‚˜๋Š” ์ดํƒˆ๋ฆฌ์•„์—์„œ ์ œ์ž‘์ž ์ค‘ ํ•œ ๋ช…์ธ Rene Arnaud์™€ ํ•จ๊ป˜ ์ผ์ฃผ์ผ์„ ๋ณด๋‚ผ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์šด์ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค. "GPU์˜ ๊ด€์ ์—์„œ" ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์–‘ ๋ณ€๊ฒฝ์„ ์ง€์›ํ•˜๋Š” ์ฒซ ๋ฒˆ์งธ ํ˜•์‹์ž…๋‹ˆ๋‹ค. (OpenGL, DirectX ๋“ฑ).

https://github.com/google/usd_from_gltf ๋ฅผ ์ˆ˜์ถœ์—…์ฒด๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ๊ฐ€์น˜ ์žˆ๋Š” ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. USD๋ฅผ ์—ด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๋‚˜์—๊ฒŒ ํ›จ์”ฌ ๋œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

USDZ(๋กœ๋“œ ๋˜๋Š” ๋‚ด๋ณด๋‚ด๊ธฐ)๋กœ ์œ ์šฉํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด USD SDK๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. glTF_์˜ _USD์—๋Š” USD SDK๊ฐ€ ์ข…์†์„ฑ์œผ๋กœ ํ•„์š” ํ•˜์ง€๋งŒ SDK๋Š” ์›น์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . Apple์€ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  ๊ธฐ๋ณธ AR Quick Look ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ด๋™ํ•˜์—ฌ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์›น์— ๋Œ€ํ•œ ์†”๋ฃจ์…˜์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰