3D bending 3D.js

Is it still available in r69? In the process of rolling my own, but before moving forward, I want to make sure that I have not missed any important documentation or useful libraries ...

+4
source share
2 answers

Try to do this example . View messages in the console.

<script src="js/modifiers/BendModifier.js"></script>
var text = "THREE.BendModifier";
var textGeometry = new THREE.TextGeometry(text, {
    size: 128,
    height: 50,
    curveSegments: 4,
    font: "gentilis",
    weight: "bold",
    style: "normal",
    bevelEnabled: true,
    bevelThickness: 2,
    bevelSize: 1,
});


var textMaterial = new THREE.MeshPhongMaterial({
    color: 0x62254a
});
var text3D = new THREE.Mesh(textGeometry, textMaterial);

var direction = new THREE.Vector3(0, 0, -1);
var axis = new THREE.Vector3(0, 1, 0);
var angle = Math.PI / 6;

var modifier = new THREE.BendModifier();
modifier.set(direction, axis, angle).modify( text3D.geometry );

textGeometry.computeBoundingBox();
var textWidth = textGeometry.boundingBox.max.x - textGeometry.boundingBox.min.x;
text3D.position.set(-0.5 * textWidth, 500, 0);
scene.add(text3D);
+10
source

Just wanted to mention that you need to modify BendModifier.js to match here fooobar.com/questions/1569504 / ... so that it works with newer versions of three.js

BendModifier.js THREE.Matrix3.getInverse(), . BendModifier.js, THREE.Matrix4.getInverse(..) , .

- THREE.fontLoader()

- -

:

THREE.js , BendModifier.js script.

var InverseP = new THREE.Matrix3().getInverse( P );

newVertices[i] = new THREE.Vector3(); newVertices[i].copy( geometry.vertices[i] ).applyMatrix3( InverseP );

Matrix4 - :

var InverseP = new THREE.Matrix4().getInverse( P );

newVertices[i] = new THREE.Vector3(); newVertices[i].copy( geometry.vertices[i] ).applyMatrix4( InverseP );

three.min.81.js, .

+3

Source: https://habr.com/ru/post/1569503/


All Articles