首页 > 其他分享 >场景初始化

场景初始化

时间:2024-09-23 09:02:21浏览次数:8  
标签:初始化 场景 const domElement css2drender Three css3drender new

获取初始化的元素

//常规
const targetdom	=	document.getElementById('targetdom')  
//vue3
const targetdom	 =	ref('targetdom') 
//react 
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;//设置sortobject 结局mesh不透明

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)

标签:初始化,场景,const,domElement,css2drender,Three,css3drender,new
From: https://www.cnblogs.com/rongzhu-blog/p/18426284

相关文章

  • 二叉搜索树(BSTree)原理及应用场景
    目录引言二叉搜索树的基本概念常见算法插入节点查找节点删除节点二叉搜索树的应用场景1.数据库索引2.符号表3.字典和词汇表4.动态集合结论引言二叉搜索树(BinarySearchTree,BST)是一种特殊的二叉树,其每个节点的值都大于其左子树中的所有节点的值,同时小于......
  • 【解决方案】Java 互联网项目中常见的 Redis 缓存应用场景
    目录前言一、常见key-value二、时效性强三、计数器相关四、高实时性五、排行榜系列六、文章小结前言在笔者3年的Java一线开发经历中,尤其是一些移动端、用户量大的互联网项目,经常会使用到Redis作为缓存中间件的基本工具来解决一些特定的问题。下面是笔者总结梳理的一些常......
  • C++ 列表初始化 {}
    花括号的形式{},进行列表初始化,在C++11中初始化变量到了全面的应用。可参看《C++Primer》P39P76P88等相关内容信息。Note:当我们提供一个类内初始值时,必须以符号=或者花括号表示。《C++Primer》P246。如下:classDog{public:Dog(intage):m_age(age){}......
  • Ubuntu24.04安装及初始化配置
    一、系统简介Ubuntu基于debian以桌面应用为主的开源操作系统,长期支持版本LTS通常每两年发布一次,如最新的版本24.04,上一个版本22.04,每个版本有5年支持周期,适合企业生产服务器使用,另外对容器支持较好,很多docker基础镜像采用utuntu。国产替代操作系统基于debian的有银河麒麟V10、统信U......
  • Spring Boot利用dag加速Spring beans初始化
    1.什么是Dag?有向无环图(DirectedAcyclicGraph),简称DAG,是一种有向图,其中没有从节点出发经过若干条边后再回到该节点的路径。换句话说,DAG中不存在环路。这种数据结构常用于表示并解决具有依赖关系的问题。DAG的特性首先,DAG中的节点可以有入度和出度。节点的入度是指指向该......
  • Android轻量级RTSP服务使用场景分析和设计探讨
    技术背景好多开发者,对我们Android平台轻量级RTSP服务模块有些陌生,不知道这个模块具体适用于怎样的场景,有什么优缺点,实际上,我们的Android平台轻量级RTSP服务模块更适用于内网环境下、对并发要求不高的场景,实现低成本、低延迟的音视频实时传输。本文就上述问题,做个技术探讨,先说......
  • k8s集群,master节点的初始化所用到的,init文件的分析,master节点的核心组件的作用,node节
    标准的k8s集群有三个组成部分管理控制节点、计算节点、私有镜像仓库。管理控制节点的功能:提供集群的控制对集群进行全局决策检测和响应集群事件管理控制节点中有四大核心服务服务端口含义用途APIServer6443api接口负责接收请求,实现功能Scheduler......
  • 【多线程面试题】涵盖三个常见的场景
    1.多线程轮流打印数字最简单的代码题,使用两种加锁方式,sychronized和ReentranLocksychronizedpublicclassMain{privatestaticfinalObjectlock=newObject();privatestaticintnum=100;privatestaticintcnt=0;publicstaticvoidm......
  • 【小沐学GIS】基于Openstreetmap创建Sionna RT场景(Python)
    文章目录1、简介1.1blender2、下载和安装2.1Python2.2jupyter3、运行结语1、简介1.1blenderhttps://www.blender.org/Blender是一款免费开源的3D创作套件。使用Blender,您可以创建3D可视化效果,例如静态图像、3D动画、VFX(视觉特效)快照和视频编辑。它非常适......
  • 面向真实监控场景的多模态视频理解
    面向真实监控场景的多模态视频理解https://mp.weixin.qq.com/s/3iPeKtqVEKvWpOb_pqEOXA3. 多模态异常检测 在监控视频领域,常用到多模态异常检测这一技术。传统的异常检测主要关注视频画面的大规模变化或异常行为,如打架或车祸等。随着技术进步,特别是GPT的发展,现在可以在异......