获取初始化的元素
const targetdom = document.getElementById('targetdom')
const targetdom = ref('targetdom')
const targetdom = ref('targetdom')
初始化相机、场景、光源、render
const camera = new Three.PerspectiveCamera(
50,
dom.clientWidth / dom.clientHeight,
0.01,
1000)
const scene = new Three.Scene()
const camera = new Three.PerspectiveCamera(
50,
dom.clientWidth / dom.clientHeight,
0.01,
1000)
const white = new Three.Color('white')
const light = new Three.AmbientLight(white, 10)
const hemisphereLight = new Three.HemisphereLight(
'white',
'darkslategrey',
8,
);
const directionalLight = new Three.DirectionalLight('white', 10)
const renderer = new Three.WebGLRenderer(options)
renderer.outputEncoding = Three.sRGBEncoding;
renderer.sortObjects = true;
scene.position.set(-6, 3, 1)
camera.position.set(11.304493812891662, 7.9402369729813636, 11.571010202778185)
camera.rotation.set(
Three.MathUtils.degToRad(-0.406464440721367),
Three.MathUtils.degToRad(0.38309200850090414),
Three.MathUtils.degToRad(0.2044538642079754)
)
camera.lookAt(0, 0, 0);
renderer.setSize(dom.clientWidth, dom.clientHeight, true)
初始化轨道控制器
const orbitcontrols = new OrbitControls(this.camera, css3drender.domElement)
初始化css2drender,css3drender
const css2drender = new CSS2DRenderer()
const css2drenderHeight = dom.clientHeight
const css2drenderWidth = dom.clientWidth
css2drender.setSize(css2drenderWidth, css2drenderHeight)
css2drender.domElement.style.position = 'absolute'
css2drender.domElement.style.top = '0px'
css2drender.domElement.style.zIndex = 1
css2drender.domElement.style.height = css2drenderHeight
css2drender.domElement.style.width = css2drenderWidth
document.getElementById('container').appendChild(css2drender.domElement)
this.css2drender = css2drender
const css3drender = new CSS3DRenderer()
const css3drenderHeight = dom.clientHeight
const css3drenderWidth = dom.clientWidth
css3drender.setSize(css3drenderWidth, css3drenderHeight)
css3drender.domElement.style.position = 'absolute'
css3drender.domElement.style.top = '0px'
css3drender.domElement.style.zIndex = 2
css3drender.domElement.style.height = css3drenderHeight
css3drender.domElement.style.width = css3drenderWidth
document.getElementById('container').appendChild(css3drender.domElement)
this.css3drender = css3drender
渲染场景
this.scene.add(light)
this.scen.add(camera)
this.renderer.render(this.scene, this.camera)
将当前元素加入到目标元素中去
dom.appendChild(renderer.domElement)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端