[英]Threejs Simplified Geometry has no color
我正在尝试 Threejs ( https://threejs.org/examples/js/modifiers/SimplifyModifier.js ) 的 SimplifyModifier 并且它工作正常,但输出几何在某些方面有所不同,以防止它具有颜色。 这是一个显示问题的小提琴:
https://jsfiddle.net/k29px10r/
var camera, scene, renderer, geometry, material, mesh;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 7;
scene.add(camera);
geometry = new THREE.RabbitGeometry();
modifer = new THREE.SimplifyModifier();
//bigger number for second arg is more aggressive
simplified = modifer.modify(geometry, geometry.vertices.length * 0.5 | 0);
material = new THREE.MeshNormalMaterial();
mesh = new THREE.Mesh(geometry, material);
scene.add(mesh);
mesh.translateX( 1 );
mesh2 = new THREE.Mesh(simplified, material);
scene.add(mesh2);
mesh2.translateX( -1 );
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
render();
}
function render() {
mesh.rotation.x += 0.005;
mesh.rotation.y += 0.01;
mesh2.rotation.x += 0.005;
mesh2.rotation.y += 0.01;
renderer.render(scene, camera);
}
(在 Windows 上的 Chrome 和 FF 中测试,以防万一)
有什么问题 - 为什么简化的几何图形只有灰色,我该如何解决?
THREE.SimplifyModifier()
不会自动计算面法线。 所以你可以在应用修饰符后做到这一点:
simplified = modifer.modify(geometry, geometry.vertices.length * 0.5 | 0);
simplified.computeFaceNormals();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.