簡體   English   中英

在實現Three.js的軌道控件時如何修復黑色畫布?

[英]How to fix a black canvas when implementing Orbit Controls for Three.js?

我正在學習three.js,到目前為止一切順利。 我設法在JS Fiddle中的畫布上編寫了一個多維數據集,但是當我嘗試使用Orbit Controls旋轉它時,它只是顯示了一個黑色畫布。

我嘗試在three.js網站上進行研究,並查看了Orbit Controls的其他工作示例,但沒有一個對我有用。

<script src='http://threejs.org/build/three.min.js'></script>
    <script src='http://threejs.org/examples/js/controls/OrbitControls.js'></script>

    <script>
    let container, renderer, scene, camera, controls;

        function init() {

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

  scene = new THREE.Scene();

        camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
        camera.position.z = 4;

        controls = new THREE.OrbitControls(camera, renderer.domElement);

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

        window.addEventListener('resize', resizeFunction);
        }

        let resizeFunction = function() {
            let width = window.innerWidth;
            let height = window.innerHeight;
            camera.aspect = width / height;
            camera.updateProjectionMatrix();
            renderer.setSize(width, height);
        }
        let animate = function() {
            controls.update();
            renderer.render(scene, camera);
            requestAnimationFrame(animate);
        }
        init();
        animate();
</script>

我找不到任何錯誤消息。 我希望輸出是在較淺背景下的完全旋轉的黑色立方體,但顯示的是全黑的屏幕。 我還多次檢查了我的代碼,但沒有發現任何問題。 希望你們能提供幫助!

似乎為我工作。

  let container, renderer, scene, camera, controls; function init() { renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); renderer.setClearColor(0xccccff); document.body.appendChild(renderer.domElement); scene = new THREE.Scene(); camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000); camera.position.z = 4; controls = new THREE.OrbitControls(camera, renderer.domElement); let geometry = new THREE.BoxGeometry(1, 1, 1); let material = new THREE.MeshBasicMaterial({color: 0x000000}); let cube = new THREE.Mesh(geometry, material); scene.add(cube); window.addEventListener('resize', resizeFunction); } let resizeFunction = function() { let width = window.innerWidth; let height = window.innerHeight; camera.aspect = width / height; camera.updateProjectionMatrix(); renderer.setSize(width, height); } let animate = function() { controls.update(); renderer.render(scene, camera); requestAnimationFrame(animate); } init(); animate(); 
 <script src='http://threejs.org/build/three.min.js'></script> <script src='http://threejs.org/examples/js/controls/OrbitControls.js'></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM