开源图形库Assimp
前言
引用一段介绍
Assimp,开源图形库(Open Asset Import Library)是一种便携式的可支持读取多种模型资源的开源库,它可以用统一的方式输入各种格式的3D模型,而其最新版本能实现输出3D模型的文件,因此该资源库也作为通用的3D模型转换器。assimp旨在提供用于游戏引擎实时渲染系统的一种完整的资源转换管道,但它不局限于这个目的,但在过去已被广泛应用。Assimp是用C++编写的,可以基于C语言应用程序编程接口或者绑定其它其它语言,如C#、.net、Python。为了进一步处理资源,Assimp加载了输入的模型格式为一个简单的数据结构,这个功能是由后处理工具加强的,包括一些常用的操作比如计算正常和切向量。
assimp是一种库,它主要用来加载和处理各种数据格式的几何场景。它主要针对的是那些支持节点层次、静态表层网格、材料、具有质感的动画和潜在纹理数据。assimp库不是为了提高速度而设计的,它最重要的用处就是,将每一个不同来源的资源导入并且在每一次的加载中以一种特殊的格式将它方便、快捷的存储起来。assimp也能够运用各种后处理步骤导入相应的数据,如转换为索引网格,计算法线和切线/双切线或转换从右手到左手坐标系统。assimp目前支持以下文件格式(请注意,一些装载机缺乏格式的一些特点,因为有些文件格式包含assimp不支持的数据,所以会需要很多的转换工作,而因此缺乏适当的格式规范并没有实现)
本文主要对库本身的主要内容进行一波分析, 然后顺手封装成UE的蓝图插件
Google开源压缩库Draco
UHT和UBT分析
UE4各种代理(委托)使用方法
UE4获取硬件信息
UE4使用第三方静态库和动态库
关于EditorUtilityWiget用cpp来运行
Paper2D第三方工具TexturerPacker
地形及关卡流简单记录
前言
从遥远的2019年搬运而来, 仅作为记录,后续视情况补充
[官方文档][https://docs.unrealengine.com/zh-CN/Engine/Landscape/index.html]
地形的内存
对于顶点数据,Landscape为每个顶点使用4个字节。静态网格体(Static Mesh)以12字节矢量的形式存储位置,每个切线X和Z矢量封装为4个字节,并为每个顶点的共24或28个字节存储16位或32位浮点UV。
这意味着,对于相同的顶点密度,静态网格体(Static Mesh)将使用6或7倍于Landscape的内存。Landscape还将它们的数据存储为纹理,并且可以为遥远的区域流送未使用的LOD关卡,并在您接近它们时从后台的磁盘加载它们。Landscape使用一个常规的高度场,因此其碰撞数据也能够比静态网格体(Static Mesh)的碰撞数据更高效地存储。
地形存储方式
- Landscape系统在GPU内存中以纹理的形式存储地形的渲染数据,允许在顶点着色器中查找数据。数据被打包成32位纹理,高度以R和G信道的形式占据16位,X和Y偏移量以8位数值分别存储在B和A信道中。