3Dライブラリ

3Dライブラリは、3DCGソフトウェアや3D CAD、ゲームエンジンなどの3D関連プログラムに良く用いられているソフトウェアライブラリである。ここでは、テクスチャなどの3Dに付随する2Dライブラリについても解説する。

1. 3Dグラフィクスライブラリ
----------------

3Dグラフィクスライブラリは、3Dを表示するために必要なライブラリである。OS及びカーネルドライバを通してGPUレンダリングを行う時だけでなく、GPUを使わずにソフトウェアレンダリングする時にも使われる。

1.1. ラスタライズベース
--------------

Windows SDK Direct3D APIに対応するWindows用の開発キット。昔はDirectX部分がDirectX SDKとして分離されていた。 macOS SDK OpenGL、Metal APIに対応するmacOS用の開発キット。 Mesa 3D OpenGL、OpenGL ES、Vulkan、Direct3D 9 API、OpenCLに対応するライブラリ集及びツール。Unix系OSで良く使われているがWindowsにも対応している。ソフトウェア実装のllvmpipeも実装されている。 かつてはIntelのソフトウェア定義可視化構想の一環として開発されたソフトウェア実装のSWR  も搭載されていた。

1.1.1. ソフトウェアラスタライザ
-------------------

1.1.2. 補助ライブラリ
--------------

1.1.3. 大域照明  ライブラリ
----------------------

Enlighten  リアルタイムGIミドルウェア。Unreal Engine用のものが提供されている。以前はUnityに標準搭載されていた。 NVIDIA VXGI  リアルタイムGIミドルウェア。ボクセルコーントレーシングを実装している。iClone 7以降に搭載されているほか、Unreal EngineのVXGI統合ブランチが公開されている。 RTXGI SDK  Nvidia RTXを使ったDynamic Diffuse Global Illumination  実装。 KICKSTART RT SDK  Direct3D 11までなどのレイトレーシングAPI未対応の古い環境でレイトレーシングを行うための実装。 Beast  リアルタイムGIミドルウェア。Autodesk Stingrayに標準搭載されていた。販売終了。

1.1.4. 直接照明  ライブラリ
----------------------

NVIDIA RTX Direct Illumination  SDK - Nvidia RTXを使って多光源を処理するライブラリ。

1.1.5. 環境遮蔽 ライブラリ
---------------------

なお、DirectX 10.1のSDKには、AMDの開発したHDAO  のサンプルが付属していた。

NVIDA ShadowWorks - 「HBAO+」 を実装している。
NVIDIA VXAO - 「VXAO」を実装している。NVIDIA VXGIの一部。
Adaptive Screen Space Ambient Occlusion - Intelが開発している。DirectX 11対応。オープンソース。実装の詳細は書籍「GPU Zen」に記載されている。
XeGTAO - Intelが開発している「GTAO」実装。

1.1.6. 遮蔽カリングライブラリ
------------------

Umbra  遮蔽カリングに特化したミドルウェア。旧dPVS。Unity及びUnreal Engineに対応していた。販売終了。

1.1.7. その他
----------

SpatiotemporalBlueNoiseSDK  - 時空間ブルーノイズの生成ライブラリ。
NVIDIA Reflex SDK - 低遅延化のためのライブラリ。

1.2. レイトレーシングベース
----------------

レイトレーシングに向けた汎用計算パイプラインのものとレイトレーシング/ラスタライズのハイブリッドレンダリングに向けたグラフィックパイプラインのものが存在する。レイトレーシング専用のものは以下となっている：



1.2.1. レイトレーシングコアライブラリ
----------------------

レイトレーシングの交差判定に特化したライブラリ。標準APIには、Khronos GroupのOpenRL及びVulkan拡張のVK_KHR_ray_tracing、DirectX 12以降のDirectX Raytracing 、Metal 2のMetal Performance Shaders のray intersectorなどがある。

Embree - Intelが開発を支援している。オープンソース。Apacheライセンス。
Radeon Rays  - 旧AMD FireRays。オープンソース。MITライセンス。VulkanとDirectX 12に対応している。
HIP-RT  - HIPベースのレイトレーシングライブラリ。AMD及びNVIDIAのGPUに対応。
NVIDIA OptiX - NVIDIAのGPU用。OptiX APIとOptiX Prime APIがある。6.0でNvidia RTXによるアクセラレーションに対応した。
PowerVR OpenRL SDK - PowerVR用のOpenRL実装。開発終了。

1.2.2. レイトレーシングレンダリングライブラリ
--------------------------

レイトレーシングコアライブラリ等を使ってレイトレーシングレンダリングを行うためのライブラリ。

