Я хочу выдавить shape
вдоль extrudePath
, используя THREE.ExtrudeBufferGeometry()
.
В принципе, это работает нормально, но первоначальная ориентация формы является произвольной, поскольку FrenetFrames отвечает в .вопрос .
ExtrudePath лежит на одной плоскости, поэтому никогда не возникнет проблем с закрытием выдавливания из-за "неправильной" ориентации.
var myExtrudePath = new THREE.CatmullRomCurve3( <some THREE.Vector3() vectors> );
var shape = new THREE.Shape();
shape.lineTo( ... );
...
var extrudeSettings = { extrudePath: myExtrudePath };
var geometry = new THREE.ExtrudeBufferGeometry( shape, extrudeSettings );
Есть ли способ установитьначальная ориентация формы вручную?
РЕДАКТИРОВАТЬ 1
Я бы хотел избежать редактирования файла three.js.Я нашел кое-что здесь .Возможно ли (по-прежнему) задавать векторы нормалей или кадры в качестве опций для ExtrudeBufferGeometry ()?
Я представляю что-то вроде:
var phi = Math.PI / 2;
var normal = new THREE.Vector3( Math.sin(phi), Math.cos(phi), 0);
var binormal = new THREE.Vector3( Math.cos(phi), Math.sin(phi), 0);
var frames = { normals: [normal, normal], binormals: [binormal, binormal] };
var extrudeSettings = {
steps: 100,
extrudePath: path,
frames: frames
}
var geometry = new THREE.ExtrudeBufferGeometry( shape, extrudeSettings );
Пока это не работает.Я получаю сообщение об ошибке:prototype.addShapeList
ExtrudeBufferGeometry