43. Three.js案例-绘制100个立方体

news2024/12/26 17:40:42

43. Three.js案例-绘制100个立方体

实现效果

效果

知识点

WebGLRenderer(WebGL渲染器)

WebGLRenderer是Three.js中最常用的渲染器之一,用于将3D场景渲染到网页上。

构造器

WebGLRenderer(parameters : Object)

参数类型描述
parametersObject渲染器参数对象

常用参数:

  • antialias:是否开启抗锯齿,默认为false
  • alpha:是否透明,默认为false
  • premultipliedAlpha:是否使用预乘Alpha值,默认为true
  • preserveDrawingBuffer:是否保存绘图缓冲区,默认为false
  • stencil:是否使用模板缓冲区,默认为true
  • depth:是否使用深度缓冲区,默认为true
  • logarithmicDepthBuffer:是否使用对数深度缓冲区,默认为false
  • failIfMajorPerformanceCaveat:如果性能较差则失败,默认为false
  • powerPreference:GPU性能偏好,默认为"default"
方法
  • setSize(width, height, updateStyle):设置渲染器输出的分辨率(以像素为单位)。
  • setClearColor(color, alpha):设置清除颜色和透明度。

PerspectiveCamera(透视相机)

PerspectiveCamera是Three.js中的一种相机类型,模拟人眼透视效果。

构造器

PerspectiveCamera(fov, aspect, near, far)

参数类型描述
fovNumber视野角度(以度为单位)
aspectNumber宽高比
nearNumber近裁剪面
farNumber远裁剪面
属性
  • position:相机的位置。
  • rotation:相机的旋转角度。
  • lookAt(vector):使相机看向指定位置。

Scene(场景)

Scene是Three.js中的一个容器,用于容纳所有要渲染的对象、灯光等。

构造器

new Scene()

BoxGeometry(立方体几何体)

BoxGeometry用于创建立方体或长方体。

构造器

BoxGeometry(width, height, depth, widthSegments, heightSegments, depthSegments)

参数类型描述
widthNumber宽度
heightNumber高度
depthNumber深度
widthSegmentsNumber宽度分段数
heightSegmentsNumber高度分段数
depthSegmentsNumber深度分段数

MeshDepthMaterial(深度材质)

MeshDepthMaterial是一种材质,它根据物体与相机的距离来着色。

构造器

MeshDepthMaterial(parameters)

参数类型描述
parametersObject材质参数对象

常用参数:

  • wireframe:是否使用线框模式,默认为false
  • wireframeLinewidth:线框宽度,默认为1

Mesh(网格)

Mesh是Three.js中表示几何体和材质组合的对象。

构造器

Mesh(geometry, material)

参数类型描述
geometryGeometry几何体
materialMaterial材质

Group(组)

Group是一个可以包含其他对象的空对象,类似于场景中的文件夹。

构造器

new Group()

代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <script src="ThreeJS/three.js"></script>
    <script src="ThreeJS/jquery.js"></script>
</head>
<body>
<center id="myContainer"></center>
<script type="text/javascript">
    // 创建渲染器
    var myRenderer = new THREE.WebGLRenderer({antialias: true});
    myRenderer.setSize(window.innerWidth, window.innerHeight);
    myRenderer.setClearColor('black', 1.0);
    $('#myContainer')[0].appendChild(myRenderer.domElement);

    // 创建相机
    var myCamera = new THREE.PerspectiveCamera(45,
        window.innerWidth / window.innerHeight, 30, 1000);
    myCamera.position.set(-40.91020281125894,
        12.522960007309857, 22.79661391601931);
    myCamera.lookAt(new THREE.Vector3(0, 0, 0));

    // 创建场景
    var myScene = new THREE.Scene();

    // 创建100个立方体
    var mySize = 9;
    var myGeometry = new THREE.BoxGeometry(mySize, mySize, mySize);
    var myMaterial = new THREE.MeshDepthMaterial();
    var myGroupMesh = new THREE.Group();
    for (var x = 0; x < 100; x++) {
        var myMesh = new THREE.Mesh(myGeometry, myMaterial);
        myMesh.position.set(x * mySize * 2 - mySize, 0, 0);
        myGroupMesh.add(myMesh);
    }
    myScene.add(myGroupMesh);

    // 渲染100个立方体
    myRenderer.render(myScene, myCamera);