OSPRay - Intelが開発を支援している。オープンソース。Apacheライセンス。
Radeon ProRender SDK  - AMDが開発を支援している。オープンソース化予定。
NVIDIA Iray SDK
PowerVR Brazil SDK - 開発終了。
REDsdk - Redway3D製。

1.2.3. その他
----------

Intel Open Path Guiding Library - パストレーシングの高速化に使われるPath Guidingの実装の一つ。オープンソース。Apacheライセンス。

1.3. ノイズ除去ライブラリ
---------------

多くはマルチパスにも使われている。



1.3.1. モンテカルロ・レイトレーシング向け
------------------------

NVIDIA OptiX AI-accelerated denoiser - NVIDIA OptiX 5.0以降に含まれている。機械学習ベース。多くのレンダリングソフトウェアに搭載されている。
NVIDIA Real-Time Denoisers SDK
Intel Open Image Denoise - 略称ODIN。機械学習ベースであり、Intel MKL-DNNライブラリを使用している。オープンソース。Apache License 2.0。多くのレンダリングソフトウェアに搭載されている。
AMD Radeon Image Filter Library - 機械学習ベース。
Bayesian Collaborative Denoiser  - 非局所ベイジアンフィルタベースであり分布と共分散を使用する。BSDライセンス。appleseed 1.9以降やLuxCoreRender 2.1以降に搭載されている。開発停止中。
Altus SDK - InnoBright製。二組のレンダリング結果を使用してデノイズを行う。ツール版も存在した。AltusはMaxwell Render、Guerilla Render、Redshiftなどに搭載されている。販売停止中。

1.4. ポストエフェクトライブラリ
------------------

AIによる超解像度はダウンスケーリングと組み合わせることでアンチエイリアスの代わりとしても使われている。ダウンスケーリング側にもAIを使うシステムも存在する。



NVIDIA NGX - 機械学習ベースのインペイント、スローモーション、アップスケーリングが含まれている。
AMD FidelityFX - Content Adaptive Sharpeningが含まれている。MITライセンス。DirectX 12とVulkanに対応。高速MIPマップ生成用のFidelityFX Single Pass Downsampler  、アップスケーリング用のFidelityFX Super Resolution  、ノイズ除去のFidelityFX Denoiserもある。
NVIDIA Image Scaling SDK - アップスケーリング用。MITライセンス。
YEBIS  - ポストエフェクトミドルウェア。Substance Designer/Painterなどで使われていた。
ReShade - インジェクションベースのポストエフェクトライブラリ。既存のソフトウェアに使用できる。オープンソース。BSDライセンス。

1.4.1. 開発停止中
------------

NVIDIA PostWorks - DirectX 11向け。時間的アンチエイリアシングのNVIDIA TXAA及び被写界深度エフェクトが含まれていた。レガシー。

2. 互換レイヤー
---------

OSやWeb環境によって対応するグラフィックAPIが異なるため互換レイヤーが存在する。なおグラフィックAPIだけでなくOSレベルの互換レイヤーを用意するものもある 。



MoltenVK  Metal環境上のVulkan API実装。オープンソース。Apache License 2.0。 DXVK Vulkan環境上のDirect3D 9/10/11 API実装。オープンソース。zlibライセンス。d9vkを統合した。Protonなどで使われている。 vkd3d Vulkan環境上のDirect3D 12 API実装。オープンソース。LGPLライセンス。ProtonやWineなどで使われている。 DXGL OpenGL環境上のDirectX 1〜7 API実装。オープンソース。LGPLライセンス。 ANGLE  Direct3D 9/11、OpenGL、Vulkan、Metal環境上のOpenGL ES API実装であり、主にブラウザのWebGL実装に使われている。オープンソース。BSDライセンス。コンパイラ部分は3Dlabsのオープンソース実装を基にしている。Windows版Google ChromeやFirefoxで使われている。 MojoShader HLSLのバイトコード やDirectXアセンブリをGLSLシェーダーやARBアセンブリ、Metalシェーダーなどに変換するライブラリ。Shader Model 1.x から3 まで対応している。Unreal Tournament 3などのゲームやUnityなどのゲームエンジンで使われている。オープンソース。zlibライセンス。 dgVoodoo2 Direct3D 11/12環境上のGlide 1〜3.1 API/DirectX 1〜7 API/Direct3D 8〜9 API実装。プロプライエタリ。 D3D11On12 / D3D9On12  Direct3D 12環境上のDirect3D 11 API実装およびDirect3D 9 API実装。オープンソース。MITライセンス。両者の共通部分もD3D12 Translation Layerとしてオープンソース化されている。

