我有成千上万的形状:
var someShape = new THREE.Shape( somePts );
var extrudedGeometry = new THREE.ExtrudeGeometry(someShape, {depth: 1, bevelEnabled: false});
var extrudedMesh = new THREE.Mesh(extrudedGeometry, new THREE.MeshPhongMaterial({color: getRandomColor(), transparent: true}));
这些形状中的每一个将以相同数量的顶点变形为不同的形状。我当时在考虑使用morph目标,它们可以在gpu上运行吗?
在three.js中,变形目标是作为幕后着色器在后台实现的吗,还是如果我要为成千上万个对象执行此操作,我应该创建自己的顶点着色器吗?
答案 0 :(得分:3)
我当时正在考虑使用morph目标,它们可以在gpu上运行吗?
是的,变形目标动画是一种在顶点着色器中实现的顶点位移形式。像MeshPhongMaterial
这样的大多数内置材料都通过包含各自的着色器块来支持它。作为用户,您只需要将.morphTargets设置为true
即可通知渲染器特定材质应使用变形目标。
three.js R104