Code Less, Create More!

Simple but useful code snippets for 3D Graphic Developers

glTF 3D Model

glTF 3D 모델을 웹 페이지에 포함하는 방법

데브엑스 2023. 4. 22. 08:55
반응형

glTF 모델을 웹 페이지에 추가해  3D 모델을 표시할 수 있다는 것을 아시나요? glTF는 3D 그래픽을 위한 오픈 표준 형식으로, 최근에 널리 사용되고 있습니다. 이 포맷은 효율적이고 간결하며 로드하기 쉬운 것으로 디자이너와 웹 개발자들이 웹 페이지에 3D 콘텐츠를 추가하고자 할 때 손쉽게 사용할 수 있습니다.

glTF 포맷을 사용하면 웹 페이지에서 빠르고 효율적으로 로드되는 고품질의 3D 모델을 만들 수 있습니다. 이 방식으로 성능을 희생하지 않으면서 사용자에게 몰입감 있는 체험을 제공할 수 있습니다. 또한 애니메이션과 투명도와 같은 기능을 지원하기 때문에 사용자들의 관심을 끌고 계속해서 끌어들일 수 있는 인터렉티브한 콘텐츠를 만들 수 있습니다

 

웹 페이지에서 glTF 모델을 표시하려면 WebGL 호환 브라우저와 해당 형식을 지원하는 뷰어가 필요합니다. Three.js(https://threejs.org/)와 Babylon.js(https://www.babylonjs.com/) 같은 많은 JavaScript 기반 3D 엔진은 glTF 포맷을  내장 형식으로 지원합니다.

따라서 이러한 엔진 중 하나를 사용하여 쉽게 glTF 모델을 웹 페이지에 추가할 수 있습니다. 이를 통해 프로그래밍 능력이 부족한 사람도 쉽게 3D 모델을 표시할 수 있습니다. 또한 이러한 엔진은 glTF 외에도 다양한 다른 3D 모델 형식을 지원하기 때문에, 원하는 모델을 쉽게 추가할 수 있습니다.

즉, 아래의 사례처럼 Three.js나 Babylon.js와 같은 JavaScript 3D 엔진을 사용하면 웹 페이지에서 3D 모델을 표시할 수 있게 됩니다.

아래는 HTML과 JavaScript를 사용하여 웹 페이지에 glTF 모델을 삽입하는 간단한 예제입니다.

<!doctype html>
<html>
   <head>
      <meta charset = "utf-8">
      <title>BabylonJs - Basic glTF loading Example</title>
      <script src="https://cdn.babylonjs.com/babylon.max.js"></script>
      <script src="https://cdn.babylonjs.com/loaders/babylonjs.loaders.min.js"></script>    
      <style>
        body { margin: 0; }
        canvas {width: 100%; height: 100vh; }
      </style>
   </head>

   <body>
      <canvas id = "renderCanvas"></canvas>
      <script type = "text/javascript">

        // create the canvas        
        var canvas = document.getElementById("renderCanvas");
        
        // create the engine        
        var engine = new BABYLON.Engine(canvas, true);
         
        // create the scene
        var scene = new BABYLON.Scene(engine);
        scene.clearColor = new BABYLON.Color3( .5, .5, .5);

        // create the camera
        var camera = new BABYLON.ArcRotateCamera("camera1",  0, 0, 0, new BABYLON.Vector3(0, 0, 0), scene);
        camera.setPosition(new BABYLON.Vector3(0, 0, 5));
        camera.attachControl(canvas, true);
        
        // create lights
        var light = new BABYLON.HemisphericLight("light1", new BABYLON.Vector3(1, 0.5, 0), scene);
        light.intensity = 0.8;
        
        // create a default skybox with an environment.
        var hdrTexture = BABYLON.CubeTexture.CreateFromPrefilteredData("https://playground.babylonjs.com/textures/environment.dds", scene);
        var currentSkybox = scene.createDefaultSkybox(hdrTexture, true);
        
        const modelUrl = "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/DamagedHelmet/glTF-Binary/";
        //const modelFile = "DamagedHelmet.glb";
        BABYLON.SceneLoader.Append(modelUrl, modelFile, scene, function (scene) {
             // do something with the scene
        });
             
        engine.runRenderLoop(function() {
            scene.render();
        });        
      </script>
   </body>
</html>

이 코드는 Babylon.js 엔진을 사용하여 glTF 모델을 웹 페이지에 추가하는 간단한 코드입니다. BABYLON.SceneLoader.Append 함수를 사용하여 모델을 적재하고, engine.runRenderLoop 함수를 사용하여 모델을 렌더링합니다.

위의 샘플 코드처럼 HTML 파일을 생성하고 "model-file-name.glb" 파일을 "contents-location"폴더에 저장한 뒤 브라우저에서 열면 해당 glTF 모델이 웹 페이지에 표시됩니다. 

이러한 방법을 사용하여 쉽게 glTF 모델을 웹 페이지에 추가할 수 있습니다.

 

이 포스트에서 3D 모델이 바로 보이지 않는 경우는 아래 링크에서 사례를 확인할 수 있습니다.

https://www.3dcodekits.com/gltf-in-a-web-page/

 

glTF in a Web Page - 3D Developers' Survival Kits

Did you know you can display 3D models in your web page? With the rise of glTF, it’s now easier than ever to add 3D graphics to your web projects. glTF, or GL Transmission Format, is an open standard format for 3D graphics that has gained widespread adop

www.3dcodekits.com

 

모델 파일의 .glb 확장자는 glTF의 바이너리 형식으로 3D 장면, 메시, 텍스쳐 등의 모든 구성 요소를 하나의 파일로 저장해 둔 것입니다. 만일 .gltf 파일만 있다면 아래 링크의 편집 도구를 사용해 변환할 수 있습니다.

https://3dcodekits.tistory.com/entry/glTF-3D-%EB%AA%A8%EB%8D%B8%EC%9D%84-%EC%9C%84%ED%95%9C-%EB%8F%84%EA%B5%AC%EB%93%A4

 

glTF 3D 모델을 위한 도구들

3D 프로그램을 개발 하고 있다면, glTF 형식에 대해 들어보았을 것입니다. glTF는 "GL Transmission Format"의 약자로, 3D Scene(장면)과 Model의 효율적인 전송 및 로드를 위해 특별히 설계된 오픈 표준 파일

3dcodekits.tistory.com

 

만약 워드프레스 사이트를 운영하고 있다면, glTF 모델을 웹 페이지에 쉽게 표시할 수 있는 여러가지 플러그인이 있습니다. 그러한 플러그인 중 하나는 3D Viewer 플러그인입니다. 아래 링크에서 더 많은 플러그인을 찾을 수 있습니다.

https://wordpress.org/plugins/search/3d-viewer+gltf/

 

Search Results for “3d-viewer gltf” | WordPress.org

Three Viewer provide an free and easy solution to visualize any 3D Models on your website,

wordpress.org

이렇게 플러그인을 설치하면 워드프레스에서 glTF 모델을 손쉽게 표시할 수 있습니다. 모델을 업로드하고 삽입할 페이지를 선택하면, 플러그인은 자동으로 모델을 렌더링하고 웹 페이지에 삽입합니다.

이 플러그인은 모델의 크기와 배치를 조정하거나, 모델의 회전, 확대 및 축소 등의 효과를 추가할 수 있는 다양한 기능을 제공하고 있습니다. 이러한 기능을 사용하여 웹 페이지에서 더욱 동적이고 매력적인 3D 모델을 만들어 볼 수 있습니다.

그러므로 워드프레스를 사용하는 경우, 3D Viewer 플러그인을 사용하여 쉽게 glTF 모델이 추가된 웹 페이지에 만들수 있습니다.

 3D Viewer 플러그인이나 유사한 도구를 사용하여 워드프레스 사이트에 3D 콘텐츠를 추가하면, 방문자에게 몰입감과 상호작용적인 경험을 제공할 수 있습니다. 제품 시각화, 게임, 가상 투어 등을 만드는 경우, glTF와 워드프레스 플러그인을 사용하여 웹 프로젝트를 더욱 발전시킬 수 있습니다.

 

추가로 glTF 모델 포맷에 대한 보다 상세한 설명은 이곳에서 확인할 수 있습니다.

https://3dcodekits.tistory.com/entry/glTF-Standard-format-for-3D-Content-creation-and-delivery

 

glTF: 3D 콘텐츠의 생성 및 배포를 위한 표준 포맷

오늘날 3D 모델은 게임, 건축, 엔지니어링, 엔터테인먼트 등 다양한 산업에서 디지털 콘텐츠 생성의 필수 구성 요소로 사용됩니다. 그러나 3D 모델의 생성, 공유 및 조회는 보통 표준 포맷이 없기

3dcodekits.tistory.com

 

반응형