2.1. 開発停止中
----------

dxup Direct3D 11環境上のDirect3D 9/10 API実装。DXVKと組み合わせてVulkan環境上で動かすこともできた。 hlsl2glslfork Direct3D 9時代のHLSLシェーダーをGLSL/GLSL ESシェーダーに変換するライブラリ。ATI Technologiesによって開発されたHLSL2GLSLをフォークしたもの。オープンソース。以前Unityで使われており、Unity Technologiesにより開発が継続されていたが、現在、開発がメンテナンスモードとなっている。 ToGL  OpenGL環境上のDirect3D 9.0c APIサブセット実装。HLSLのバイトコード  をGLSLシェーダーへと変換する。オープンソース。Dota 2で使われていた。

3. フレームワークライブラリ
---------------

フレームワークには低レイヤーなものと、シーングラフベースのものがある。

3.1. 低レイヤー
----------

Microsoft DirectX Windows用のゲーム及びマルチメディア向けAPI集。グラフィクス用のDirect2D及びDirect3D、入力用のXInput 、3Dサウンド用のX3DAudio などのコンポーネントを含んでいる。またDirectX 12で機械学習用のDirectMLも追加された。 シーングラフには非対応。3Dモデル用の.x形式やエフェクト用のDirectX effect形式 などは存在したが、現在それらは非推奨となっている。 NVRHI  Direct3DとVulkanの抽象化レイヤー。 Intermediate Graphics Library  OpenGL/Vulkan/Metalの抽象化レイヤー。

3.2. シーングラフベース
--------------

AppleのmacOSやiOSに搭載されているシーングラフベースの3Dライブラリ。言語はObjective-C。 Qt 3D Qtに含まれる3Dライブラリ。オープンソース。シーングラフはXMLベースのQML形式。 Open Inventor OpenGL向けのシーングラフを中心としたライブラリ。オープンソース。 OpenSceneGraph OpenGL向けのシーングラフを中心としたライブラリ。オープンソース。 シーングラフはOpenSceneGraph形式 。 Java 3D Java環境向けのシーングラフを中心としたAPI。 Universal Scene Description Pixarの開発するシーングラフを中心としたライブラリ。オープンソース。Katana 3.0以降やHoudini 18以降のSolarisで使われている。 シーングラフはUniversal Scene Description形式 。 VTK シーングラフのvtkViewNodeを持っている。ParaView、OsiriX、3DSlicerなどに使われている。オープンソース。BSDライセンス。

3.3. Web向けフレームワークライブラリ
----------------------

現在では汎用ゲームエンジンもWebGLに対応してきている 。物理演算ライブラリについては、3Dライブラリ#WebGL用物理演算ライブラリを参照。

3Dモデル形式については、クロノス・グループで標準化されているglTF形式が一般的となっている。



3.3.1. PBRシェーダー対応
-----------------

three.js WebGLだけでなく、CanvasやSVG、CSS3によるレンダリングにも対応している3Dエンジン。 マイクロソフトの開発者を中心として開発されているWebGL向け3Dエンジン。3ds Max、Blender、Cheetah3D、Unity用のエクスポータープラグインも提供している。 PlayCanvas Engine  Mozilla Foundationと提携するPLAYCANVASによって開発されたWeb向けゲームエンジン。オープンソース。 luma.gl  データ可視化向けWebGLフレームワークの一つ。PhiloGLの後継。ライセンスはMITライセンス。

3.3.2. PBRシェーダー未対応
------------------

WebGL向け3Dエンジン。Away3D TypeScriptの後継。Apache License 2.0。元々Flash用3DライブラリであるPapervision3D の派生としてAway3Dが開発され、その後Webブラウザ向けのAway3D TypeScriptが作られた。

3.3.3. 開発停止中
------------

OpenSceneGraph類似のWebGL向けフレームワーク。 シーングラフは独自のosgjs形式であり、OpenSceneGraph形式を取り込むにはOpenSceneGraph osgjs pluginによる変換が必要だった。MITライセンス。Sketchfabで使われていた。開発中止。 xeogl  旧xeoEngine。SceneJSの後継。階層構造のSceneJSと異なり、xeoglは構成要素のグラフ構造となっている。3D可視化向けであり、BIMデータ可視化のBIM Surferで使われている。開発停止中。

4. ジオメトリ操作
----------

これらライブラリは、ジオメトリの操作に使われている。

4.1. ジオメトリ形状モデリングカーネル
---------------------

ジオメトリ形状モデリングカーネルは、NURBS等の複雑なプリミティブを表現するために使われるライブラリであり、特に3D CADで重要となる。

