수색…


비고

이 프로젝트의 목표는 매우 낮은 수준의 복잡성을 가진 경량 3D 라이브러리, 즉 인형을 만드는 것입니다. 라이브러리는 캔버스, svg, CSS3D 및 WebGL 렌더러를 제공합니다.

버전

번역 변경 로그 출시일
R85 링크 2017-04-25
R84 링크 2017-01-19
R83 링크 2016-12-15
R82 링크 2016-12-15
R81 링크 2016-09-16
R80 링크 2016-08-23
R79 링크 2016-07-14
R78 링크 2016-06-20

설치 또는 설정

  • npm을 통해 three.js 를 설치할 수 있습니다.
npm install three
  • CDN에서 HTML로 추가 할 수 있습니다.
 <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r83/three.js"></script>
  • three.js 편집기 를 사용하여 예제 또는 시작 지점으로 프로젝트를 다운로드하고 다운로드 할 수 있습니다.

간단한 상용구 : 댐핑이있는 큐브 및 궤도 제어 회전

프로젝트를 시작할 때 상용구로 사용할 수있는 기본 HTML 파일입니다. 이 상용구는 댐핑 (감속 효과로 대상을 따라 움직일 수있는 카메라)과 함께 궤도 제어를 사용하고 회전 큐브를 만듭니다.

<!DOCTYPE html>
<html>
    <head>
        <title>Three.js Boilerplate</title>

        <!--This is important to get a correct canvas size on mobile-->
        <meta name='viewport' content='width=device-width, user-scalable=no'/>

        <style>
            body{
                margin:0;
                overflow:hidden;
            }

            /*
              Next 2 paragraphs are a good practice. 
              In IE/Edge you have to provide the cursor images.
            */
            canvas{
                cursor:grab;
                cursor:-webkit-grab;
                cursor:-moz-grab;
            }
            canvas:active{
                cursor:grabbing;
                cursor:-webkit-grabbing;
                cursor:-moz-grabbing;
            }
        </style>
    </head>
    <body>
        
        <script src='three.js/build/three.js'></script>
        <script src='three.js/examples/js/controls/OrbitControls.js'></script>

        <script>
            var scene, renderer, camera, controls, cube;
        
            init();

            function init () {
                renderer = new THREE.WebGLRenderer();
                
                //this is to get the correct pixel detail on portable devices
                renderer.setPixelRatio( window.devicePixelRatio );

                //and this sets the canvas' size.
                renderer.setSize( window.innerWidth, window.innerHeight );
                document.body.appendChild( renderer.domElement );

                scene = new THREE.Scene();

                camera = new THREE.PerspectiveCamera( 
                    70,                                         //FOV
                    window.innerWidth / window.innerHeight,     //aspect
                    1,                                          //near clipping plane
                    100                                         //far clipping plane
                );
                camera.position.set( 1, 3, 5 );

                controls = new THREE.OrbitControls( camera, renderer.domElement );
                controls.rotateSpeed = .07;
                controls.enableDamping = true;
                controls.dampingFactor = .05;

                window.addEventListener( 'resize', function () {
                    camera.aspect = window.innerWidth / window.innerHeight;
                    camera.updateProjectionMatrix();
                    renderer.setSize( window.innerWidth, window.innerHeight );
                }, false );

                cube = new THREE.Mesh(
                    new THREE.BoxGeometry( 1, 1, 1 ),
                    new THREE.MeshBasicMaterial()
                   );
                scene.add( cube );

                animate();
            }

            function animate () {
                requestAnimationFrame( animate );
                controls.update();
                renderer.render( scene, camera );
                
                cube.rotation.x += 0.01;
            }
        </script>
    </body>
</html>

안녕하세요!

이 예제는 threejs 웹 사이트 에서 가져온 것입니다.

three.js다운로드 하고 아래 스크립트 소스를 변경하고자 할 수 있습니다.

이 링크에는 더 많은 고급 예제가 있습니다.

HTML :

<html>
<head>
    <meta charset=utf-8>
    <title>My first Three.js app</title>
    <style>
        body { margin: 0; }
        canvas { width: 100%; height: 100% }
    </style>
</head>
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r83/three.js"></script>
    <script>
        // Our JavaScript will go here.
    </script>
</body>

자바 스크립트에서 정적 큐브가있는 기본 장면 :

var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 );

var renderer = new THREE.WebGLRenderer();
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
var cube = new THREE.Mesh( geometry, material );
scene.add( cube );

camera.position.z = 5;

실제로 무엇인가를 보려면, Render () 루프가 필요합니다 :

function render() {
    requestAnimationFrame( render );
    renderer.render( scene, camera );
}
render();


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow