Three.js:使用变形目标获取更新的顶点
Three.js: Get updated vertices with morph targets
我有一些变形目标在工作:
https://jsfiddle.net/3wtwzuh3/2/(使用滑块控件查看变形)
但是,我希望能够在变形后访问顶点的新位置。如果你在链接的例子中注意到,我显示的是立方体第一个顶点的y坐标,它没有更新!
// This Y vertex doesn't seem to update!
elInfo.innerHTML = geometry.vertices[0].y;
有可能得到新职位吗?我试过设置各种各样的标志,但没有成功。
谢谢!
请注意,这个例子只是为了解决这个问题,它在我的实际项目中有点复杂(我需要顶点数据!)
变形是在GPU上更新的,而不是在CPU上。因此,如果你想知道新的顶点位置,你必须在CPU上进行与GPU相同的计算。
方法Mesh.raycast()
必须在CPU上进行光线投射的计算,因此可以参考该代码作为示例。
这里有一个简单的模式,您可以遵循。您必须针对您的整个应用程序进行调整,因为这种模式是硬连接的,以匹配您的简单小提琴。
var morphTargets = mesh.geometry.morphTargets;
var morphInfluences = mesh.morphTargetInfluences;
var vA = new THREE.Vector3();
var tempA = new THREE.Vector3();
var fvA = geometry.vertices[ 0 ]; // the vertex to transform
for ( var t = 0, tl = morphTargets.length; t < tl; t ++ ) {
var influence = morphInfluences[ t ];
if ( influence === 0 ) continue;
var targets = morphTargets[ t ].vertices;
vA.addScaledVector( tempA.subVectors( targets[ 0 ], fvA ), influence ); // targets index must match vertex index
}
vA.add( fvA ); // the transformed value
小提琴:https://jsfiddle.net/3wtwzuh3/3/
three.js r.75
相关文章:
- 输入字段将't获取更新的值
- 更新Redux状态&然后在同一实例中获取更新状态
- 在谷歌地图 API v3 中获取更新的半径/面积
- Three.js:使用变形目标获取更新的顶点
- 从函数jquery获取更新的变量值
- Servlet无法从XML获取更新的值
- 在节点脚本中,如何监视文件的更改并获取更新的内容
- 在每个请求 nodejs 中获取更新的文件
- 如何在 mongodb 中获取更新查询写入结果
- 在MongoDB中获取“更新前”文档
- 获取更新的 iFrame 的标题
- 如何在 ajax 之后在选择框中获取更新的选项属性
- 如何从findOneAndUpdate方法获取更新的文档
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 单击时从数据属性获取更新的值
- 获取更新面板原因在页面加载事件中回发
- 在jQuery Sort之后获取更新的顺序
- 使用jQuery获取更新的文本区域内容
- jQuery获取更新的select输入的值
- 单击后如何获取更新内容