4.2. ジオメトリ処理ライブラリ
-----------------

CGAL - ジオメトリ処理ライブラリ。3Dブーリアンにも対応している。オープンソース。GPLライセンス 。
libigl - ジオメトリ処理ライブラリ。3Dブーリアンにも対応している。オープンソース。MPLライセンス 。
OpenMesh - ポリゴンメッシュの処理に向けたライブラリ。オープンソース。BSDライセンス。OpenFlipperなどに使われている。
GNU Triangulated Surface Library - 略称GTS。三角メッシュの処理に特化したライブラリ。Graphvizのグラフビューアであるsmyrnaツールに使われている。
VCG Library - MeshLabに使われている。オープンソース。GPLライセンス。

4.2.1. 3Dブーリアンライブラリ
-------------------

Carve - Mayaに使われている3Dブーリアンライブラリ。Blenderにも使われていた。オープンソース。MITライセンス。
Cork Boolean Library - 3Dブーリアンライブラリの一つ。オープンソース。LGPLライセンス。

4.2.2. メッシュ生成ライブラリ
------------------

TetGen - 四面体メッシュ生成プログラム。AGPLライセンス。

4.3. 再分割/テッセレーションライブラリ
----------------------

OpenSubdiv - Pixarの支援する再分割ライブラリ。オープンソース。Apacheライセンス。

4.4. プラグインライブラリ
---------------

Open Mesh Effect - OpenFXベースの3DメッシュエフェクトAPI。

5. ファイル入出力ライブラリ
---------------

これらのライブラリは、異なる3Dソフトウェア間でファイルをやり取りする時などに使われている。

5.1. シーン形式
----------

FBX SDK - Autodesk製品を始め、多くの3DCGソフトウェアで使われているFBX形式  用の公式ライブラリ。Autodesk製。
OpenCOLLADA - 多くの3DCGソフトウェアで使われているCOLLADA形式  用の公式ライブラリ。オープンソース。MITライセンス。
COLLADA DOM - COLLADA形式  用のライブラリ。Sony Computer Entertainment製。オープンソース。MITライセンス。
FCollada - COLLADA形式  用のライブラリ。Feeling Software製。ディスコン。
Python Computer Graphics Kit - Maya ASCII 形式などのインポートや、RIB形式などへのエクスポートに対応するPythonモジュール。オープンソース。最終更新は2013年リリースの2.0.0。

5.2. 3Dモデル形式
------------

Crosswalk SDK - Softimageや一部のゲームエンジンで使われていたdotXSI形式  用の公式ライブラリ。Autodesk製。ディスコン。
lib3ds - 古い3ds Maxで使われていた3ds形式 用のライブラリ。オープンソース。LGPLライセンス。
tinyobjloader - 多くの3DCGソフトウェアで使われているobj形式 及びmtl形式  用のライブラリ。オープンソース。MITライセンス。
Open Asset Import Library  - 様々な3Dモデル形式に対応するライブラリ。オープンソース。BSDライセンス。
Houdini Engine - Houdiniで使われているHoudini Digital Asset形式 用のインポートライブラリ。
cgltf - glTF形式に対応するシングルヘッダーライブラリ。MITライセンス。
Microsoft glTF SDK - glTF形式に対応するライブラリ。オープンソース。MITライセンス。
dime - DXF形式の入出力に対応するライブラリ。DXF2papercraftに使われている。

5.2.1. 3Dモデル圧縮
--------------

OpenCTM - zlibライセンス。LZMA圧縮を使用している。形式はOpenCTM形式 。
Open3DGC - MITライセンス。MPEG-SC3DMCコーデックの実装の一つ。glTF形式で使えるようになる予定だったが、Dracoに置き換えられた。
Draco  - Apache License 2.0。glTF形式  及びUSD形式で使うことができる。
meshoptimizer - MITライセンス。glTF形式  で使うことができる。

5.2.2. マテリアル形式
--------------

Substance Engine - Substance Designerで使われているマテリアル形式 用のインポートライブラリ。

5.3. 3D CAD形式
-------------

openNURBS SDK - Rhinocerosやその他の3D CADソフトウェアで使われているopenNURBS形式 用の公式ライブラリ。Robert McNeel & Associates製。オープンソース。
IfcOpenShell - 3D CADソフトウェアで使われている Industry Foundation Classes形式 用のライブラリ。オープンソース。LGPLライセンス。

5.4. パーティクル形式
-------------

Partio - 様々なパーティクル形式に対応するライブラリ。オープンソース。BSDライセンス。Maya PDA/PDB/PDC形式、RenderMan PTC形式、Houdini GEO/BGEO形式、Real Flow BIN形式、Krakatoa PRT形式、PTS形式などに対応している。LightWave 2020以降などに使われている。

