Three.js--》建模软件如何加载外部3D模型?

news2024/11/18 10:39:17

目录

三维建模软件的介绍

Blender官方文档介绍

Blender软件安装

GLTF格式简介

gltf不同文件形式


        看过我之前讲解的three文章的人都知道,我在创建模型的时候都没有使用three.js自带的一些简单模型,而是引入外部的模型并加载到页面上,简言之:对于简单的立方体、球体等类型,你可以通过three.js的几何体相关的API快速实现,不过复杂的模型,比如一辆轿车、一栋房子、一个仓库,一般需要通过3D建模软件来 实现。

三维建模软件的介绍

3D美术常用的三维建模软件,比如Blender(轻量开源)、3damx、C4D、maya等等,特殊行业项目可能涉及到行业软件,比如机械相关(SW、UG)等,建筑相关(草图大师、revit)。

3D建模与程序的分工流程是

3D美术:使用三维建模软件绘制3D模型,导出gltf等常见格式

程序员:加载解析三维软件导出的三维模型

比如使用Blender三维建模软件导出gltf格式模型,然后再通过threejs加载三维模型

程序员学习3D建模的好处:了解3D相关概念,想比较代码,建模软件给人的感觉更加形象容易理解。建模软件与three.js代码的交互,能与美术更好的配合,能够知道建模软件如何导出模型。

初学者该选择什么建模软件?博主推荐大家使用 Blender软件 ,安装简易开源免费,易操作,接下来将简单介绍一下Blender建模软件的安装:

Blender官方文档介绍

首先先进入其下载官网:Blender官网 ,然后点击官网主页的 Download 进行下载,如下:

进入下载页面后,根据自己电脑的系统进行选择,我个人电脑是window,选择相应系统,这里建议下载 zip 格式,更方便快速安装和不容易出错。

如果点击没反应,下拉到下图所示位置再次点击下载即可:

如果想查看每次版本更新之后新增的一些功能,可以查阅 版本最新变化 ,这里可以借助翻译软件进行查看即可:

点击download下的demo files,就可以白嫖官方历代闪屏文件和资产库文件

Blender软件安装

下载 blender 软件 zip 完成之后,接下来就可以进行相应的安装了,这里建议安装到D盘,然后安装路径注意不要有中文路径,避免渲染出错。解压压缩包然后进入到文件当中,然后找到如下图所示的文件发送到桌面快捷方式:

找到桌面的快捷方式双击进行打开即可,进入软件主页面之后选择对应自己想要的语言,例如中文

然后点击空白处让当前弹框消失即可,然后点击菜单栏中的编辑选项,选择偏好设置,取消勾选新建数据,避免文件出错。

然后选择系统,勾选全部显卡和CPU:

然后撤销设置建议设置成100即可:

ok,blender的安装与基础设置就基本配置完成了,接下来可以随时进行3D建模啦。

GLTF格式简介

GLTF格式是新2015发布的三维模型格式,随着物联网、WebGL、5G的进一步发展,会有越来越多的互联网项目Web端引入3D元素,你可以把GLTF格式的三维模型理解为jpg、.png格式的图片一样。现在的网站,图片基本是标配,对于以后的网站来说如果需要展示一个场景,使用3D来替换图片表达也是很正常的事情。

图片有很多格式,对于三维模型自然也是如此,Web开发的时候图片会有常用格式,对于Web3D开发也一样,肯定会根据需要选择一个常见的大家都熟悉的格式,随着时间的发展,GLTF必然称为一个极为重要的标准格式。不仅three.,js,其它的WebGL三维引擎cesium、babylonjs都对gltf格式有良好的的支持。

Khronos Group组织2015发布了GLTF1.0版本,在2017年又发布了GLTF2.0版本,关于gltf的更多介绍和信息,可以查看github:https://github.com/KhronosGroup/glTF 。

gltf包含内容:相比较obj、stl等格式而言,.gltf格式可以包含更多的模型信息。.gltf格式文件几乎可以包含所有的三维模型相关信息的数据,比如模型层级关系、PBR材质、纹理贴图、骨骼贴图、变形动画等等。

gltf格式信息:如果你有一定的前端基础,那么你对JSON一定不陌生,GLTF文件就是通过JSON的键值对方式来表示模型信息,比如meshes表示网格模型信息,materials表示材质信息等。

.bin文件:有些gltf文件会关联一个获多个.bin文件,.bin文件以二进制形式存储了模型的顶点数据等信息。.bin文件中的信息其实就是对应gltf文件中的 buffers 属性,buffers.bin中的模型数据,可以存储在 .gltf 文件中,也可以单独一个二进制 .bin 文件。

