BabylonJS入门之详解工作流三 三国志14新手入门全攻略详解
suiw9 2024-11-09 14:50 28 浏览 0 评论
再做一个新的场景
目录
- 添加Skybox
- 把你的工作存起来吧
- 加载一个3D模型
- 验证迄今为止的工作。
为了使大型项目中的场景管理模式更加清晰,制作第二个场景也是有意义的,我们还可以介绍一些简单的编辑器功能。
这次我们将从一个全新的场景开始。
选择 'Yes'
编辑器现在处于完全空白状态,如下所示:
让我们加些东西。由于我们处于完全的“空白状态”,所以覆盖地面和天空可能是有用的,因为许多场景都使用这一点。
添加Skybox
如果事先查看默认场景,您可能会注意到skybox是一种特殊的材质,使用的文件扩展名为.dds。材质类型基于基于物理的渲染(PBR),这是BabylonJS非常酷和强大的特性。整个范围不在本编辑器和工作流教程的范围内,但是您也可以在此处看到底层材料PBR材料类型的演示。
https://www.babylonjs.com/demos/pbrglossy/
你看到头盔上所有的反射和材料,以及增加的真实感吗?这就是PBR的力量。除了那个花哨的头盔网,基于物理的建模对Skybox来说是很棒的。
我不会详细介绍如何生成这个文件,但是简短的版本是,你需要一个skybox,然后你需要一种方法将这个skybox转换成.dds格式以供BabylonJs使用。互联网上有很多Skybox,我在本教程中使用的一个很好的工具是Alex Peterson的Spacescape软件。它基本上是一个非常酷(而且免费)的软件,专门用来制作以太空为主题的天空盒。
你可以在这里下载:http://alexcpeterson.com/spacescape/
如果你想自己尝试,或只是自己做一个天空盒。Spacescape直接导出为.dds格式,因此非常适合测试此工作流。您需要选择此特定工具的模式是:
选择一个名字
- 单个DDs多维数据集映射(*.DDs)
- 512是非常好的演示,1024看起来更好!为了更好的性能,用512就可以了。
- 选择source。
我的建议是:避免使用高分辨率的纹理输出。原始的skybox是一个大文件,我们只是介绍工作流程。优化此资源(例如转换为.env文件)超出了本教程的范围。
现在我们需要把它启动并运行。在新场景中,拖动文件(我的是空间.dds)进入“纹理查看器”选项卡。当它出现在列表中时,您需要将纹理“Coordinates Mode”更改为SKYBOX_MODE
现在您将在编辑器中看到您的天空盒投影到球体上。它应该是无缝的。
现在我们要把这个纹理放到一个材质上。我们将转到“Materials Viewer”(材质查看器)并单击+ADD(添加)。。。位于选项卡名称下的按钮。
执行此操作时,将弹出一个窗口,并确保选择PBRMaterial。
当你有了材质,改变一些属性。单击新材质,此时将打开“Inspector”(检查器)窗口。
- 将材质重命名为SpaceBox
- 我们需要关闭背面剔除。
- 指定实际纹理!
只需在inspector的Reflection菜单的Reflection Texture属性中添加的.dds文件。
现在,就像使用纹理查看器一样,您应该可以在材质查看器中看到显示正确纹理的球体。
祝贺你。这基本上就是在编辑器中制作材质的过程。
- 导入纹理
- 添加材质
- 同时配置两者;尤其是为材质指定正确的纹理。
我们的天盒子几乎做完了。我们需要在场景中添加一个新的立方体。在顶部菜单中单击+添加,当弹出菜单出现时,选择“Cube Mesh”(立方体网格)。
此时,您应该会在场景中看到一个小的灰色立方体,并在“Materials Viewer(材质查看器)”中看到两个材质。名为default material的材质被添加到立方体旁边。
下一步,我们需要把这个立方体做得更大以容纳场景。在cube的“inspector”窗口中,查看“Properties 属性”选项卡。在里面你想把缩放比例改成大的,比如500x500x500。
在这一点上,你将有一个大的灰色立方体围绕着你。我们需要采取一些额外的措施让它看起来像一个空盒子。在“Graph”选项卡或“Preview”选项卡中选择cube box。现在在它的inspector中:
- 为它一个合理的名字。我把我的名字命名为:SkyboxSpacescape
- 将SpaceBox材质指定给立方体。
现在你应该看到你周围的天空之盒!运行游戏预览标签,看看!看起来不错!
把你的工作存起来吧
我们有一个只有一个skybox的简单场景,现在是保存这个场景的好时机。和以前一样,将它保存到自己的文件夹中,editorprojects的文件夹下,命名为:Space-Scene。到目前为止,您的整个项目目录结构(可能)如下所示:
当您添加更多的项目时,它们会像这样在编辑器项目目录中归档。您只需双击scene.editorprojet 这里的图标就可以在场景之间来回切换。
特别注意:每次保存,建议使用“Save Project As...”另存为,如果覆盖掉以前的成果,哭都来不及。
加载一个3D模型
因为我们的第二个场景实际上只是一个skybox,所以我认为在我们开始进入与在您计划发布的web项目上下文中管理场景相关的工作流之前,在场景中再添加一个3D模型可能是个好主意。
在Babylon官网已经提供了一些非常好的3d模型,下载下来,就可以进行实验。由于本教程更多的是关于工作流,而不是关于制作您自己的3d模型,因此我们可以随便下载个别人做好的3d模型来学习。
Babylon支持的3D模型常见的格式,如gltf,obj,stl.等等,想要了解详细的,请参阅:
https://doc.babylonjs.com/how_to/load_from_any_file_type
官模型示例:https://doc.babylonjs.com/resources/meshes_to_load (可以下载模型,及程序源码)
此外,如果您会建模软件,如Blender、3ds Max、Cheetah 3d等等,那么可能有一个导出器可以让您轻松地创建网格。在BabylonJS文档的参考资料部分有很多关于这个的文章。
为了顺利能完成这个教程,我们提供了一个现成的3d模型下载:
Dude.babylon
- Mesh: https://www.babylonjs-playground.com/scenes/Dude/Dude.babylon
- Asset: https://www.babylonjs-playground.com/scenes/Dude/0.jpg
- Asset: https://www.babylonjs-playground.com/scenes/Dude/1.jpg
- Asset: https://www.babylonjs-playground.com/scenes/Dude/2.jpg
- Asset: https://www.babylonjs-playground.com/scenes/Dude/3.jpg
下载完如下:
困难的部分来了。下载文件和资源后。。将它们全部拖到编辑器中,然后在提示符上单击yes。
我们来看看都发生了什么:
- 在纹理查看器中有更多的纹理!
- 材质查看器有更多的材质
- 在Graph中,有一个新的节点,可能是个多余的摄像机,如果你想,可以删除它。看起来象这样:
- 在Preview中,多了一个网格对象
点击下play,试试看,别忘了保存你们工作。
验证迄今为止的工作。
- 打开和关闭两个项目
- 检查你的文件夹结构,应该是这样的
相关推荐
- 5款Syslog集中系统日志常用工具对比推荐
-
一、为何要集中管理Syslog?Syslog由Linux/Unix系统及其他网络设备生成,广泛分布于整个网络。因其包含关键信息,可用于识别网络中的恶意活动,所以必须对其进行持续监控。将Sys...
- 跨平台、多数据库支持的开源数据库管理工具——DBeaver
-
简介今天给大家推荐一个开源的数据库管理工具——DBeaver。它支持多种数据库系统,包括Mysql、Oracle、PostgreSQL、SLQLite、SQLServer等。DBeaver的界面友好...
- 强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)
-
NavicatPremium,一款集数据迁移、数据库管理、SQL/查询编辑、智能设计、高效协作于一体的全能数据库开发工具。无论你是MySQL、MariaDB、MongoDB、SQLServer、O...
- 3 年 Java 程序员还玩不转 MongoDB,网友:失望
-
一、什么场景使用MongoDB?...
- 拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南
-
作为一名在NoSQL丛林中披荆斩棘的数据猎人,没有比GUI工具更称手的瑞士军刀了。本文将带你围观五款主流MongoDB管理神器的特性与暗坑,附赠精准到扎心的吐槽指南一、MongoDBCompass:...
- mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
-
前言最近在做neo4j相关的同步处理,因为产线的可视化工具短暂不可用,发现写起来各种脚本非常麻烦。...
- solidworks使用心得,纯干货!建议大家收藏
-
SolidWorks常见问题...
- 统一规约-关乎数字化的真正实现(规范统一性)
-
尽管数字化转型的浪潮如此深入人心,但是,对于OPCUA和TSN的了解却又甚少,这难免让人质疑其可实现性,因为,如果缺乏统一的语义互操作规范,以及更为具有广泛适用的网络与通信,则数字化实际上几乎难以具...
- Elasticsearch节点角色配置详解(Node)
-
本篇文章将介绍如下内容:节点角色简介...
- 产前母婴用品分享 篇一:我的母婴购物清单及单品推荐
-
作者:DaisyH8746在张大妈上已经混迹很久了,有事没事看看“什么值得买”已渐渐成了一种生活习惯,然而却从来没有想过自己要写篇文章发布上来,直到由于我产前功课做得“太过认真”(认真到都有点过了,...
- 比任何人都光彩照人的假期!水润、紧致的肌肤护理程序
-
图片来源:谜尚愉快的假期临近了。身心振奋的休假季节。但是不能因为这种心情而失去珍贵的东西,那就是皮肤健康。炙热的阳光和强烈的紫外线是使我们皮肤老化的主犯。因此,如果怀着快乐的心情对皮肤置之不理,就会使...
- Arm发布Armv9边缘AI计算平台,支持运行超10亿参数端侧AI模型
-
中关村在线2月27日消息,Arm正式发布Armv9边缘人工智能(AI)计算平台。据悉,该平台以全新的ArmCortex-A320CPU和领先的边缘AI加速器ArmEthos-U85NPU为核心...
- 柔性——面向大规模定制生产的数字化实现的基本特征
-
大规模定制生产模式的核心是柔性,尤其是体现在其对定制的要求方面。既然是定制,并且是大规模的定制,对于制造系统的柔性以及借助于数字化手段实现的柔性,就提出了更高的要求。面向大规模定制生产的数字化业务管控...
- 创建PLC内部标准——企业前进的道路
-
作者:FrankBurger...
- 标准化编程之 ----------- 西门子LPMLV30测试总结
-
PackML乃是由OMAC开发且被ISA所采用的自动化标准TR88.00.02,能够更为便捷地传输与检索一致的机器数据。PackML的主要宗旨在于于整个工厂车间倡导通用的“外观和感觉”,...
你 发表评论:
欢迎- 一周热门
-
-
Linux:Ubuntu22.04上安装python3.11,简单易上手
-
宝马阿布达比分公司推出独特M4升级套件,整套升级约在20万
-
MATLAB中图片保存的五种方法(一)(matlab中保存图片命令)
-
别再傻傻搞不清楚Workstation Player和Workstation Pro的区别了
-
Linux上使用tinyproxy快速搭建HTTP/HTTPS代理器
-
如何提取、修改、强刷A卡bios a卡刷bios工具
-
Element Plus 的 Dialog 组件实现点击遮罩层不关闭对话框
-
日本组合“岚”将于2020年12月31日停止团体活动
-
SpringCloud OpenFeign 使用 okhttp 发送 HTTP 请求与 HTTP/2 探索
-
tinymce 号称富文本编辑器世界第一,大家同意么?
-
- 最近发表
-
- 5款Syslog集中系统日志常用工具对比推荐
- 跨平台、多数据库支持的开源数据库管理工具——DBeaver
- 强烈推荐!数据库管理工具:Navicat Premium 16.3.2 (64位)
- 3 年 Java 程序员还玩不转 MongoDB,网友:失望
- 拯救MongoDB管理员的GUI工具大赏:从菜鸟到极客的生存指南
- mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
- solidworks使用心得,纯干货!建议大家收藏
- 统一规约-关乎数字化的真正实现(规范统一性)
- Elasticsearch节点角色配置详解(Node)
- 产前母婴用品分享 篇一:我的母婴购物清单及单品推荐
- 标签列表
-
- dialog.js (57)
- importnew (44)
- windows93网页版 (44)
- yii2框架的优缺点 (45)
- tinyeditor (45)
- qt5.5 (60)
- windowsserver2016镜像下载 (52)
- okhttputils (51)
- android-gif-drawable (53)
- 时间轴插件 (56)
- docker systemd (65)
- slider.js (47)
- android webview缓存 (46)
- pagination.js (59)
- loadjs (62)
- openssl1.0.2 (48)
- velocity模板引擎 (48)
- pcre library (47)
- zabbix微信报警脚本 (63)
- jnetpcap (49)
- pdfrenderer (43)
- fastutil (48)
- uinavigationcontroller (53)
- bitbucket.org (44)
- python websocket-client (47)