首页 > 其他分享 >ThreeJs设置模型的边线

ThreeJs设置模型的边线

时间:2023-08-16 11:07:32浏览次数:34  
标签:ThreeJs const 渲染 模型 THREE scene 边线 var new

这节来讲给模型添加边框,之前做的模型都是不存在边框一说的,绘制一个模型,每个面和边的颜色都是一样的,因此也就看不到大概的轮廓,这节给立体模型添加一个边框线。用到了组件EdgesGeometry,这是一个专门个物体添加边框线的组件,比较简单,没有复杂的配置,这里就直接上代码了:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--引入three.js,这是使用three必须的js文件,此处引入的是外网提供的three文件,如果引入有问题可以到官网下载three文件后引入本地的theee.js文件-->
    <script src="http://www.yanhuangxueyuan.com/versions/threejsR92/build/three.js"></script>
</head>

<body>
<div id="container" style="width:100%;height:100%"></div>
<script>
    /**
     * 创建场景对象Scene
     */
    var scene = new THREE.Scene();

    /**
     * 相机设置
     */
    //窗口宽度
    var width = window.innerWidth;
    //窗口高度
    var height = window.innerHeight;
    //窗口宽高比
    var k = width / height;
    //三维场景显示范围控制系数,系数越大,显示的范围越大
    var s = 200;
    //创建相机对象
    var camera = new THREE.OrthographicCamera(-s * k, s * k, s, -s, 1, 1000);
    //设置相机位置
    camera.position.set(200, 300, 200);
    //设置相机方向(指向的场景对象)
    camera.lookAt(scene.position);

    /**
     * 光源设置
     */
        //新建点光源(常用光源分为点光源和环境光,点光源的效果类似灯泡,环境光的效果类似白天的太阳光)
    var point = new THREE.PointLight(0xffffff);
    //设置点光源的位置
    point.position.set(400, 200, 300);
    //将点光源添加到场景中
    scene.add(point);
	
	//创建一个带边框线的几何体
	const geometry = new THREE.BoxGeometry(50, 50, 50);
	const material = new THREE.MeshLambertMaterial({
		color: 0x004444,
		transparent:true,
		opacity:0.5,
	});
	const mesh = new THREE.Mesh(geometry, material);

	// 长方体作为EdgesGeometry参数创建一个新的几何体
	const edges = new THREE.EdgesGeometry(geometry);
	const edgesMaterial = new THREE.LineBasicMaterial({
	  color: 0x00ffff,
	})
	const line = new THREE.LineSegments(edges, edgesMaterial);
	mesh.add(line);
	scene.add(mesh)
	
    /**
     * 创建渲染器对象
     */
    //创建渲染器对象(渲染要等所有东西都加进去再渲染场景,创建和3D模型和光源没有先后顺序)
    var renderer = new THREE.WebGLRenderer();
    //设置渲染区域尺寸(设置的是整个屏幕的长度和宽度
    renderer.setSize(width, height);
    //设置渲染的背景色
    renderer.setClearColor(0xb9d3ff, 1);
    //body元素中插入canvas对象,也可以在页面中添加div,并加上id,通过id指定在某个div中渲染
    let container = document.getElementById("container")
	container.appendChild(renderer.domElement);
	
	//循环渲染
	function render() {
		//执行渲染操作   指定场景、相机作为参数
		renderer.render(scene, camera);
		// 使用 requestAnimationFrame 函数安排下一次渲染
		requestAnimationFrame(render);
		//修改正方体网格的x轴旋转角度
	}
	render()

</script>
</body>
</html>

效果图: 1692152930736.jpg 以上如有问题可以在评论区给我留言

标签:ThreeJs,const,渲染,模型,THREE,scene,边线,var,new
From: https://blog.51cto.com/u_11231522/7099720

