Three.js GPU中的变体目标是否强大?

时间:2019-05-29 18:13:46

标签: three.js gpu shader vertex-shader

我有成千上万的形状:

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中,变形目标是作为幕后着色器在后台实现的吗,还是如果我要为成千上万个对象执行此操作,我应该创建自己的顶点着色器吗?

1 个答案:

答案 0 :(得分:3)

  

我当时正在考虑使用morph目标,它们可以在gpu上运行吗?

是的,变形目标动画是一种在顶点着色器中实现的顶点位移形式。像MeshPhongMaterial这样的大多数内置材料都通过包含各自的着色器块来支持它。作为用户,您只需要将.morphTargets设置为true即可通知渲染器特定材质应使用变形目标。

three.js R104