Unity与UE4引擎源码内使用到的第三方库的比较

本文对比了Unity和UE4引擎中使用的第三方库,涵盖了图形图像、音频、视频、文本处理、网络、数据库等多个方面。Unity使用了Autodesk Beast进行光照处理,Cairo进行2D绘图,WebKit和Kerberos 5协议支持网络功能,FreeImage处理图像,LAME处理音频,PostgreSQL和SQLite3处理数据库,而UE4则涉及了更多图形库如ANGLE、FreeType2,以及GoogleARCore、GoogleVR等增强现实技术。两者都依赖于如FreeImage、OpenSSL、cURL等通用库,但针对不同需求有各自的特色选择。
摘要由CSDN通过智能技术生成

 

首先看UE4中的 Third-Party Libraries

UnrealEngine\Engine\Source\ThirdParty  下: 

源码路径:

image.pngimage.png

引擎exe的安装路径下(会发现跟源码路径是一样的):

image.pngimage.png

ADO

 

注意:这只是为Windows访问权限设置了Windows包含的一组lib的include路径。

 

AMD

 

AMD GPU服务(AGS)库使软件开发人员能够查询通常无法通过标准操作系统或图形API获得的AMD GPU软件和硬件状态信息。

解决PC上的AMD驱动程序错误,利用PC上AMD特定的图形功能

https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/

 

Android

 

This is the Android Software Development Kit(Android软件开发工具包)

 

  • cxa_demangle: UE在Android设备上运行时需要调用堆栈打印,UE需要此函数将错误的函数名称转换为易于理解的名称。 UE通过stlport与cxx-stl链接,但是该库中不包含abi :: cxa_demangle函数。 NDK附带的gnu-libstdc ++库确实包含此功能,但是UE不针对gnu-libstdc ++进行链接,也不想仅针对此功能这样做。 最简单的解决方案是编译cxa_demangle源代码文件并手动链接。 https://android.googlesource.com/platform/external/
  • detex:在不支持的情况下,在Android设备上将alpha ETC2解码为RGBA纹理格式。 由于ETC1不支持alpha压缩,因此UE可以分发带有alpha纹理的较小的程序包。 作为OpenGL RHI的一部分,被编译为Android游戏引擎。  https://github.com/hglm/detex/
  • extras:是获取Android支持库的更新版本/不同方式(请参阅相关合同)。 是来自Android SDK的附加安装。 该存储库是Google Play服务的依赖项。             提供用于与Google通信的Java API。 允许Android游戏使用Google的成就,排行榜和广告。 AAR文件将被编译到游戏中。
  • libunwind:帮助生成通过UE的Android崩溃报告报告的调用堆栈

 

AndroidPermission

 

定义应用所需权限, 处理运行时权限请求, 检测权限和请求权限

 

ANGLE

 

复制Windows上许多移动设备(包括HTML)提供的图形功能集。

在为HTML5平台开发时允许更快的迭代,可能在以后为其他移动平台开发,从而允许更快的迭代,而在为HTML5平台开发时允许更高的迭代,而在为HTML5平台以及其他移动平台开发时允许更高的迭代

 

asio

 

Asio用作服务器的IO层,以存储和检索从运行时和编辑器发送的跟踪。

 

Breakpad

 

https://chromium.googlesource.com/breakpad/breakpad  https://github.com/google/breakpad/ 用于为Windows,Mac和Linux二进制文件生成跨平台symbol dumps。Breakpad是实现崩溃报告系统的一组客户端和服务器组件。

 

CEF3( Chromium Embedded Framework)

 

允许在应用程序中嵌入Web浏览器   https://github.com/chromiumembedded

UE需要在编辑器和启动器应用程序中使用Web浏览器来显示文档页面并更无缝地集成用于市场等的外部Web页面

 

coremod

 

播放音频.mod,.it和XM文件…这是一个自包含的音乐音序器和示例播放引擎,用于播放生成的音乐文件

它将是一个不错的插件,可作为在UE4中播放音频的附加选项  https://github.com/cmatsuoka/libxmp/

 

Crunch

 

https://github.com/BinomialLLC/crunch/

用于潜在地压缩光照贴图。

 

CryptoPP

 

提供一个加密方案的C ++类库,其中包括加密函数,哈希函数,加密安全的RNG以及其他帮助程序类,以支持加密和哈希

它使UE能够使用经过安全性测试的行业标准加密和哈希函数。 自己实现这些功能可能会导致错误,使系统容易受到攻击。

http://www.cryptopp.com/

 

DirectShow

 

PC上需要视频捕获,以使UE能够将视频捕获为avi文件格式,以便从游戏和编辑器中进行回放。

http://msdn.microsoft.com/en-us/library/windows/desktop/dd375454(v=VS.85).aspx

 

Distorm

 

Live ++使用的第三方之一。适用于x86 / AMD64的强大反汇编程序库

https://github.com/gdabah/distorm/

 

dlmalloc

 

该库全部放在一个文件中,以简化最常见的用法:

ftp,将其编译(-O3),并将其链接到另一个程序。所有的

编译时选项默认为合理值,可用于

大多数平台。您稍后可能需要逐步进行各种操作

编译时和动态调整选项。

 

为了方便起见,使用此malloc的代码的包含文件位于:

ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.6.h

除非您不调用函数,否则实际上不需要此.h文件

在系统中定义的包含文件。 .h文件仅包含

