специальная геометрия Threejs (1: объект текстовой геометрии)

Геометрия китайского текста Threejs генерируется с помощью newTextGeometry(), который существует как отдельный класс в Threejs const txtGeo = new TextGeometry("threejs", { ...opts, Font: Font });

Давайте сначала посмотрим на эффект:

 

<template>
    <div>
    </div>
</template>
<script  setup>
import { ref } from "vue";
import * as THREE from "three";
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
import { TextGeometry } from "three/examples/jsm/geometries/TextGeometry";
import { FontLoader } from "three/examples/jsm/loaders/FontLoader";
const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(
  75,
  window.innerWidth / window.innerHeight,
  0.1,
  1000
);
// const font = new THREE.Font("Arial");
camera.position.set(0, 0, 10);

let opts = {
  size: 3,
  height: 5,
  //   fontWeight: "bold",
  bevelSize: 3,
  bevelEnabled: false,
  steps: 7,
  font: "",
  bevelThickness: 1
};

const ftloader = new FontLoader();
ftloader.load("/src/assets/fonts/helvetiker_regular.typeface.json", font => {
  const txtGeo = new TextGeometry("sean", { ...opts, font: font });
  const mesh = new THREE.Mesh(
    txtGeo,
    new THREE.MeshBasicMaterial({ color: "#e6c" })
  );
  scene.add(mesh);
});

const renderder = new THREE.WebGLRenderer();
renderder.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderder.domElement);
renderder.setClearColor("#eee");
const control = new OrbitControls(camera, renderder.domElement);
const render = () => {
  requestAnimationFrame(render);
  renderder.render(scene, camera);
};
render();
</script>
<style scoped>
/* body {
  font-family: Arial, Helvetica, sans-serif;
} */
</style>

Что здесь требует особого внимания:

Примечание: 1. Необходимо ввести шрифт геометрии текста. Вы можете использовать шрифты по умолчанию из трех библиотек. Шрифт находится в папке Three/example/fonts/. Шрифт по умолчанию использует формат файла json
2. При добавлении средств в TextGeometry параметр шрифта является не обычным объектом шрифта, а объектом шрифта в Three. То есть шрифт — это новый FontLoader(). загрузить загруженный объект шрифта

おすすめ

転載: blog.csdn.net/baidu_41601048/article/details/132507766
おすすめ