</script>
</body>
</html>

演示链接

示例链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2265949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux------进程处理(system库函数)

视频&#xff1a; 【尚硅谷嵌入式Linux应用层开发&#xff0c;linux网络编程&#xff0c;linux进程线程&#xff0c;linux文件io】https://www.bilibili.com/video/BV1DJ4m1M77z?p34&vd_source342079de7c07f82982956aad8662b467 #include <stdlib.h> #include <…

自然语言处理与知识图谱的融合与应用

目录 前言1. 知识图谱与自然语言处理的关系1.1 知识图谱的定义与特点1.2 自然语言处理的核心任务1.3 二者的互补性 2. NLP在知识图谱构建中的应用2.1 信息抽取2.1.1 实体识别2.1.2 关系抽取2.1.3 属性抽取 2.2 知识融合2.3 知识推理 3. NLP与知识图谱融合的实际应用3.1 智能问答…

【数据库初阶】数据库基础知识

&#x1f389;博主首页&#xff1a; 有趣的中国人 &#x1f389;专栏首页&#xff1a; 数据库初阶 &#x1f389;其它专栏&#xff1a; C初阶 | C进阶 | 初阶数据结构 亲爱的小伙伴们&#xff0c;大家好&#xff01;在这篇文章中&#xff0c;我们将深入浅出地为大家讲解 数据库…

【LeetCode】726、原子的数量

