首页 > 其他分享 >Three.js教程:点、线、网格模型介绍

Three.js教程:点、线、网格模型介绍

时间:2023-05-24 17:56:12浏览次数:46  
标签:模型 网格 THREE Three var new 100 js

推荐:将NSDT场景编辑器加入你的3D工具链
其他系列工具:NSDT简石数字孪生

点、线、网格模型介绍

经过前面几章学习相信你对点模型Points、线模型Line、网格模型Mesh已经有了大致了解,本节课就对点、线、网格模型模型进行简单总结。

点模型Points、线模型Line、网格网格模型Mesh都是由几何体Geometry和材质Material构成,这三种模型的区别在于对几何体顶点数据的渲染方式不同,如果有一定WebGL基础,就更容易理解这一点了。

点模型Points

点模型Points就是几何体的每一个顶点数据渲染为一个方形区域,方形区域的大小可以设置。

webgl
var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry
// 点渲染模式
var material = new THREE.PointsMaterial({
  color: 0xff0000,
  size: 5.0 //点对象像素尺寸
}); //材质对象
var points = new THREE.Points(geometry, material); //点模型对象

线模型Line

两点确定一条直线,线模型Line就是使用线条去连接几何体的顶点数据。

 

线模型除了Line还有LineLoop和LineSegments,LineLoopLine区别是连线的时候会闭合把第一个顶点和最后一个顶点连接起来,LineSegments则是顶点不共享,第1、2点确定一条线,第3、4顶点确定一条直线,第2和3点之间不连接。

var geometry = new THREE.BoxGeometry(100, 100, 100); //创建一个立方体几何对象Geometry
// 线条渲染模式
var material=new THREE.LineBasicMaterial({
    color:0xff0000 //线条颜色
});//材质对象
// 创建线模型对象   构造函数:Line、LineLoop、LineSegments
var line=new THREE.Line(geometry,material);//线条模型对象

网格模型Mesh

三个顶点确定一个三角形,网格模型Mesh默认的情况下,通过三角形面绘制渲染几何体的所有顶点,通过一系列的三角形拼接出来一个曲面。

 

var geometry = new THREE.BoxGeometry(100, 100, 100);
// 三角形面渲染模式  
var material = new THREE.MeshLambertMaterial({
  color: 0x0000ff, //三角面颜色
}); //材质对象
var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh

如果设置网格模型的wireframe属性为true,所有三角形会以线条形式绘制出来。开发的时候可以通过设置wireframe属性来查看网格模型的三角形分布特点。

 

var material = new THREE.MeshLambertMaterial({
  color: 0x0000ff, //三角面颜色
  wireframe:true,//网格模型以线条的模式渲染
});
// 通过访问属性的形式设置
material.wireframe = true;
3D建模学习工作室    

上一篇:Three.js教程:材质共有属性、私有属性 (mvrlink.com)

下一篇:Three.js教程:模型对象旋转平移缩放变换 (mvrlink.com)

标签:模型,网格,THREE,Three,var,new,100,js
From: https://www.cnblogs.com/mvrlink/p/17429102.html

相关文章

  • Nest.js + TypeOrm
    TypeORM集成$npminstall--save@nestjs/typeormtypeormmysql2/pg安装过程完成后,我们可以将TypeOrmModule导入到根目录中AppModule。import{Module}from'@nestjs/common';import{TypeOrmModule}from'@nestjs/typeorm';@Module({imports:[TypeOr......
  • 【算法学习前置】了解JS中的数组
    介绍此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法、字符串方法、遍历方法、高阶函数、正则表达式以及相关数学知识。文章主要包含以下内容:数组常用方法字符串常用方法常用遍历方法&高阶函数常用正则表达式数学知识一、数组常用方法push()在尾部追加,类似......
  • 【算法学习前置】了解js中的字符串
    二、字符串常用方法chat()返回指定索引位置处的字符。类似于数组用中括号获取相应下标位置的数据。conststr='abcdef'console.log(str.chat(2))//'c'console.log(srt[2])//'c'concat()类似数组的concat(),用来返回一个合并拼接两个或两个以上字符串。原字符串不......
  • geojson格式数据
    可以通过一下地址验证https://geojson.io/#map=11.2/38.2756/116.7917一个面数据的情况,features是一个数组,geometry的type=Polygon表示一个面数据,可以存放多个面数据,以下就存放了一个面{"type":"FeatureCollection","features":[{"type":&quo......
  • js select下拉框选取默认学期
    termList.map(item=>{if(item.isOnTerm==1){termOpts+='<optionvalue="'+item.termId+'"selected>'+item.termName+'</option>';}else{......
  • 自定义注解实现数据序列化时进行数据脱敏(基于springboot默认jackjson)、消息转换器
    消息转换器fastjson与jackjson问题在springboot中使用fastjson的@jsonField无效原因:在springboot默认有json(jackjson)解析工具,所以使用fastjson不会生效解决方案替换默认的解析工具(笔者不推荐,这里根据自己项目决定)fastjson替换默认的jackjson第一种方法bean方法packagecom......
  • java将wkt面数据转geojson和elasticsearch的shape数据
    wkt面数据转geojsonimportcom.alibaba.fastjson.JSONException;importcom.alibaba.fastjson.JSONObject;importorg.locationtech.jts.geom.Coordinate;importorg.locationtech.jts.geom.Geometry;importorg.locationtech.jts.io.ParseException;importorg.location......
  • day104 - jsp语法
    jsp标签页面包含标签(类似vue组件)<%--jsp:include--%><jsp:includepage="jsptag2.jsp"></jsp:include> 请求转发标签其中param可以携带参数<%--请求转发标签--%>页面一:请求转发到页面二<jsp:forwardpage="/jsptag2.jsp"><jsp:paramna......
  • SpringBoot中操作Redis解析JsonArray数据为对象List(ruoyi字典值sys_dict为例)
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662在上面搭建系统的基础上,会将系统的字典值缓存进redis中。看数据格式存储的是Json数组,如何从redis中读取并解析成对象的list从而进行数据处理。注......
  • jsp实践
    equipmentList.jsp<%@pageimport="java.io.BufferedReader"%><%@pageimport="java.io.FileReader"%><%@pageimport="java.io.*"%><%@pagelanguage="java"contentType="text/html;charset=UTF-8......