THREE.js 中的 ParametricBufferGeometry

3
在布料模拟示例代码中,有一个名为ParametricBufferGeometry的函数需要3个参数。这个函数实际上是什么意思?
clothGeometry = new THREE.ParametricBufferGeometry(clothFunction, cloth.w, cloth.h);

在文档中,我找不到任何关于它的适当文档。它说:

ParametricBufferGeometry(func : Function, slices : Integer, stacks : Integer) func — 一个函数,该函数接受介于0和1之间的u和v值,并修改第三个Vector3参数 切片—用于参数化函数的切片计数 栈—用于参数化函数的堆栈计数

有人能解释一下它实际上是什么吗?

2个回答

2

有人能解释一下它实际上是什么吗?

文档说明func是一个参数化函数,其输入为在[0,1]范围内的两个值(u, v),并将结果输出到目标向量中。

这意味着您可以通过逐渐变化的参数调用该函数来生成整个几何表面。您调用函数的次数越多,采样率就越高,因此几何图形就越详细。 ParametricGeometry负责根据slicesstacks参数控制此过程。

如果您想了解更多关于这个主题的内容,我建议您谷歌搜索术语parametric surfaces。相关文献相当广泛。


1
clothFunction 只是 plane 的别名。因此,这个特定的参数曲线代表了一个平面几何。 - Mugen87
我正在使用Three.js的v0.133.1版本,似乎ParametricBufferGeometry已经被重命名或弃用了。当我访问https://threejs.org/docs/#api/en/geometries/ParametricGeometry时,会出现404错误。 - kimbaudi
3
ParametricGeometry 已从核心中移除,现在位于 examples/jsm/geometries/ParametricGeometry.js 中。 - Mugen87

0
你测试的是一个Observable笔记本地址 我也在研究它。经过一些测试,我在我的本地开发环境中解决了它,如下所示("three": "^0.142.0",):
async function _THREE(require) {
  // window variable called by modules in three/examples/js/
  const THREE = window.THREE = await 
  require("three@0.121.1/build/three.min.js");
  await require('three/examples/js/controls/OrbitControls.js')
  await require("three/examples/js/geometries/ParametricGeometry.js")
  return THREE;
}
// cloth geometry
clothGeometry = new THREE.ParametricGeometry(
  clothFunction,
  cloth.w,
  cloth.h
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接