ParametricBufferGeometry в THREE.js
В коде примера моделирования ткани есть нечто, называемое ParametricBufferGeometry, которое принимает 3 параметра. Что на самом деле означает эта функция?
clothGeometry = new THREE.ParametricBufferGeometry(clothFunction, cloth.w, cloth.h);
В документах я не нашел подходящей документации для него.
ParametricBufferGeometry (func: Функция, срезы: Integer, stacks: Integer) func - Функция, которая принимает значения au и v, каждое между 0 и 1, и изменяет третьи срезы аргумента Vector3 - Количество срезов, используемых для стеков параметрических функций - Количество стеков, используемых для параметрической функции
Может ли кто-нибудь объяснить мне, что это на самом деле..
2 ответа
Может ли кто-нибудь объяснить мне, что это на самом деле
В документации указано, что func
- параметрическая функция, которая принимает на входе два значения (u
, v
) в диапазоне [0,1]
и выводит результат в целевой вектор.
Идея состоит в том, что вы можете создать всю геометрическую поверхность, вызвав функцию с постепенно изменяющимися параметрами. Чем чаще вы вызываете функцию, тем выше частота дискретизации и, следовательно, более детализированная геометрия.ParametricGeometry
несет ответственность за управление этим процессом в соответствии с slices
а также stacks
параметры.
Я предлагаю вам погуглить термин parametric surfaces
если вы хотите узнать больше по этой теме. Соответствующая литература довольно обширна.
То, что вы тестировали, является адресом блокнота 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
);