Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要隐藏三盒原语的边_Javascript_Three.js_Textures_Edges - Fatal编程技术网

Javascript 我需要隐藏三盒原语的边

Javascript 我需要隐藏三盒原语的边,javascript,three.js,textures,edges,Javascript,Three.js,Textures,Edges,我需要使用ThreeJS隐藏框原语中显示的边。仅当我在面上放置纹理时才会绘制这些 我尝试了许多选项,如wireframe=false,但仍然绘制了边 代码如下: var container, stats; var camera, scene, renderer; var canvasWidth = 500; var canvasHeight = 500; var windowHalfX = 100;

我需要使用ThreeJS隐藏框原语中显示的边。仅当我在面上放置纹理时才会绘制这些

我尝试了许多选项,如wireframe=false,但仍然绘制了边

代码如下:

        var container, stats;
        var camera, scene, renderer;

        var canvasWidth = 500; 
        var canvasHeight = 500;
        var windowHalfX = 100;
        var windowHalfY = 100;

        container = document.createElement( 'div' );
        document.body.appendChild( container );

        // Camera
        camera = new THREE.OrthographicCamera( canvasWidth / - 2, canvasWidth / 2, canvasHeight / 2, canvasHeight / - 2, - 500, 5000 );

        // Scene
        scene = new THREE.Scene();

        camera.position.x = 200;
        camera.position.y = 200;
        camera.position.z = 200;

        camera.lookAt( scene.position );

        // Renderer
        renderer = new THREE.CanvasRenderer();
        renderer.setClearColor( "#fff" );
        renderer.setSize( canvasWidth, canvasHeight );

        container.appendChild( renderer.domElement );

        var size = 100;
        geometry = new THREE.BoxGeometry( size, size, size ); 

        material = new THREE.MeshBasicMaterial({ 
            color: "#0000ff", 
            side: THREE.DoubleSide,
            wireframe: false
        });

        // Comment this line to paint a single color cube
        material = new THREE.MeshLambertMaterial({ map: THREE.ImageUtils.loadTexture("http://upload.wikimedia.org/wikipedia/commons/8/81/Color_icon_black.png") });

        mesh = new THREE.Mesh( geometry, material );
        scene.add( mesh );

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

        draw();
以及一个指向示例的链接:


干杯

我已经解决了换这条线的问题

renderer = new THREE.CanvasRenderer();
另一个

renderer = new THREE.WebGLRenderer();
正如WestLangley在上面评论的那样,其他可能的解决方案是将这一行用于画布渲染器

material.overdraw = 0.5; // or some number between 0 and 1
使用renderer=new THREE.CanvasRenderer时; 要删除边,需要向材质定义中添加参数overdraw:true,如下所示:

var material = new THREE.MeshBasicMaterial( { map: texture, overdraw: true } );
然后可以使用“将材质添加到三维对象”:

mesh = new THREE.MeshBasicMaterial( geometry, material );

小提琴好像坏了?你能澄清一下我需要用ThreeJS删除方框原语中显示的顶点吗。仅当我在面上放置纹理时才会绘制这些。如果删除一个顶点,则很可能会删除长方体的一半。此外,最有可能的情况是,您必须删除indecis和其他属性。我打赌你还需要别的东西。我为这个错误感到非常抱歉。我的意思是删除或不绘制您在示例中看到的白色边缘;var material=new THREE.MeshBasicMaterial{overdraw:true};没有贴图:纹理