标签归档:game-development

Assimp 导入和导出各种3D模型格式的库

打开资源导入库(ASSIMP)

用于导入和导出各种3D模型格式的库,包括生成缺失渲染数据的场景后处理

当前项目状态










提供了面向C和C++的API。有到其他语言(C#、Java、Python、Delphi、D)的各种绑定。Assimp也可以在Android和iOS上运行。此外,assimp还具有各种网格后处理工具:法线和切线空间生成、三角剖分、顶点缓存局部性优化、移除退化的基本体和重复顶点、按基本体类型排序、合并冗余材质等等

最新单据的

请在以下地址查阅最新文件:Asset-Importer-Lib-Doc

参与进来吧

这是包含最新功能和错误修复的开发资源库。不过,为了更有效地使用,我们建议使用可从以下网址获得的稳定版本之一Github Assimp Releases
你在文档里发现窃听器了吗?使用Doc-Repo
请同时查看我们的维基:https://github.com/assimp/assimp/wiki

如果您想查看我们的模型数据库,请使用以下回购:https://github.com/assimp/assimp-mdb

支持的文件格式

您可以找到支持的文件格式的完整列表here

大楼

让我们来看看https://github.com/assimp/assimp/blob/master/Build.md文件。我们在vcpkg中可用,并且我们的构建系统是CMake;如果您以前使用过CMake,那么您很有可能知道要做什么

端口

其他工具

open3mod是基于Assimp的导入和导出功能的功能强大的3D模型查看器

存储库结构

Open Asset Import Library是用C++实现的。目录结构如下所示:

/code		Source code
/contrib	Third-party libraries
/doc		Documentation (doxysource and pre-compiled docs)
/include	Public header C and C++ header files
/scripts 	Scripts used to generate the loading code for some formats
/port		Ports to other languages and scripts to maintain those.
/test		Unit- and regression tests, test suite of models
/tools		Tools (old assimp viewer, command line `assimp`)
/samples	A small number of samples to illustrate possible
                    use cases for Assimp

源代码的组织方式如下:

code/Common			The base implementation for importers and the infrastructure
code/PostProcessing		The post-processing steps
code/AssetLib/<FormatName>	Implementation for import and export for the format

从哪里获得帮助

有关更多信息,请访问our website或查看./doc-文件夹,包含HTML格式的官方文档。(适用于Windows的CHM包含在某些版本包中,应位于此处的根文件夹中)

如果医生不能解决你的问题,那就问吧StackOverflow with the assimp-tag如果您认为您发现了错误,请在Github上打开一个问题

开放式资源导入库是一个库,用于将各种3D文件格式加载到共享的内存格式中。它支持的不只是40种文件格式用于导入,以及越来越多的文件格式可供选择用于导出

我们还有一个Gitter频道:Gitter

贡献

我们高度赞赏对ASSIMP的贡献。参与进来的最简单方式是提交一个拉取请求,其中包含您对主存储库的master分支机构

贡献者

代码贡献者

这个项目的存在要归功于所有做出贡献的人。[Contribute]

财政捐赠者

成为一名财政捐赠者,帮助我们维持我们的社区。[Contribute]

个人

组织机构

与您的组织一起支持此项目。您的徽标将在此处显示,并带有指向您的网站的链接。[Contribute]

许可证

我们的执照是基于修改后的,3-子句BSD-许可证

一个非正式的总结是:想做什么就做什么,但在您的产品中包含Assimp的许可文本-如果我们的代码不起作用,不要起诉我们。请注意,与LGPLed代码不同,您可以静态链接到Assimp。有关法律详细信息,请参阅LICENSE文件

为什么要取这个名字?

对不起,我们是德国人:-),没有以英语为母语的人

SpaceshipGenerator-用于程序化生成3D宇宙飞船的Blender脚本

宇宙飞船生成器

用于从随机种子按程序生成3D宇宙飞船的Blender脚本

用法

  • 安装Blender 2.80或更高版本:http://blender.org/download/
  • 下载最新版本add_mesh_SpaceshipGenerator.zipReleases部分
  • 在编辑>首选项下。>加载项>安装。打开下载的ZIP文件
  • 在编辑>首选项下。>加载项启用“添加网格:宇宙飞船生成器”脚本(搜索“宇宙飞船”)
  • 在3D视图中的添加>网格>宇宙飞船下添加宇宙飞船
  • 展开显示在视口左下角的宇宙飞船选项卡,以调整程序生成设置

它是如何工作的

在YouTube上观看:https://www.youtube.com/watch?v=xJZyXqJ6nog

  • 从一个盒子开始
  • 构建外壳:多次挤出前/后表面,沿途添加随机平移/缩放/旋转
  • 将不对称添加到外壳:拾取随机面并以类似的方式将其挤出,每次都缩小比例
  • 为船体添加细节:按方向对每个面进行分类,并在其上生成细节,如引擎、天线、武器炮塔、灯光等
  • 有时应用水平对称
  • 添加倒角修改器以使形状稍微倾斜
  • 将材质应用于最终结果
  • 用你的新的无限的宇宙飞船舰队接管整个宇宙

极端的例子

以下屏幕截图是使用船体分段数和不对称分段数的极值创建的,以显示算法的工作原理

小贴士和小窍门

  • 默认情况下,该脚本将删除以开头的所有对象Spaceship在制造新的宇宙飞船之前。要禁用此功能,请删除或注释掉对reset_scene()在主函数中的第735行附近
  • 您可以将种子提供给generate_spaceship()功能以始终生成相同的宇宙飞船。例如,generate_spaceship('michael')
  • 这个generate_spaceship()函数接受更多影响生成过程的参数。试试和他们玩吧!
  • 您可以用自己的纹理替换纹理。所有纹理都使用全局空间立方体UV应用。hull_normal.png是添加额外曲面“问候语”的法线贴图。hull_lights_diffuse.png是一种附加漫反射纹理,用于设置窗光的颜色。hull_lights_emit.png是一种发光纹理,使窗户在黑暗中发光

学分

为了好玩而写的,作为/r/proceduralgeneration2016年6月monthly challenge

根据MIT License

迈克尔·戴维斯编写和维护

GitHub@a1studmuffin推特@butterparty

特别感谢@panzi对于错误修复,需要合适的GUI和构建脚本。也可以@mjrthemes用于错误修复,以及@LendoK对于2.80端口