首先看UE4中的 Third-Party Libraries
UnrealEngine\Engine\Source\ThirdParty 下:
源码路径:
引擎exe的安装路径下(会发现跟源码路径是一样的):
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能够使用经过安全性测试的行业标准加密和哈希函数。 自己实现这些功能可能会导致错误,使系统容易受到攻击。
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
作为iOS的Facebook SDK的一部分,使开发人员可以访问FB社交功能。
https://github.com/facebook/FBNotifications/
FakeIt
它允许程序员创建接口或对象的轻量级“模拟”实现,可用于编写单元测试。
用于强大的单元测试。
https://github.com/eranpeer/FakeIt/
FBX (Autodesk FBX SDK integration code)
用于读取和写入FBX文件的C ++库(图形交换文件格式。)
ForsythTriOO
- Linear-Speed Vertex Cache Optimization :
用更快的导入速度(快得多的导入时间,更有效的结果)替换现有的对导入时的网格数据进行预处理的网格处理算法。
被许可方想导入大网格,并且导入时间使这个问题成为问题。
http://gameangst.com/wp-content/uploads/2009/03/forsythtriangleorderoptimizer.cpp - Tri Stripper:
生成缓存优化的三角带
可能会大大减少网格的导入时间,可能会改善渲染性能。
https://github.com/spoonless/tristripper
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实施