threejs基本函数

点击查看代码
// 目标:初始化 three.js 基础环境
import * as THREE from 'three'
import { OrbitControls } from 'three/addons/controls/OrbitControls.js'
import { CSS3DRenderer } from 'three/addons/renderers/CSS3DRenderer.js'
export let scene, camera, renderer, controls, css3dRenderer;

// 初始化场景,摄像机,渲染器,,,
(function init () {
  scene = new THREE.Scene()
  camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
  camera.position.z = 0.1
  renderer = new THREE.WebGLRenderer({ antialias: true })
  renderer.setSize(window.innerWidth, window.innerHeight)
  document.body.appendChild(renderer.domElement)
})()

  // 轨道控制器
  (function controlsCreate () {
    controls = new OrbitControls(camera, renderer.domElement)
    controls.enableDamping = true
    controls.minPolarAngle = 0.25 * Math.PI
    controls.enableZoom = false
  })()

  // 坐标轴
  (function createAxesHelper () {
    const axesHelper = new THREE.AxesHelper(5)
    scene.add(axesHelper)
  })()

  // 场景适配
  (function reseizeWin () {
    window.addEventListener('resize', () => {
      renderer.setSize(window.innerWidth, window.innerHeight)
      camera.aspect = window.innerWidth / window.innerHeight
      camera.updateProjectionMatrix()
    })
  })()
  // 渲染循环
  (function rendloop () {
    renderer.render(scene, camera)
    requestAnimationFrame(rendloop)
    controls.update()
  })()
  // 创建CSS3DRenderer
  (function create3dRenderer () {
    css3dRenderer = new CSS3DRenderer()
    css3dRenderer.setSize(window.innerWidth, window.innerHeight)
    css3dRenderer.domElement.style.position = 'fixed'
    css3dRenderer.domElement.style.left = '0'
    css3dRenderer.domElement.style.top = '0'
    css3dRenderer.domElement.style.pointerEvents = 'none'
    document.body.appendChild(css3dRenderer.domElement)
  })()

posted @   jialiangzai  阅读(36)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示