[ReactThreeFiber] 3D 모델(sketchfab) - THREE.GLTFLoader: Unknown extension KHR_materials_pbrSpecularGlossiness
sketchfab
조던1의 3D 모델을 찾기 위해 sketchfab를 이용했다.
https://sketchfab.com/3d-models/air-jordan-1-1985-2614cef9a3724ec5852144446fbb726f
첫번째는 범고래를 렌더링 했지만 한 켤례만 있는게 좋을 것 같아서 다시 찾기 시작했고 시카고를 찾았다.
Download 3D Model 클릭 -> glTF로 다운을 받았다.
다운로드 받은 zip의 압축을 풀면 scene.gltf, scene.bin, license 그리고 textures 폴더가 들어있다.
라이센스 빼고 전부 필요하며 나는 public으로 폴더 채로 복사를 했다.
터미널에서 public을 열고 npx gltfjsx scene.gltf
-
GLTF 형식의 3D 모델 파일을 JSX 형식의 React 구성 요소로 변환해주는 도구이다.
-
타입스크립트라면
npx gltfjsx scene.gltf -t
그러면 Scene.tsx가 생성되며 canvas에 그대로 옯기면 화면에 띄울 수 있다.
하지만 여기서 변수
THREE.GLTFLoader: Unknown extension "KHR_materials_pbrSpecularGlossiness".
라는 에러가 발생하며 컬러 적용되지 않았다. 분명 시카고였던 조던1이 올흰이 되어 렌더링되었다.
바로 검색
그리고
https://discourse.threejs.org/t/gltf-color-textures-missing-babylon-display-works/50424/4
첫 번째 사이트를 통해 두 번째 사이트로 이동 해답을 알았다.
간단하게 내가 받은 3D 모델은 KHR_materials_pbrSpecularGlossiness
을 이용해서 만들었고 이제 더 이상 Three.js에서 지원을 안한다는 것
따라서 사이트에서 제시한 두 번째 방법을 사용
Commandline
With Node.js ≥14 installed, open a terminal run the following commands:
install -
npm install --global @gltf-transform/cli
convert -
gltf-transform metalrough input.glb output.glb
These steps will convert any spec/gloss materials in the file to metal/rough.
위 두 커맨드로 해결했다.
댓글남기기