前言

Draco是谷歌在2017年1月发布的一个3D图形开源压缩库,提供了多种算法进行压缩和解压缩。
对于encoder过程,Draco整体思路是将网格的连接信息和几何信息进行分别编码并进行存储。
其中,连接信息使用了edgebreaker等算法进行了编码压缩,几何信息对数据进行量化、预测压缩、熵编码。其中熵编码采用了rANS算法。
本文对Draco源码进行分析, 另外对其进行封装成UE插件

image-20210316094313248

阅读全文 »

前言

本文大致梳理一下UBT和UHT的作用以及涉及到的其他几个概念的使用

阅读全文 »

前言

UE4中有茫茫多的代理类型, 对于初学者刚开始都是一头雾水, 本篇文章逐步分析每一种代理的使用方法

阅读全文 »

前言

本文记录UE4获取硬件信息和地址等常用方法

Mac地址

GetMacAddressString()方法已经在4.15版本后被彻底废弃, 所以UE目前(4.26)版本无法获取Mac地址

我们之前UE4获取第三方库文章中有用到使用自己用原生cpp获取到mac地址, 然后导出成动态或者静态库到UE4再封装成插件的形式来获取mac地址, 此方法也是目前比较快捷的一个方法

阅读全文 »

前言

本文介绍一下UE4使用第三方库的简单用法, 即DLL动态库和Lib静态库的使用

我们用插件的形式封装起来, 便于以后移植到其他项目中去;

所以在开始之前先新建一个空或者蓝图库插件

阅读全文 »

前言

从遥远的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信道中
阅读全文 »