在ANSI C / C ++上使用此malloc所需的文件摘录

系统,只要您没有更改有关

命名和调整参数。如果这样做,则可以创建您的

自己的malloc.h,它通过切入点包括所有设置

如下所示。请注意,默认情况下您可能已经在使用C

包含基于此版本的malloc的库

malloc(例如在Linux中)。您可能仍想使用

在此文件中以自定义设置或避免相关的开销

与库版本。

 

DotNetZip

 

在UDK安装程序和iPhonePackager中. DotNetZip是用于处理zip文件的快速,免费的类库和工具集。使用VB,C#或任何.NET语言轻松创建,提取或更新zip文件。

https://archive.codeplex.com/?p=dotnetzip

 

Eigen

 

Eigen是一个用于线性代数的C ++模板库:矩阵,向量,数值解算器和相关算法。

用于将压缩方案应用于需要复杂矩阵运算的顶点动画

http://eigen.tuxfamily.org/index.php?title=Main_Page

 

Expat

 

为libstophe提供XML支持

为XMPP支持libstrophe需要对XML的支持。这是James Clark在C中的Expat XML解析器库。它是面向流的解析器,需要设置处理程序来处理解析器

https://sourceforge.net/p/expat/   https://github.com/libexpat/libexpat

 

Facebook

 

作为iOS的Facebook SDK的一部分,使开发人员可以访问FB社交功能。

https://github.com/facebook/FBNotifications/

 

FakeIt

 

它允许程序员创建接口或对象的轻量级“模拟”实现,可用于编写单元测试。

用于强大的单元测试。

https://github.com/eranpeer/FakeIt/

 

FBX (Autodesk FBX SDK integration code)

 

用于读取和写入FBX文件的C ++库(图形交换文件格式。)

 

ForsythTriOO

 

 

FreeImage

 

对于纹理调整大小,颜色转换。 在运行时从编辑器动态加载dll。

FreeImage是一个开源库项目,面向希望支持当今多媒体应用程序所需的流行图形图像格式(如PNG,BMP,JPEG,TIFF和其他格式)的开发人员。FreeImage易于使用,快速,多线程安全,与所有32位或64位版本的Windows兼容以及跨平台(适用于Linux和Mac OS X)。

https://freeimage.sourceforge.io/

 

FreeType2

 

Slate的字体渲染器需要这个库

FreeType 2是一种软件字体引擎,被设计为小巧,高效,高度可定制和便携式,同时能够产生高质量的输出(字形图像)。它也可以用于图形库,显示服务器,字体转换工具,文本图像生成工具以及许多其他产品。

请注意,FreeType 2是一种字体服务,不提供执行文本布局或图形处理(例如,彩色文本渲染,“凹陷”等)之类的高级功能的API。但是,它通过提供一个简单,易于使用且统一的界面来访问字体文件的内容,极大地简化了这些任务。

http://git.savannah.gnu.org/cgit/freetype/

 

glslang

 

https://github.com/KhronosGroup/glslang

Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.

 

GoogleARCore

 

允许为ARCore开发应用。

https://github.com/google-ar/arcore-android-sdk/

 

GoogleGameSDK

 

用于在Android设备上设置垂直同步速率。 链接到Android版本中包含的静态库的C ++源代码。

https://developer.android.com/games/sdk

 

GoogleInstantPreview

 

属于GoogleVRSDK相关

https://developers.google.com/vr/develop/unreal/instant-preview

 

GoogleOboe

 

Oboe是Google提供的开源兼容性包装程序,用于抽象他们两个完全不同的后端解决方案:OpenSLES和AAudio。

https://www.youtube.com/watch?v=csfHAbr5ilI&list=PLWz5rJ2EKKc_duWv9IPNvx9YBudNMmLSa

 

GooglePlay

 

Google Play Games C++ SDK

提供与Google Play游戏服务一起使用的C ++ API。

允许使用Google的登录名,成就,排行榜等在Android上开发C ++游戏。

https://developers.google.com/games/services/

 

GoogleTest

 

Google的C ++测试框架,可帮助程序员编写各种形式的测试

用于健壮的单元测试和访问Google Mock

https://github.com/google/googletest/

 

GoogleVR

 

允许开发适用于Google Daydream和Cardboard硬件的应用。

https://github.com/googlevr/gvr-android-sdk/

 

HarfBuzz

 

在UE4中为Slate中的复杂语言(例如阿拉伯语)提供文本成形支持。

https://github.com/harfbuzz/harfbuzz/

 

hlslcc

 

HLSLCC-HLSL交叉编译器

该库将HLSL着色器源代码编译为高级IR,执行与设备无关的优化,并生成GLSL兼容的源代码。 该库主要基于Mesa的GLSL编译器。 前端已被大量重写以解析HLSL并从HLSL AST生成Mesa IR。 该库利用Mesa的IR优化来简化代码,并最终从Mesa IR生成GLSL源代码。 GLSL的生成基于glsl-optimizer中的工作。

https://github.com/aras-p/glsl-optimizer

https://github.com/Unity-Technologies/HLSLcc

https://github.com/James-Jones/HLSLCrossCompiler

 

ICU

 

ICU是成熟的,广泛使用的C / C ++和Java库集,可为软件应用程序提供Unicode和Globalization支持。UE4 ship需要这个库

在UE4的核心模块中提供UE culture and internationalization API的ICU实施

htt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值