5.5. キャッシュ形式
------------

Alembic - Alembic形式 用のライブラリ。オープンソース。BSDライセンス。Sony Pictures Imageworks及びILMが共同で開発した。

5.6. マルチパス画像
------------

OpenEXR  - 3DCG向けの画像形式であるOpenEXR形式 用のライブラリ。OpenEXR形式は、浮動小数点数で表された色だけでなく、後処理に必要な深度パス、オブジェクトIDなどの付随情報を含めることが出来る。

5.7. テクスチャ形式
------------

Ptex - UV不要なPtex形式  用のライブラリ。Walt Disney Studiosが開発を支援している。オープンソース。BSDライセンス。
Oodle Texture  - テクスチャ圧縮向けSDK。BC1、BC3-BC7圧縮のレート歪み最適化に対応している。
OpenImageIO - レンダラーなどの3Dパイプラインに特化した画像入出力ライブラリ。MIPMAPにも対応する効率的なキャッシュを備えている。多くの3DCGソフトウェアがこのライブラリを使用している。
bcdec - BC1-7形式のデコードに対応したヘッダーオンリーライブラリ。OpenImageIO 2.4.4以降に使われている。
NVIDIA Texture Tools  - NVIDIAのテクスチャSDK。2はオープンソースとなっていた。Unreal EngineやBlender 2.46以降に使われている。

5.7.1. 開発停止中
------------

libsquish - DXT 1/3/5形式  に対応したライブラリ。OpenImageIO 2.4.4より前に使われていた。

6. シェーダーおよびマテリアルライブラリ
---------------------

liboslc/liboslquery/liboslexec  - Open Shading Language  シェーダー用のライブラリ。オープンソース。ライセンスはBSDライセンス。
NVIDIA MDL SDK - MDL  マテリアル定義用のライブラリ。2018年に一部がオープンソース化され、2022年に全てがオープンソース化された。BSDライセンス。MDLは一つの記述でリアルタイムとパストレーシングレンダリングの両方に対応する。
MaterialX  - オープンソースのマテリアル交換用ライブラリ。当初ILMが開発した。MaterialX形式からGLSLシェーダーやOSLシェーダーを生成するためのShaderXが統合された。

7. ボリュームライブラリ
-------------

OpenVDB  - OpenVDB形式 の入出力及び操作に対応するライブラリ。オープンソース。GPU対応のNanoVDB実装がNVIDIAより提供された。
NVIDIA GVDB Voxels - GPU向けの疎ボクセルライブラリ。オープンソース。NanoVDBへの変換コードが用意されている。
OpenVKL - Intel製のボクセルレンダリングライブラリ。
Field3d  - Field3d形式 の入出力に対応するライブラリ。オープンソース。

8. 運動学ライブラリ
-----------

iTaSC - オープンソース。Blender 2.5以降で使われている。
IKinema RunTime  - フルボディIKに対応する。modo 601以降に使われていた。開発終了。
Autodesk HumanIK  - フルボディIKに対応する。Mayaで使われている。販売終了。
OpenRAVE - 解析的IKソルバーのIKFastを含んでいる。オープンソース。LGPLライセンス。

9. 物理演算ライブラリ
------------

Open Dynamics Engine 略称ODE。オープンソース。LGPL及びBSDのデュアルライセンス。SoftimageやHoudiniなどが対応していた。現在HoudiniはODEを非推奨としている。Python言語向けのPyODEもあり、心理学実験向けツールキットのPyEPLがそれに依存していた。 Bullet オープンソースの物理エンジン。3.xでGPUパイプラインやRobot Operating SystemのURDF形式に対応した。多くの3DCGソフトウェアやプラグインが採用している。強化学習などに向けたPyBulletも付属している。 Havok Physics  物理エンジン。3ds Max及びMaya用のプラグインがあった。開発終了。 PhysBAM マルチフィジクスシミュレーションライブラリ。開発停止中。 NVIDIA PhysX  旧GameWorks PhysX。マルチ物理エンジン。GPUによる剛体演算に対応している 。3ds Max、Maya、Softimageの物理演算のバックエンドに使われているほか、3ds Max及びMaya用のDCCプラグインが存在する。 PhysX SDKの他にAPEX SDKを含んでいたが、PhysX Destruction/Clothing/Particlesは非推奨となった。5.0で有限要素法に基づく可変形物体物理に対応した。5.1でオープンソース化され、流体シミュレーションのNVIDIA Flowが統合された。 NVIDIA FleX  PBDによるパーティクルベースのマルチ物理ライブラリ。 NVIDIA Blast  破壊シミュレーションライブラリ。 NVIDIA Cloth  クロスシミュレーションライブラリ。 FEMFX  有限要素法に基づく可変形物体物理ライブラリ。MITライセンス。Unreal Engine向けプラグインもある。