【LeetCode】726、原子的数量 文章目录 一、递归: 嵌套类问题1.1 递归: 嵌套类问题 二、多语言解法 一、递归: 嵌套类问题 1.1 递归: 嵌套类问题 遇到 ( 括号, 则递归计算子问题 遇到大写字母, 或遇到 ( 括号, 则清算历史, 并开始新的记录 记录由两部分组成: 大写字母开头的 …

财经英语期末考试复习

文章目录 第一篇第二篇第三篇第四篇思路梳理作文撰写 第一篇 李宁是中国运动服装和鞋类行业的领导者,这源于其创始人,同名体操冠军李宁的愿景. Ling-Ning is the Chinese leader in athletic apparel and footwear, rooted in the vision of its founder and namesake,the cha…

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用VA-I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集VA-I-FGSM介绍相关定义算法流程 VAI-FGSM代码实现VAI-FGSM算法实现攻击效果 代码汇总vaifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器&#xff1a; Pytorch | 从零构建AlexNet对…

20241225在ubuntu20.04.5下监控SSD

20241225在ubuntu20.04.5下监控SSD 2024/12/25 20:29 参考资料&#xff1a; 百度&#xff1a;ubuntu查看ssd寿命 方法 1&#xff1a;使用「磁盘」工具监测 SSD 健康状态 sudo apt install gnome-disk-utility 方法 2&#xff1a;使用 smartctl 工具检查 SSD 健康状态 Ubuntu 和…

mvn install:install-file jar 打入本地仓库

安装指定文件到本地仓库命令&#xff1a;mvn http://install:install-file -DgroupId : 设置上传到仓库的包名 -DartifactId : 设置该包所属的模块名 -Dversion1.0.0 : 设置该包的版本号 -Dpackagingjar : 设置该包的类型(很显然jar包) -Dfile : 设置该jar包文件所在的路径…

CentOS下,离线安装vscode的步骤;

前置条件&#xff1a; 1.CentOS7; 步骤&#xff1a; 1.下载vscode指定版本&#xff0c;例如&#xff1b; 例如 code-1.83.1-1696982959.el7.x86_64.rpm 2.使用下面命令&#xff1a; sudo rpm -ivh code-1.83.1-1696982959.el7.x86_64.rpm 其他&#xff1a; 卸载vscode的命…

【CSS in Depth 2 精译_087】14.4:CSS 中的浮动特效以及在文字环绕中的应用 + 14.5:本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 14 章 蒙版、形状与剪切】 ✔️ 14.1 滤镜 14.1.1 滤镜的类型14.1.2 背景滤镜 14.2 蒙版 14.2.1 带渐变效果的蒙版特效14.2.2 基于亮度来定义蒙版14.2.3 其他蒙版属…

2025考研加油!Jing也加油哦!

一恍惚&#xff0c;离自己考研初试过去都两年了&#xff01;研究生生活也过去一大半&#xff01;借此机会也总结一下研究生这一段生活——研究生生活&#xff08;上&#xff09; About I 昨天实验室聚餐&#xff0c;作为老生欢迎新生&#xff0c;啊啊啊&#xff0c;真的没想到…

Flink调优----资源配置调优与状态及Checkpoint调优

目录 第 1 章 资源配置调优 1.1 内存设置 1.1.1 TaskManager 内存模型 1、内存模型详解 2、案例分析 1.1.2 生产资源配置示例 1.2 合理利用 cpu 资源 1.2.1 使用 DefaultResourceCalculator 策略 1.2.2 使用 DominantResourceCalculator 策略 1.2.3 使用 DominantRes…

9. zynq应用开发--makefile编译

3. 使用SDK工具 如果只做 Linux 应用开发&#xff0c;只需要一个 sdk.sh 文件即可&#xff0c;可以脱离 Petalinux 和 Vitis&#xff0c;也可以编译其三方的应用&#xff0c;可以说一劳永逸。 配置根文件系统 petalinux-config -c rootfs 编译SDK petalinux-build --sdk Linu…

【ORB-SLAM3:相机针孔模型和相机K8模型】

在ORB-SLAM3中&#xff0c;相机的建模是 SLAM 系统的核心之一&#xff0c;因为它直接影响到如何处理和利用图像数据进行定位和地图构建。ORB-SLAM3 支持不同的相机模型&#xff0c;其中包括针孔模型和鱼眼模型&#xff08;K8 模型&#xff09;。下面分别介绍这两种模型。 相机…

element-plus在Vue3中开发相关知识

报错&#xff1a;error.mjs:20 ElementPlusError: [ElForm] model is required for resetFields to work. 原因&#xff1a;el-form使用v-model没有把内容绑定上&#xff0c;需要使用 :model 才可以校验 将&#xff1a; <el-form label-width"auto" class"…

HarmonyOS NEXT 实战之元服务:静态案例效果--- 日出日落

背景&#xff1a; 前几篇学习了元服务&#xff0c;后面几期就让我们开发简单的元服务吧&#xff0c;里面丰富的内容大家自己加&#xff0c;本期案例 仅供参考 先上本期效果图 &#xff0c;里面图片自行替换 效果图1完整代码案例如下&#xff1a; import { authentication } …

使用Vue的props进行组件传递校验时出现 Extraneous non-props attributes的解决方案

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;WebStorm 目录 出现错误的情况 报错&#xff1a; 代码&#xff1a; 报错截图 原因分析 解决方案 方法一 方法二 出现错误的情况 以下是我遇到该错误时遇到的报错和代码&…

基础运维学习计划-base版

目录 需要学习的内容&#xff1f; liunx基础 sql/mysql基础 tcp/ip协议基础 http基础 dns基础 网络基础&#xff1a;交换&路由概念&原理 常见网络协议 月学习计划 12.26 日 &#xff08;bilibili自己找视频看看&#xff0c;资源很多&#xff09; 12.27日 1…

亚信安全与方天股份达成战略合作,双向奔赴助力数字化转型

近日&#xff0c;亚信安全科技股份有限公司&#xff08;以下简称“亚信安全”&#xff09;正式与青岛方天科技股份有限公司&#xff08;以下简称“方天股份”&#xff09;签订合作框架协议。双方强强携手&#xff0c;在网络安全运营平台共建、信息化项目安全支撑、政企市场拓展…

117.【C语言】数据结构之排序(选择排序)

目录 1.知识回顾 2.分析 设想的思路 代码 执行结果 ​编辑 错误排查和修复 详细分析出错点 执行结果 3.正确的思路 4.其他问题 1.知识回顾 参见42.5【C语言】选择排序代码 点我跳转 2.分析 知识回顾里所提到的文章的选择排序一次循环只比一个数字,和本文接下来要…