【发布时间】:2019-03-14 17:56:34
【问题描述】:
我正在尝试制作自定义网格,以便在场景中有很多可自定义的平面。
这里有一些代码:
geometry = new THREE.BufferGeometry();
geometry.addAttribute( 'position', new THREE.BufferAttribute( vertexPositions, 3 ).setDynamic( true ) );
geometry.addAttribute( 'color', new THREE.BufferAttribute( colors, 3 ).setDynamic( true ) );
geometry.addAttribute( 'opacity', new THREE.BufferAttribute( opacity, 1 ).setDynamic( true ) );
// Initialize material
var material = new THREE.ShaderMaterial( { vertexColors: THREE.VertexColors, transparent: true, vertexShader: vertexShader, fragmentShader: fragmentShader } );
// Create something like a Wireframe of the planes
var Pgeometry = new THREE.BufferGeometry();
Pgeometry.addAttribute( 'position', new THREE.BufferAttribute( new Float32Array( ApointsPositions ), 3 ).setDynamic( true ) );
var points = new THREE.LineSegments( Pgeometry, new THREE.PointsMaterial( { color: 0x353535 } ) );
scene.add( points );
// Create planes and add to scene
planeMeshes = new THREE.Mesh( geometry, material );
planeMeshes.setDrawMode( THREE.TriangleStripDrawMode );
scene.add( planeMeshes );
我的自定义材质运行良好,让我可以在每个顶点上使用不透明度。每架飞机都已创建,一切正常。
问题是,当我渲染场景时,每个平面行上都有一些奇怪的线条,这是一个完整的工作 Codepen:Codepen link
你看到那里的那些对角线了吗?你能告诉我发生了什么吗?我没有找到它们的来源。
提前谢谢你!
【问题讨论】:
-
我确实看到了一个直网格,以及由
planeMeshes创建的附加灰色对角线。期望的行为是什么? -
我不想要那些长对角线。你确定它们来自planeMeshes吗?编辑:planeMeshes 应该只是平方平面。它们是很多三角形对。
-
当我注释掉
scene.add( planeMeshes );时,它们就消失了。 -
哦,是的,我知道 :D 我的意思是,在帖子中我问它为什么这样做。
标签: javascript three.js 3d rendering mesh