二进制 .glb:gltf格式文件不一定就是以扩展名 .gltf 结尾, .glb就是gltf格式的二进制文件。比如你可以把 .gltf 模型和贴图信息全部合成到一个 .glb 文件中,.glb文件相对 .gltf 文件体积更小,网络传输自然更快。

gltf不同文件形式

三维建模软件比如Blender,可以根据设置以不同形式导出gltf模型,比如单独导出一个 .gltf 文件,比如单独导出一个 .glb 文件,比如导出形式为:.gltf + .bin + 贴图多个文件。

.gltf格式模型文件,有不同的组织形式。单独 .gltf 文件、单独 .glb文件、.gltf + .bin + 贴图文件。

注意:贴图等数据单独是一个文件的时候,注意不要随意改变子文件相对父文件gltf的目录,以免找不到资源。这一点很重要,切记!!!

这些不同形式的gltf模型,加载代码其实没啥区别,比如说我们通过3D建模软件画好一个模型之后,就可以通过建模软件进行一个导出,如下:

比如说这里我选择导出gltf模型之后,可以自行选择要导出的格式:

ok,3d建模软件的下载以及如何导出gltf模型的简单介绍到这里就结束了,后期博主也可能会讲解一点关于3D建模Blender的相关知识,关注博主,让学习之路不再迷茫!

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

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

相关文章

数据库基础——1.数据库概述

从这篇文章我们开始学习数据库的相关知识 目录 1.为什么要使用数据库 2.数据库与数据库管理系统 2.1相关概念 2.2数据库与数据库管理系统的关系 ​编辑2.3常见的数据库管理系统 2.4常见的数据库介绍 3.MySQL介绍 3.1概述 3.2关于MySQL8.0 3.3 Oracle vs MySQL 4.RD…

Java 反序列化漏洞

反序列化漏洞是指程序在反序列化期间,通过特殊的调用链引发的一系列安全问题。编程语言中只要存在序列化,反序列化功能就可能存在反序列化的安全问题。这里只针对Java和PHP进行讨论。 序列化漏洞概述 序列化的存在主要是为了存储和传输,将这…

Redis入门篇-初