9.1. 機械学習向け物理ライブラリ
------------------

上記のBulletも参照。

Brax  機械学習向けフレームワークJAXを基にした物理ライブラリ。 Isaac Gym  強化学習向けの物理ライブラリ。 MuJoCo  独自の凸ガウス原理を利用した物理ライブラリであり、OpenAIのGymで強化学習に使うことが可能となっている。

9.2. 多体動力学シミュレーション
------------------

MBDyn オープンソースの多体動力学シミュレーションソフトウェア。MBDynをバックエンドに用いたBlender用アドオンとして、BlenderAndMBDynが存在する。

9.3. 流体シミュレーション
---------------

MantaFlow  流体シミュレーションライブラリ。FLIP法およびAPIC法に対応している。GPLライセンス。古い流体シミュレーションライブラリであるEl'beemの開発者Nils Thuereyが、MantaFlowの開発に参加している。Blender 2.82以降がMantaFlowを採用している 。 PhiFlow  偏微分方程式求解ライブラリであり、機械学習ベースの流体シミュレーションに対応している。MITライセンス。 SPlisHSPlasH  パーティクルベースの流体シミュレーションライブラリ。SPH法に対応している。MITライセンス。LightWaveプラグインのDeep Rising FX 3.0で使われていた。 Wavelet Turbulence  気体流体用のハイレゾディテール化ライブラリ。GPLライセンス。Blenderが使用していた。

9.4. 海洋シミュレーション
---------------

NVIDIA WaveWorks 

9.5. WebGL用物理演算ライブラリ
--------------------

Ammo.js BulletをEmscriptenでJavascript及びWebAssemblyに変換したもの。zlibライセンス。PlayCanvas Engineやthree.jsやBabylon.jsがAmmo.jsとの連携に対応している。 Oimo.js OimoPhysicsをJavascriptに移植したもの。MITライセンス。Babylon.jsがOimo.jsとの連携に対応している。 Cannon.js Javascriptで書かれた物理エンジン。MITライセンス。three.jsとammo.jsの影響を受けている。Babylon.jsがCannon.jsとの連携に対応している。

9.5.1. 開発停止中
------------

Energy.js Babylon.jsがEnergy.jsとの連携に対応している。 uranium.js BulletをEmscriptenでJavascriptに変換したもの。Blender4Webで使われている。

10. ヘア及びファーミドルウェア
-----------------

NVIDIA HairWorks  ゲーム向けミドルウェア。3ds Max及びMaya用のNVIDIA HairWorks Pluginsが用意されている。 AMD TressFX  ゲーム向けミドルウェア。オープンソース。MITライセンス。Maya用のエクスポートプラグインが提供されている。

11. AIライブラリ
-----------

Havok AI Havokに含まれるNavigation Meshライブラリ。 Recast & Detour オープンソースのNavigation Meshライブラリ。ZLibライセンス。Blenderが使用していた。これを使ったミドルウェアとして、Unity用のRecastUnityが存在する。 NavPower  Navigation Meshライブラリ。 PathEngine SDK  Navigation Meshライブラリ。 Autodesk Navigation  Autodesk Gamewareの一つ。Navigation Meshミドルウェア。旧Kynapse。Autodesk Stingrayに標準搭載されている。販売終了。

12. 機械学習向けグラフィクスライブラリ
---------------------

機械学習向けの低レベルAPIとしてはDirectX 12以降がDirectML APIを備えており、MetalもMPSCNNを備えている。

TensorFlow Graphics TensorFlowベース。 TensorFlow 3D  TensorFlowベース。 MediaPipe  Kaolin  PyTorchベース。 PyTorch3D  PyTorchベース。 PyTorch Geometric PyTorchベース。

13. UIライブラリ
-----------

13.1. 3D UI対応のUIライブラリ
---------------------

3D UIはUI部品などに深度を持つことができる。3D UIは特にVRで重要となる。

uGUI  Unityに使われているUIライブラリ。オープンソース。MITライセンス。

13.2. 2D UIのみ対応のUIライブラリ
-----------------------

DirectXやOpenGLなどの3Dパイプラインに対応する2D UI向けライブラリ。一部ライブラリは、RTT により、2D UIを3D空間へ投影することも可能となっている。

