Javascript 我需要隐藏三盒原语的边
我需要使用ThreeJS隐藏框原语中显示的边。仅当我在面上放置纹理时才会绘制这些 我尝试了许多选项,如wireframe=false,但仍然绘制了边 代码如下: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;
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};没有贴图:纹理