首先看UE4中的 Third-Party Libraries
UnrealEngineEngineSourceThirdParty 下:
源码路径:
引擎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
- 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
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
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
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/=dotnetzip
Eigen
Eigen是一个用于线性代数的C ++模板库:矩阵,向量,数值解算器和相关算法。
用于将压缩方案应用于需要复杂矩阵运算的顶点动画
http://eigen.tuxfamily.org/index.phpitle=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
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=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实施
https://github.com/unicode-org/icu/
http://www.unicode.org/
Intel
Intel Extensions Framework
UE在源文件中包含文件,然后在其中调用函数。 没有二进制文件或库(对象),只有一对标头。 与NVAPI和AMD_AGS完全相同。
IntelEmbree
高性能ray tracing光线追踪内核
加速光质量,使照明构建花费的时间大大减少
IntelISPC
ISPC是一种用于数据并行问题的语言,编译器会翻译该语言。
https://github.com/ispc/ispc/
IntelISPCTexComp
Fast ISPC Texture Compressor & ISPC Compiler
将图像压缩为各种DirectX格式,尤其是BC6H和BC7
Black Tusk / Microsoft提交代码以支持UE4中的新纹理格式
https://github.com/GameTechDev/ISPCTextureCompressor/
IntelMetricsDiscovery
这是一个INTEL库,可以访问D3D11的准确GPU时序,这将使UE能够支持INTEL硬件上的动态分辨率。
https://github.com/intel/metrics-discovery/
IntelTBB
Intel Threading Building Block
在引擎中用作优化的64位内存分配器。
https://github.com/intel/tbb/
IntelVTune
Instrumentation and Tracing Technology (ITT) API files
允许与VTune(性能分析器)增强集成。
IOS
- Bolts
facebook SDK支持库
Facebook SDK升级使用此库
https://github.com/BoltsFramework/Bolts-iOS/ - SoundSwitch
在IOSAppDelegate.cpp中实现。
https://github.com/moshegottlieb/SoundSwitch/
jemalloc
内存分配器。 内存分配器的选项之一。 静态链接库。
eMalloc 是一款内存分配器,与其它内存分配器相比,它最大的优势在于多线程情况下的高性能以及内存碎片的减少。
https://github.com/jemalloc/jemalloc
Kiss_FFT
去除高频元素/或频域中的各种滤波
http://kissfft.sourceforge.net/
libcurl
实现HTTP协议
Ship requirement. Soon enough, needed for Fortnite Linux server .
http://curl.haxx.se/docs/
libJPG
- jpeg-compressor
允许JPEG压缩和解压缩。
在运行时压缩视频帧以减少内存使用。 解压缩后再访问数据。
https://code.google.com/archive/p/jpeg-compressor/ - Jpeg Library
UE需要它,因为它是GFx中的第三方库
http://www.ijg.org/
libOpus
Audio codec
UE将其用于音频文件。 它是通过Internet进行VoIP和IP音频流的理想选择。
https://opus-codec.org/downloads/
libPhonon
游戏和虚拟现实的基于物理的音频
获得逼真的遮挡,混响和空间化技术
libPNG
无损压缩图像
http://www.libpng.org/pub/png/
libSampleRate
用于对音频资产进行下采样。
https://github.com/erikd/libsamplerate/
libstrophe
提供XMPP支持
易于修改且重量轻的XMPP库,为UE提供了支持某些平台所需的控件,并且与UE当前的XMPP库相比,其占用空间更小,更易于维护。
https://raw.githubusercontent.com/strophe/libstrophe/
libWebSockets
将来自浏览器(UE的HTML5客户端)的请求转换为UE服务器可以理解的请求
提供在线游戏等关键功能-可能是HTML5的出厂要求
https://github.com/warmcat/libwebsockets/
Linux
“libc++” C++ Standard Library
针对C ++ 11的C ++标准库的实现。
为了独立于系统C ++标准库(可能会有所不同),UE想将其静态链接
http://llvm.org/viewvc/llvm-project/libcxx/trunk/
llvm
使用Clang C ++编译器前端将代码编译为LLVM兼容的目标文件
使UE能够基于Clang开源项目尝试新的C ++技术
http://llvm.org/docs/
MCPP
将GLSL源代码预处理为紧凑的“distilled”版本
可以用于许多其他目的
http://sourceforge.net/projects/mcpp/
MCPP是便携式C / C ++预处理器,支持GCC,Visual C ++等。其源代码是高度可配置的,并且可以生成各种规格的可执行文件。它带有一个验证套件,可以详尽地检查预处理器的一致性和质量。
MikkTSpace
- ComputingTangentSpace
Computing TangentSpace without explicit storage by Morten S. Mikkelsen
节省性能和内存 http://mmikkelsen3d.blogspot.com/2011/07/derivative-maps.html
mimalloc
可配置的内存分配器,由UE4核心库用作选项,以提高性能和降低内存使用量.C代码与核心库静态链接。
https://github.com/microsoft/mimalloc/
mtlpp
通过将Metal提供的Objective-C类与本机C ++类包装在一起,从而为Metal提供C ++接口。 使用此方法而不是直接调用Metal可以避免Objective-C的复杂性,并将扩展mtlpp代码以在C ++包装器中执行数据和功能指针的缓存,从而避免不必要地调用Objective-C并最大程度地减少开销。
https://github.com/naleksiev/mtlpp/
NVIDIA
- NVaftermath
GPU崩溃诊断
修复用户的GPU崩溃 - nvapi
允许在功能强大的显示器上显示Nvidia显卡的3D图像
nvtesslib
- nvTessLib
为PN-AEN细分生成具有邻接信息的索引缓冲区 - PN-AEN
提供邻接信息,该信息随后用于在DX11中渲染无裂纹位移映射
nvTextureTools
- FastTextureCompression
将纹理压缩到BC7
BC7是可用于DX11类GPU的质量更高的纹理压缩方法。
https://software.intel.com/en-us/articles/fast-texture-compression-sample - NVIDIAnvDXT
在SHTools中将纹理压缩为更优化的格式
http://developer.nvidia.com/object/nv_texture_tools.html
nvTriStrip
重新排列模型中的顶点,以便其更快地渲染。
Oculus
LibOVRAudio, LibOVRAvatar, LibOVRPlatform, OVRPlugin
https://developer3.oculus.com/
Ogg
Ogg Vorbis Audio Compression
在引擎中播放声音
OneSky
OneSky将为我们的内部翻译人员提供多种工具,无需额外费用即可使用
50多种语言,1,000多个翻译器,1个平台 -完整的本地化解决方案。
OpenAL
在音频设备上提供跨平台抽象。
在开发过程中,我们还以某种方式编译HTML5平台,使其在浏览器外部的Windows上运行,为此,我们需要复制浏览器/ html5工具链提供的某些功能。
https://github.com/kcat/openal-soft/
openexr
OpenEXR 2.3.0 + IlmBase 1.0.3
提供对ILM的OpenEXR图像格式的支持。 它允许加载和保存压缩的无损全范围HDR图像。
对于电影后期处理/过场动画非常有用。
http://www.openexr.com/
OpenGL
渲染API的接口,该接口在PC以外的平台上使用(但也可以在PC上使用)
OpenSSL
OpenSSL是libcurl使用的可选库
https://www.openssl.org/source/
OpenSubdiv
OpenSubdiv是一组开源库,可在大规模并行CPU和GPU架构上实现高性能细分表面(subdiv)评估。
将作为Geo 2.0的参考和起点。
http://graphics.pixar.com/opensubdiv/docs/
OpenVR
Valve的OpenVR SDK-SteamVR的API,包括其HMD和控制器以及对DK2的支持等。
我们需要支持SteamVR硬件。
https://github.com/ValveSoftware/openvr/
OpenXR
OpenXR在我们的OpenXR插件中提供了跨供应商的API,以通过一个插件就可以使用多种VR和AR平台。
https://github.com/KhronosGroup/OpenXR-SDK/
Perforce
它用于通过C或C ++与Perforce进行通信
http://www.perforce.com/perforce/doc.current/manuals/p4api/02_clientprog.html
https://swarm.workshop.perforce.com/projects/perforce-software-p4api-net/files/main/
PhysX3
As a physics engine inside our engine
PLCrashReporter
Mac OS X 和 iOS 的进程中多线程崩溃重新编码和符 化。
Our naive signal handler crash reporting is insufficient for Darwin platforms (OS X & iOS), ,它不能记录所有崩溃,并且无法收集堆栈溢出和其他错误的正确 告详细信息,这些错误需要信 在提升线程以外的线程上处理,不幸的是,这些错误很常见
portmidi
允许内容创建者使用标准的现成的 Midi 硬件在运行时调整 UE4 中任何 Object 的任何数字属性
它比 Windows Midi API 更简洁、更容易理解 API,并且为输入缓冲区溢出等提供了一些自动恢复功能
https://sourceforge.net/projects/portmedia/
Python
Python 解释器和标准库,用于使用 Python 进行开发。
https://docs.python.org/2.7/
Qualcomm
好像只用到了压缩纹理
https://developer.qualcomm.com/software/adreno-gpu-sdk/tools
rd_route
为UE提供了将系统功能与一个实现”hook”或”interpose”的能力。通常,这不是必需的,但因为UE想用UE自己的替换全局分配器,在苹果的CFNetwork库中有一个系统功能,UE必须替换,没有UE的实现或引擎将崩溃。
https://github.com/rodionovd/rd_route/
RenderDoc
图形调试器、可视化和探查器
为 RenderDoc dlls 提供 API 层
https://github.com/baldurk/renderdoc/
rpclib
https://github.com/rpclib/rpclib
允许 UE4 公开与语言无关的远程过程调用,供外部客户端用于机器学习目的。
SDL2
跨平台库抽象音频、视频和输入
Linux 客户端必需
http://www.libsdl.org/
ShaderConductor
- SPIRVTools
SPIRV 工具包含在着色器导体阴影导体导体中,是一种用于将 HLSL 交叉编译为其他着色语言的工具
https://github.com/KhronosGroup/SPIRV-Tools/ - SPIRVHeaders
SPIRV 标题包含在着色器导体阴影导体导体中,是一种用于将 HLSL 交叉编译为其他着色语言的工具
https://github.com/KhronosGroup/SPIRV-Headers/ - SPIRVCross
SPIRV 十字包含在着色器导体阴影导体导体中,是一种用于将 HLSL 交叉编译为其他着色语言的工具 - NinjaBuild
非 Windows 平台上的生成过程取决于 “ninja” 生成系统
https://github.com/ninja-build/ninja/ - GoogleTest
谷歌测试在着色器检测器中使用。着色器 它是一种工具,用于将 HLSL 交叉编译为其他着色语言
https://github.com/google/googletest/ - DirectXShaderCompiler
DirectXShaderCompiler 在着色器导电器中使用。着色器 它是一种工具,用于将 HLSL 交叉编译为其他着色语言
https://github.com/Microsoft/DirectXShaderCompiler - cxxopts
cxxopts 在着色器中使用。着色器 它是一种工具,用于将 HLSL 交叉编译为其他着色语言
https://github.com/jarro2783/cxxopts/
SpeedTree
https://store.speedtree.com/ue4/
SPIRV-Reflect
SPIRV-Reflect为SPIRV着色器提供了一个反射API,在ShaderCompileWorker / Editor中使用SPIRV-Reflect来解析SPIRV着色器接口并修复资源绑定位置,然后转换为与Direct3D具有不同绑定要求的Metal / GLSL着色器
Steamworks
用于连接Steamworks平台的SDK
支持要与UE一起使用Steam的被许可人
http://store.steampowered.com/subscriber_agreement/
Tencent
- WeGame
WeGame的身份验证, 交和商业功能作为新的OnlineSubsystem UE module/plugin。
VHACD
将三重 格分解为凸包近似以进行碰撞
目前,我们使用的HACD效果不佳,这是一个改进。
Vivox
语音聊天中间件
为UE4提供跨平台语音聊天
Vorbis
- VorbisQualityImprovements
提高vorbis音频压缩的质量
用作libvorbis的一部分
http://www.geocities.jp/aoyoume/aotuv/
Vulkan
Vulkan是具有自己的驱动程序的渲染接口,UE现在支持该接口。 我们仅使用Vulkan C ++标头。
https://vulkan.lunarg.com/software/
WebRTC
与XMPP服务器进行实时通信,这是我们所有游戏以及启动器中 交功能所必需的
http://www.webrtc.org/
Windows
D3DX12
DirectSound
DirectX
DirectXLegacy
DX11
DX12
DX9
glTF-Toolkit
PIX
VisualStudioDTE
WinHttp
WinInet
XAudio2_9
XInput
WindowsMixedRealityInterop
Windows平台混合现实
WiX
用于在Windows平台上创建UE4 .msi安装程序
http://robmensching.com/blog/
xxhash
https://github.com/Cyan4973/xxHash
极快的非密码哈希算法
zlib
引擎和其他几个第三方项目使用的压缩库
http://www.zlib.net/
UnrealEngineEngineBinariesThirdParty 下:
ANGLE
AppLocalDependencies
DirectXRedist
ucrt
VC140.CRT
VC141.CRT
WinDbg
ARM
ASTC Evaluation Codec command line tool
用于将纹理编码为ASTC格式,这是最新的Android设备支持的新标准。
由于其尺寸和质量优于其他格式,因此很高兴为Android支持ASTC。
http://malideveloper.arm.com/odals=astc-evaluation-codec
AWSSDK
提供客户端API,以使用.NET Framework与Amazon Web Services通信。
为了将构建系统连接到S3,以便在升级过程中可以将分块的数据复制到S3。
https://github.com/aws/aws-sdk-net/
CEF3
DbgHelp
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (WinDbg)
Engine/Binaries/ThirdParty/DbgHelp/dbghelp.dll
用于从minidump中检索调用堆栈。
FreeImage
glslang
GoogleInstantPreview
ICU
ImgTec
PVRTexTool
在PC上将纹理转换为iPhone格式
https://community.imgtec.com/developers/powervr/
IntelISPCTexComp
Ionic
IOS
- Bouncy Castle
使用各种加密协议和标准的C#API。
http://www.bouncycastle.org/
libSampleRate
用于采样率转换
http://www.libpng.org/pub/png/src/
libsndfile
处理和解码许多声音文件格式,包括ogg,flac,aiff,au等
新的音频引擎工作,更好地支持多种文件格式,实现更简单
http://www.mega-nerd.com/libsndfile/
MCPP
Mono
Mono Runtime
它用于在Unix系统上运行用C#编写的软件
一些UE4工具是用C#编写的(例如UnrealBuildTool和UrealAutomationTool),我们希望用户能够在不手动安装Mono的情况下运行它们
NETDiscUtils
.NET DiscUtils
.NET库,方便创建.iso文件
将用于在构建服务器场上创建光盘映像,以使用自动化方式运送游戏。
http://discutils.codeplex.com/SourceControl/
Newtonsoft
.NET中的JSON序列化/反序列化
在C#自动化代码中对JSON MCP响应进行健壮和快速的序列化/反序列化。 其他解决方案具有局限性,例如在将新字段添加到响应时引发错误,因此该库提供了鲁棒性。 它现在也是事实上的.NE
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!