CEGUI DirectX、OpenGLの他、オープンソースゲームエンジンのOgre3D、Irrlicht Engineに対応している。オープンソース。MITライセンス。GUIエディターとしてCEEDがある。 MyGUI Ogre3Dに対応するUIライブラリ。オープンソース。MITライセンス。 ImGui DirectX、OpenGL、Vulkan等に対応している。オープンソース。MITライセンス。 dat.GUI Javascript用。オープンソース。Apacheライセンス。three.jsにも付属されている。Googleの従業員により開発された。 AntTweakBar DirectX及びOpenGL用。オープンソース。zlib/libpngライセンス。マルチメディアライブラリのCinderがAntTweakBarを採用していた。開発停止中。

13.3. Adobe FlashベースのUIライブラリ
----------------------------

これらのミドルウェアに向けてUIを作成するためには、Adobe Animate が必要となる。

Autodesk Scaleform  Autodesk Gamewareの一つ。旧Scaleform GFx。FlashコンテンツをゲームUIとして使うことができるミドルウェア。CRYENGINEやAutodesk Stingrayで使われている。Unreal Engine 3やProject Anarchyにも含まれていたほか、Unity 4版もあった。 簡易UI構築ツールのScaleform CLIKが含まれている。また、メニュー画面向けのMenu Kit、HUD表示向けのHUD Kit、MMOゲーム向けのMMO Kitも含まれている。また、StingrayにはUI構築用のScaleform Studioが含まれている。 販売終了。 IGGY  FlashコンテンツをゲームUIとして使うことができるミドルウェア。 LWF  FlashコンテンツをゲームUIとして使うことができるミドルウェア。オープンソース。zlibライセンス。Unity用アセットのLWF for Unityや、HTML5用のLWF Loaderなどもある。

14. 3Dスキャン/トラッキングライブラリ
----------------------

libmv - オープンソースのSfMライブラリであり、BlenderやNatronのトラッカーに利用されている。OpenCV 3.1以降にも、libmvを基にしたopencv_sfmが搭載されている。
OpenCV - オープンソース。Structured Light APIを持っている。
AliceVision - オープンソース。MPL2ライセンス。Meshroomで使われている。
gradslam - オープンソースの微分可能SLAMフレームワーク。深度付き画像群からのポイントクラウド生成に対応している。MITライセンス。

14.1. 特定ハードウェア向け
----------------

Intel RealSense SDK
Azure Kinect SDK - 略称K4A。
Kinect for Windows SDK - 製造終了したKinect for Windows向けだった。

15. モデル最適化ライブラリ
---------------

OpenGL/Vulkan APIのNVIDIA拡張及びDirectX12 Ultimate APIでは新たにMesh Shaderが導入されており、Mesh Shaderで使用可能の効率的な構造であるMeshletが注目されている。

頂点キャッシュ容量の少ない古いGPUでのレンダリングでは省メモリな構造体である三角ストリップを使った描画が最適であったとされる。

15.1. メッシュ最適化
-------------

meshoptimizer - オープンソース。MITライセンス。頂点キャッシュ最適化、オーバードロー最適化、先取りキャッシュ最適化、三角ストリップ生成、頂点/インデックスバッファ圧縮、ポイントクラウド圧縮、ポリゴンリダクション、Meshlet生成などに対応している。
DirectXMesh  - オープンソース。MITライセンス。D3DXの後継ライブラリの一つ。頂点キャッシュ最適化、Meshlet生成などに対応している。
Compressonator SDK  - オープンソース。
Simplygon SDK  - プロプライエタリ。
Meshlete - MITライセンス。meshlet生成に対応している。

15.1.1. ポリゴンリダクション
------------------

Polygon Cruncher SDK

15.1.2. 開発停止中
-------------

AMD Tootle  - GPUOpenの一部。オープンソース。頂点キャッシュ最適化、オーバードロー最適化、先取りキャッシュ最適化に対応していた。生成ツールのTootleSampleもある。開発停止中。
NvTriStrip  - 三角ストリップ生成ライブラリ。頂点キャッシュ最適化、三角リスト出力などにも対応している。生成ツールのNvTriStripperもある。
TriStripper - 三角ストリップ生成ライブラリ。オープンソース。Mariなどで使われている。
Vizup SDK - ポリゴンリダクションライブラリ。開発停止中。
GLOD - LOD  生成ライブラリ。Second Lifeで使われていたがmeshoptimizerで置き換えられた。

16. VR/AR/MRライブラリ
-----------------

HMDデバイスのレイテンシ問題などを解決するためのミドルウェア。

OpenXR SDK  XRの標準APIであるOpenXR向け開発ライブラリ。Google Chrome/Microsoft Edge 81以降、Blender 2.83以降など多くのソフトウェアで使用されている。

