代码之家  ›  专栏  ›  技术社区  ›  Manoj A

在threejs中,setClearColor的值为白色,但在调用外部html文件时,它呈现为黑色?

  •  0
  • Manoj A  · 技术社区  · 7 年前

    三个人。js,setClearColor的值为白色,但在调用外部html文件时呈现黑色:

    enter image description here

    外部文件代码:

    <div id="3d-modal"></div>
    <script src="juicer/js/three.js"></script>
    

    3D模式脚本:

    <script>
     var scene = new THREE.Scene();
     var camera = new THREE.PerspectiveCamera(75, 
     window.innerWidth/window.innerHeight, 0.1, 1000);
     var renderer = new THREE.WebGLRenderer({antialias : true});
    
     // renderer.setSize(window.innerWidth, window.innerHeight);
    
     renderer.setClearColor(0xffffff);
     renderer.shadowMap.enabled = true;
     renderer.shadowMap.type = THREE.PCFSoftShadowMap;
    
     // Appending Webgl to the "container" Div...
     // document.body.appendChild( renderer.domElement );
    
     var container = document.getElementById("3d-modal");
     var canvas_width = 290;
     var canvas_height = 165;
     var renderer = new THREE.WebGLRenderer();
     renderer.setSize(canvas_width , canvas_height);
     container.appendChild(renderer.domElement);
    
     var animate = function () {
     requestAnimationFrame( animate );
     renderer.render(scene, camera);
     };
     animate();
    </script> 
    

    我如何解决这个问题?

    1 回复  |  直到 7 年前
        1
  •  7
  •   J dog Darshit Hedpara    6 年前

    当我开始使用三个时,我遇到了这个问题。js也是。这实际上是一个javascript问题:

    使现代化 :感谢HdN8提供的更新解决方案:

    renderer.setClearColor( 0xffffff, 0);
    

    ( 笔记 :语法=>setClearColor(颜色,alpha))

    更新#2 :正如WestLangley在 another similar question -现在,在创建新的WebGLRenderer实例时,必须使用以下代码 setClearColor() 功能:

    var renderer = new THREE.WebGLRenderer({ alpha: true });
    

    更新#3 : doob先生 指出自 r78 您也可以使用以下代码设置场景的背景颜色:

    var scene = new THREE.Scene(); // initialising the scene
    scene.background = new THREE.Color( 0xff0000 );
    

    更新#4:G Dog 如果背景色不变,请尝试将alpha从0更改为1。