效果

源码
import { useEffect, useRef } from 'react'
import * as T from 'three'
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
import { CSS3DRenderer, CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer'
const Demo12 = () => {
let scene, camera, renderer, orbitControls, axes
useEffect(() => {
init()
}, [])
const ThreeContainer = useRef()
// 场景,作为容器,保存并跟踪所有渲染的物体
const initScene = () => {
scene = new T.Scene()
}
// 相机
const initCamera = () => {
// 透视相机,参数:视场,长宽比,近面,远面
camera = new T.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.1, 1000)
camera.position.z = 150
camera.lookAt(scene.position)
}
// 渲染器,计算指定相机角度下,浏览器中scene的样子
const initRenderer = ()