16.1. GPUベンダー製
--------------

VRWorks SDK  NVIDIAのGPU用。旧GameWorks VR←VR Direct。HMD向けミドルウェア。Unreal Engine 4に搭載されている。今後、Unityにも搭載される予定。 音線法による立体音響にも対応している 。バックエンドにはOptiXを使用している。

16.1.1. 開発停止中
-------------

Snapdragon VR SDK  QualcommのSnapdragon 835搭載VR開発キット向け。 AMD LiquidVR  AMDのGPU用。Direct3D 11用。Unityに搭載される予定となっていた。 VR SDK for Android  旧Mali VR SDK。ARMのMali GPU用。MITライセンス。

16.2. プラットフォーム製
---------------

Windowsでは、Windows 10 SDKにMR向け機能が統合されている。また、iOSでは、iOS 11 SDK以降にAR向け機能  が統合されている。

Cardboard SDK  Android及びiOSのスマートフォンはめ込み式のヘッドセット  向け。オープンソース。Google VR SDKの後継。Unity版もある。 ARCore  AR向け。Unity及びUnreal Engineに対応している。 OpenVR  Steam向け。HTC Vive及びOculus Riftに対応。OpenVRはHTC Vive SteamVR SDKとしても知られている。OpenVRはオープンソースだが、バックエンドのSteamVRランタイムは非オープンソース。Unity版はSteamVR Plugin。Unreal Engine 4.8以降でも採用されている。 MixedRealityToolkit  略称MRTK。旧HoloToolkit。Windows Mixed Reality 向けのライブラリ集。Unity向けのMixedRealityToolkit for Unityも存在する。実装サンプルとして、Mixed Reality Academy が存在する。 Sceneform SDK for Android  AR向け。Android用。オープンソース化された。開発中止。

16.3. HMDメーカー製
--------------

Oculus SDK  Oculus Rift向け。Unity用のOculus Utilities及びUnreal Engine 4用のUnreal Engine 4 Integrationがある。Gear VR用のOculus Mobile SDKも存在する。

16.4. オープンソース
-------------

OpenHMD Oculus Rift、HTC Vive及びPS VRに対応 。オープンソース。Timewarp未対応。 OSVR  OSVR HDKを始め、様々な機器に対応するためのVRフレームワーク。開発停止中。Unity用のOSVR-Unity-Rendering及びUnreal Engine 4用のOSVR-Unrealが存在する。OSVR-Coreはオープンソースだが、バックエンドプラグインには非オープンソースを含む 。サードパーティー製のバックエンドも存在し、その中には完全オープンソースのOSVR-OpenHMDやOSVR-Vive-Libre も存在する。 OpenVR/SteamVR対応ソフトウェアからOSVRを使うためのSteamVR-OSVRも存在する。 Vrui VR Toolkit HMDだけでなく、ビデオウォールやCAVEにも対応している。オープンソース。GPLライセンス。

16.5. 入力装置向けライブラリ
-----------------

Leap Motion SDK 旧Leap Motion Developer SDK。

16.6. クラスタレンダリング向けライブラリ
-----------------------

CAVEやビデオウォールで使われるクラスタレンダリング向けライブラリ。

Equalizer  CAVE対応アプリケーションを作成するためのミドルウェアであり、マルチGPUやコンピュータ・クラスターでの実行に対応する。Equalizerを使ったサンプル実装として、eqPlyやosgScaleViewerが提供されている。オープンソース。

17. 3Dオーディオライブラリ
----------------

VRの普及に伴い、よりリアルなリアルタイムの3Dオーディオは重要となっている。Webで使われるWeb Audio APIも空間化オーディオに対応している。

TrueAudio Next  略称TAN。AMD TrueAudioの次世代版。Radeon Raysベース。MITライセンス。 VRWorks Audio  OptiXベース。Unreal Engine用プラグインがある。 Steam Audio  Unity及びUnreal Engine 4用プラグインがある。無料。

17.1. 遮蔽未対応
-----------

OpenAL 古くから存在する3DオーディオAPI。複数の実装が存在する。 Khronos Groupによる標準オーディオAPIであり、3Dオーディオについても規定されている。複数の実装が存在する。AndroidはOpenSL ESに対応しているものの、3Dオーディオに対応するかはデバイスに依る。 Oculus Audio SDK  VR向け3Dオーディオライブラリ。遮蔽やドップラー効果に未対応。

18. 脚注
------

18.1. 注釈
--------

18.2. 出典
--------

19. 関連項目
--------

カラーコレクション#色変換ライブラリ/エンジン