相关文章

  • 三维模型OSGB格式轻量化纹理压缩关键技术分析
    三维模型OSGB格式轻量化纹理压缩关键技术分析  在三维模型应用中,纹理是一个十分重要的因素,可以使得模型更加真实、精细。随着移动设备和网络传输速度的限制,纹理数据也需要进行轻量化处理,而OSGB格式纹理压缩是一种常见且有效的技术方法。下面将详细介绍OSGB格式纹理压缩的关......
  • 三维模型OSGB格式轻量化顶点压缩主要技术方法分析
    三维模型OSGB格式轻量化顶点压缩主要技术方法分析在三维模型应用中,轻量化处理是提高数据传输效率、减少渲染时间和优化用户体验的重要手段。而OSGB格式是一种常见的三维模型格式,在进行轻量化处理时,顶点压缩是一种常用的技术方法。本文将分析OSGB格式顶点压缩的主要技术方法。1......
  • 阿里大模型之通义听悟使用体验
    通义听悟使用体验上传音频文件或者直接从阿里云盘选择文件实时记录模式:效果:测试的内容是一场圣经讲道的录音:内容总结内容导出支持情况整体效果还行;部分内容识别错误;可能所选内容分词不是太过常用,是宗教用语;总体效果还是可以的;体验地址:https://tingwu.aliyun.com/home欢迎关注......
  • 阿里大模型之通义听悟使用体验
    阿里大模型之通义听悟使用体验上传音频文件或者直接从阿里云盘选择文件实时记录模式:效果:测试的内容是一场圣经讲道的录音:发言总结内容导出支持情况整体效果还行;部分内容识别错误;可能所选内容分词不是太过常用,是宗教用语;总体效果还是可以的;体验地址:https://t......
  • chatglm2-6b模型在9n-triton中部署并集成至langchain实践
    一.前言近期,ChatGLM-6B的第二代版本ChatGLM2-6B已经正式发布,引入了如下新特性:①.基座模型升级,性能更强大,在中文C-Eval榜单中,以51.7分位列第6;②.支持8K-32k的上下文;③.推理性能提升了42%;④.对学术研究完全开放,允许申请商用授权。目前大多数部署方案采用的是fastapi+uvi......
  • ThingsKit物联网平台产品管理之物模型
    概述物模型是ThingsKit物联网平台为产品定义的数据模型,用于描述产品的功能。本文介绍物模型相关概念和使用限制。功能说明物模型是物理空间中的实体(如传感器、车载装置、楼宇、工厂等)在云端的数字化表示,从属性、服务和事件三个维度,分别描述了该实体是什么、能做什么、可以对外......
  • [LLM] 开源 AI 大语言模型的本地化定制实践
     LLM(LargeLanguageModel,大型语言模型)是一种基于深度学习的自然语言处理模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练,可以执行广泛的任务,包括文本总结、翻译、情感分析等等。LLM的特点是规模庞大,包含数十亿的参数,帮助它们学习语言数据中的复杂模式。 本文......
  • 2安全模型
    解决访问授权的问题分类基本模型  HRU机密性      访问控制   MAC强制     BLP(符合军事安全策略的计算机安全模型,机密性,可下读上写)                                 规......
  • ARIMA模型,ARIMAX模型预测冰淇淋消费时间序列数据|附代码数据
    全文下载链接:http://tecdat.cn/?p=22511最近我们被客户要求撰写关于ARIMAX的研究报告,包括一些图形和统计输出。标准的ARIMA(移动平均自回归模型)模型允许只根据预测变量的过去值进行预测。该模型假定一个变量的未来的值线性地取决于其过去的值,以及过去(随机)影响的值。ARIMAX模型......
  • R语言VAR模型的不同类型的脉冲响应分析|附代码数据
    原文链接:http://tecdat.cn/?p=9384原文出处:拓端数据部落公众号 最近我们被客户要求撰写关于VAR模型的研究报告,包括一些图形和统计输出。目录模型与数据估算值预测误差脉冲响应识别问题正交脉冲响应结构脉冲反应广义脉冲响应参考文献脉冲响应分析是采用向量自回归模......