结束时长 Redis十大数据类型 基本目录 实际的类型是没有被红框框选的10个类型 Strings 1 Lists 2 Sets 3 Hashes 4 Sorted sets 5 Streams 6 Geospatial 7 HyperLogLog 8 Bitmaps 9 Bitfields 10类型展示 Strings --> HelloRedis Lists [A>B>C>C] Sets {A<…

第七章 文件读写

内容框图 7.1 文件读写介绍 文件打开和关闭 用word编写一份简历&#xff0c;应该有哪些流程&#xff1f; 打开word软件&#xff0c;新建一个word文件写入个人简历信息保存文件关闭word软件 同样&#xff0c;编程中操作文件的整体过程类似。 打开文件&#xff0c;或者新建立一个…

chatgpt赋能python:Python中的%z格式化代码

Python中的%z格式化代码 在Python编程中&#xff0c;%z是一个非常有用的格式化代码。它用于表示时区偏移量&#xff0c;并将其与日期时间字符串一起显示。在本文中&#xff0c;我们将深入了解Python中的%z代码&#xff0c;并探讨它如何帮助您处理日期和时间。 什么是%z&#…

chatgpt赋能python:PythonTCP断开连接原因和解决方案

Python TCP 断开连接原因和解决方案 Python 是一种广泛使用的编程语言&#xff0c;它支持网络编程、数据处理、人工智能、机器学习等诸多领域。在网络编程中&#xff0c;Python 通常使用 TCP 连接传输数据。然而&#xff0c;在使用 TCP 连接传输数据的过程中&#xff0c;我们可…

koa2获取HTTP请求参数

HTTP 什么是HTTP HTTP&#xff0c;即超文本传输协议&#xff0c;是一种实现客户端和服务器之间通信的响应协议&#xff0c;它是用作客户端和服务器之间的请求。 客户端&#xff08;浏览器&#xff09;会向服务器提交HTTP请求&#xff1b;然后服务器向客户端返回响应&#xf…

2023 Q1 ZK报告

1. ZK数据 2023年4月4日&#xff0c;ZK社区举办了zkSummit 9。 ZK技术应用场景主要分布情况为&#xff1a; 其中&#xff1a; 1&#xff09;ZK用于隐私场景案例最多&#xff0c;占比12.9%&#xff0c;说明人们对 将ZK技术用于隐私保护 兴趣浓厚。2&#xff09;ZK用于扩容场景…

超长溢出头部省略打点,坑这么大,技巧这么多?

目录 需求 利用 direction 实现头部超长溢出打点 简单介绍一下 direction&#xff1a; 另外两个与排版相关的属性还有&#xff1a; direction: rtl 会导致使用下划线 _ 连接的数字内容排版错误 多方案解决 方案一&#xff1a;两次 direction 反转 当然&#xff0c;这里…

【高级语言程序设计(一)】第 8 章:结构体类型和自定义类型

目录 前言 一、结构体类型定义 &#xff08;1&#xff09;结构体类型定义的一般形式 &#xff08;2&#xff09;结构体类型定义的说明 二、结构体类型变量 &#xff08;1&#xff09;结构体类型变量的定义和初始化 ① 先定义结构体类型、后定义结构体类型的变量&#xf…

今天用AI创作助手写的文章--Docker提问系列介绍 Docker 的基本概念和优势

目录 介绍 Docker 的基本概念和优势&#xff0c;以及在应用程序开发中的实际应用。基本概念&#xff1a;优势&#xff1a; 哪些应用可以部署到docker里面Docker在服务器里面的安装步骤Docker里面的报错如何很仔细的排查解决&#xff1f;总结一下docker 未来发展趋势 介绍 Docke…

安装Arch Linux后要做的十件事

Arch Linux 是一款轻量级、灵活且高度可定制的Linux发行版&#xff0c;被广泛用于个人电脑和服务器。一旦您成功安装了Arch Linux&#xff0c;接下来有一些重要的任务需要完成&#xff0c;以确保系统的稳定性和安全性&#xff0c;并为您的需求做好准备。 本文将详细介绍安装Ar…

C++11 -- 可变参数模板

文章目录 可变参数模板的概念可变模板参数的定义获取可变模板参数包的值递归函数方式展开参数包获取逗号表达式展开参数包获取 STL容器中的emplace相关接口参数emplace_back与STL容器中的push_back的主要区别emplace_back与push_back的差异原理emplate_back与push_back的区别验…

图像算法工程师岗位的主要职责(合集)

图像算法工程师岗位的主要职责 一、确定岗位的职责 1.根据工作任务的需要确立工作岗位名称及其数量; 2.根据岗位工种确定岗位职务范围; 3.根据工种性质确定岗位使用的设备、工具、工作质量和效率; 4.明确岗位环境和确定岗位任职资格; 5.确定各个岗位之间的相互关系; 6.根据岗位…

css元素的显示和隐藏

1. display显示隐藏 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><st…

测试C#分词工具jieba.NET

jieba.NET是jieba中文分词的C#版本&#xff0c;后者是优秀的Python中文分词组件GitHub中得到超过3万星。jieba.NET支持中文分词、关键词提取、词性标注等功能&#xff0c;本文主要测试其中文分词的功能基本用法。   新建测试项目&#xff0c;在NuGet管理器中添加jieba.NET。 …

SpringBoot --- 运维篇

一、打包与运行 1.1、程序打包与运行&#xff08;Windows版&#xff09; 所谓打包指将程序转换成一个可执行的文件&#xff0c;所谓运行指不依赖开发环境执行打包产生的文件。 SpringBoot程序是基于Maven创建的&#xff0c;在Maven中提供有打包的指令&#xff0c;叫做packag…

虹科HiveMQ与MQTT:构建互联汽车的新架构

前言 随着汽车的互联程度越来越高&#xff0c;汽车制造商和互联汽车平台提供商通过使用物联网技术&#xff0c;提供新服务并从车辆收集有价值的遥测数据&#xff0c;以此来增加营收。从高效的车队管理和汽车共享到预测性维护和高级驾驶员辅助系统&#xff0c;未来移动出行的可…

Packet Tracer – 访问控制列表演示

Packet Tracer – 访问控制列表演示 拓扑图 目标 第 1 部分&#xff1a;验证本地连接和测试访问控制列表 第 2 部分&#xff1a;删除访问控制列表和重复测试 背景信息 在本练习中&#xff0c;您将观察如何使用访问控制列表 (ACL) 阻止 ping 访问远程网络上的主机。 从配置…

大数据Doris(二十七):Broker Load导入HDFS数据到Doris表

文章目录 Broker Load导入HDFS数据到Doris表 一、创建Doris表 二、准备HDFS数据 三、准备Broker Load语句