首页 > 其他分享 >23. 几何体顶点位置数据和点模型

23. 几何体顶点位置数据和点模型

时间:2024-09-15 11:23:45浏览次数:11  
标签:23 geometry 模型 几何体 坐标 new 顶点

本节课主要目的是给大家讲解几何体geometry的顶点概念,相对偏底层一些,不过掌握以后,你更容易深入理解Threejs的几何体和模型对象。

缓冲类型几何体BufferGeometry

threejs的长方体BoxGeometry、球体SphereGeometry等几何体都是基于BufferGeometry (opens new window)类构建的,BufferGeometry是一个没有任何形状的空几何体,你可以通过BufferGeometry自定义任何几何形状,具体一点说就是定义顶点数据

//创建一个空的几何体对象
const geometry = new THREE.BufferGeometry(); 

BufferAttribute定义几何体顶点数据

通过javascript类型化数组 (opens new window)Float32Array创建一组xyz坐标数据用来表示几何体的顶点坐标。

//类型化数组创建顶点数据
const vertices = new Float32Array([
    0, 0, 0, //顶点1坐标
    50, 0, 0, //顶点2坐标
    0, 100, 0, //顶点3坐标
    0, 0, 10, //顶点4坐标
    0, 0, 100, //顶点5坐标
    50, 0, 10, //顶点6坐标
]);

通过threejs的属性缓冲区对象BufferAttribute (opens new window)表示threejs几何体顶点数据。

// 创建属性缓冲区对象
//3个为一组,表示一个顶点的xyz坐标
const attribue = new THREE.BufferAttribute(vertices, 3); 

设置几何体顶点.attributes.position

通过geometry.attributes.position设置几何体顶点位置属性的值BufferAttribute

// 设置几何体attributes属性的位置属性
geometry.attributes.position = attribue;

点模型Points

点模型Points (opens new window)和网格模型Mesh一样,都是threejs的一种模型对象,只是大部分情况下都是用Mesh表示物体。

网格模型Mesh有自己对应的网格材质,同样点模型Points有自己对应的点材质PointsMaterial(opens new window)

// 点渲染模式
const material = new THREE.PointsMaterial({
    color: 0xffff00,
    size: 10.0 //点对象像素尺寸
}); 

几何体geometry作为点模型Points参数,会把几何体渲染为点,把几何体作为Mesh的参数会把几何体渲染为面。

const points = new THREE.Points(geometry, material); //点模型对象

标签:23,geometry,模型,几何体,坐标,new,顶点
From: https://blog.csdn.net/Miller777_/article/details/142281854

相关文章

  • 2023年全国高中数学联合竞赛A卷加试P3:组合极值、染色
    题目求具有下述性质的最小正整数$k$:若将$1,2,\cdots,k$中的每个数任意染为红色或者蓝色,则或者存在$9$个不同的红色的数$x_1,x_2,\cdots,x_9$满足$x_1+x_2+\cdots+x_8<x_9,$或者存在$10$个互不相同的蓝色的数$y_1,y_2,\cdots,y_{10}$满足$y_1+y_2+\cdots+y_9<y_{10}.$解......
  • 基于django+vue电脑DIY微信小程序演示录像22023【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着科技的飞速发展,个人电脑(PC)已成为人们日常生活与工作中不可或缺的一部分。然而,在市场上琳琅满目的电脑配件和复杂多变的配置选项中,许多......
  • 信息学奥赛初赛天天练-89-CSP-S2023基础题1-linux常用命令、完全平方数、稀疏图、队列
    PDF文档公众号回复关键字:202409142023CSP-S选择题单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)1在Linux系统终端中,以下哪个命令用于创建一个新的目录?()AnewdirBmkdirCcreateDmkfold2从0,1,2,3,4中选取4个数字,能组成(......
  • LeetCode238. 除自身以外数组的乘积(2024秋季每日一题 17)
    给你一个整数数组nums,返回数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据保证数组nums之中任意元素的全部前缀元素和后缀的乘积都在32位整数范围内。请不要使用除法,且在示例1:输入:nums=[1,2,3,4]输出:[24,12,8,6]示例2:输......
  • LeetCode239. 滑动窗口最大值(2024秋季每日一题 13)
    给你一个整数数组nums,有一个大小为k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的k个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例1:输入:nums=[1,3,-1,-3,5,3,6,7],k=3输出:[3,3,5,5,6,7]解释:示例2:输入:nums=[1],k......
  • LeetCode 2390. 从字符串中移除星号(字符串、栈)
    题目:2390.从字符串中移除星号思路:使用栈就可以,这里string也可以实现栈的效果classSolution{public:stringremoveStars(strings){stringe="";for(autox:s){if(x=='*')e.pop_back();elsee.push_back(x);......
  • 代码随想录算法训练营,9月14日 | 530.二叉搜索树的最小绝对差,501.二叉搜索树中的众数,23
    530.二叉搜索树的最小绝对差题目链接:530.二叉搜索树的最小绝对差文档讲解︰代码随想录(programmercarl.com)视频讲解︰二叉搜索树的最小绝对差日期:2024-09-14想法:好好利用二叉搜索树中序遍历是有序的性质,设置一个节点表示前一个结点就能很方便的计算差值了Java代码如下:classSo......
  • springboot+vue在线考试系统的设计与演示录像220239【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,教育领域正经历着前所未有的变革。传统的考试方式,如纸质试卷考试,不仅效率低下、成本高昂,而且在组织、阅卷及反馈等环节上存在诸多不便。尤其是在大规模考试或远程教育中,这些问题尤为突出。因此,开发一种高效、......
  • 2390. 从字符串中移除星号
    给你一个包含若干星号*的字符串s。在一步操作中,你可以:选中s中的一个星号。移除星号左侧最近的那个非星号字符,并移除该星号自身。返回移除所有星号之后的字符串。注意:生成的输入保证总是可以执行题面中描述的操作。可以证明结果字符串是唯一的。示例1:输入:s=......
  • 2398. 预算内的最多机器人数目
    你有n个机器人,给你两个下标从0开始的整数数组chargeTimes和runningCosts,两者长度都为n。第i个机器人充电时间为chargeTimes[i]单位时间,花费runningCosts[i]单位时间运行。再给你一个整数budget。运行k个机器人总开销是max(chargeTimes)+k*sum(running......