3Dライブラリ

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

## 3Dグラフィクスライブラリ

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

### ラスタライズベース
; 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のソフトウェア定義可視化(SDViz)構想の一環として開発されたソフトウェア実装のSWR (旧OpenSWR) も搭載されていた。

#### ソフトウェアラスタライザ

#### 補助ライブラリ

#### 大域照明 (GI) ライブラリ
; Enlighten (シリコンスタジオ←ARM←)
: リアルタイムGIミドルウェア。Unreal Engine用のものが提供されている。以前はUnityに標準搭載されていた。
; NVIDIA VXGI (NVIDIA)
: リアルタイムGIミドルウェア。ボクセルコーントレーシングを実装している。iClone 7以降に搭載されているほか、Unreal EngineのVXGI統合ブランチが公開されている。
; RTXGI SDK (NVIDIA)
: を使ったDynamic Diffuse Global Illumination (DDGI) 実装。2.0で Neural Radiance Cache (NRC) と Spatial Hash Radiance Cache (SHaRC) を搭載した。
; KICKSTART RT SDK (NVIDIA)
: Direct3D 11までなどのレイトレーシングAPI未対応の古い環境でレイトレーシングを行うための実装。
; Beast (Autodesk ← Illuminate Labs)
: リアルタイムGIミドルウェア。Autodesk Stingrayに標準搭載されていた。販売終了。

#### 直接照明 (DI) ライブラリ
* NVIDIA RTX Direct Illumination (RTXDI) SDK - Nvidia RTXを使って多光源を処理するライブラリ。

#### 環境遮蔽(AO) ライブラリ
なお、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」（グランドトゥルース環境遮蔽）実装。

#### 遮蔽カリングライブラリ
; Umbra (Amazon←Umbra←Hybrid Graphics)
: 遮蔽カリングに特化したミドルウェア。旧dPVS。Unity及びUnreal Engineに対応していた。販売終了。

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

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



#### レイトレーシングコアライブラリ
レイトレーシングの交差判定に特化したライブラリ。標準APIにはVulkan拡張のVK_KHR_ray_tracing、DirectX 12以降のDirectX Raytracing (DXR)、Metal 2のMetal Performance Shaders (MPS)のray intersectorなどがある。

* Embree - Intelが開発を支援している。オープンソース。Apacheライセンス。
* Radeon Rays (AMD) - 旧AMD FireRays。オープンソース。MITライセンス。VulkanとDirectX 12に対応している（OpenCL対応は終了）。
* HIP-RT (AMD) - HIPベースのレイトレーシングライブラリ。AMD及びNVIDIAのGPUに対応。2.4で高速ながら比較的高品質なBVH生成アルゴリズム H-PLOCに対応した。
* NVIDIA  - NVIDIAのGPU用。OptiX APIとOptiX Prime APIがある。6.0でによるアクセラレーションに対応した。
* PowerVR OpenRL SDK - PowerVR用のOpenRL実装。このOpenRLはKhronos Groupでの標準化が提案されていた。開発終了。

またAMDのオープンソースVulkanドライバー (AMDVLK) では内部に使うライブラリとして GPU Ray Tracing Library (GPURT) が開発されている（MITライセンス）。

#### レイトレーシングレンダリングライブラリ
レイトレーシングコアライブラリ等を使ってレイトレーシングレンダリングを行うためのライブラリ。
* OSPRay - Intelが開発を支援している。オープンソース。Apacheライセンス。
* Radeon ProRender SDK (旧FireRender SDK) - AMDが開発を支援している。オープンソース。
* NVIDIA Iray SDK
* PowerVR Brazil SDK - 開発終了。
* HOOPS Luminate - 買収したRedway3D製のREDsdkに基づく。

#### その他
* Intel Open Path Guiding Library - パストレーシングの高速化に使われるPath Guidingの実装の一つ。オープンソース。Apacheライセンス。Academy Software Foundationが引き継ぎ予定。

### ノイズ除去ライブラリ
多くはマルチパスにも使われている。



#### モンテカルロ・レイトレーシング向け
* 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 (BCD) - 非局所ベイジアンフィルタベースであり分布と共分散を使用する。BSDライセンス。appleseed 1.9以降やLuxCoreRender 2.1以降に搭載されている。開発停止中。
* Altus SDK - InnoBright製。二組のレンダリング結果を使用してデノイズを行う。ツール版も存在した。AltusはMaxwell Render、Guerilla Render、Redshiftなどに搭載されている。販売停止中。

### ポストエフェクトライブラリ
AIによる超解像度はダウンスケーリング（縮小化）と組み合わせることでアンチエイリアスの代わりとしても使われている。ダウンスケーリング側にもAIを使うシステムも存在する（NVIDIA DLDSRなど）。



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

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

## 互換レイヤー

OSやWeb環境（WebGLやWebGPU）によって対応するグラフィックAPIが異なるため互換レイヤーが存在する。なおグラフィックAPIだけでなくOSレベルの互換レイヤーを用意するものもある (Wine（Direct3D部分の実装はWineD3D）やそのフォークのProtonなど)。



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

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

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

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

### シーングラフベース



; 
: AppleのmacOSやiOSに搭載されているシーングラフベースの3Dライブラリ。言語はObjective-C。
; Qt 3D
: Qtに含まれる3Dライブラリ。オープンソース。シーングラフはXMLベースのQML形式。エンティティ・コンポーネント・システムを採用している。
: Qt 3Dは標準レンダリングパイプラインが存在しておらず、自分でレンダリングパイプラインを書く必要がある。姉妹ライブラリとしてゲームエンジンのようなレンダリングが可能な Qt Quick 3D も存在する。
; Open Inventor
: OpenGL向けのシーングラフを中心としたライブラリ。オープンソース。
: 互換実装の  も存在する。
; VulkanSceneGraph
: Vulkan向けのシーングラフを中心としたライブラリ。オープンソース。
: OpenGL向けであったOpenSceneGraphライブラリの後継。OpenSceneGraphのシーングラフはOpenSceneGraph形式 (*.osg、*.osgb、.osgt、.osgx) であった。
; Java 3D
: Java環境向けのシーングラフを中心としたAPI。オープンソース。
; Universal Scene Description
: Pixarの開発するシーングラフを中心としたライブラリ。オープンソース。Katana 3.0以降やHoudini 18以降のSolarisで使われている。
: シーングラフはUniversal Scene Description形式 (.usd、.usda、.usdc、.usdz)。
; Visualization Toolkit (VTK)
: シーングラフのvtkViewNodeを持っている。ParaView、OsiriX、などに使われている。オープンソース。BSDライセンス。

### Web向けフレームワークライブラリ
現在では汎用ゲームエンジンもWebGLに対応してきている (Unity、Unreal Engine 4、OGREなど)。物理演算ライブラリについては、3Dライブラリ#WebGL用物理演算ライブラリを参照。

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



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

#### PBRシェーダー未対応
; 
: WebGL向け3Dエンジン。Away3D TypeScriptの後継。Apache License 2.0。元々Flash用3DライブラリであるPapervision3D (PV3D)の派生としてAway3Dが開発され、その後Webブラウザ向けのAway3D TypeScriptが作られた。

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

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

### ジオメトリ形状モデリングカーネル

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

### ジオメトリ処理ライブラリ
* CGAL - ジオメトリ処理ライブラリ。3Dブーリアンにも対応している。オープンソース。GPLライセンス (一部LGPLライセンス)。の標準バックエンドに使われている。
* libigl - ジオメトリ処理ライブラリ。3Dブーリアンにも対応している。オープンソース。MPLライセンス (一部GPLライセンス)。
* OpenMesh - ポリゴンメッシュの処理に向けたライブラリ。オープンソース。BSDライセンス。OpenFlipperなどに使われている。
* GNU Triangulated Surface Library - 略称GTS。三角メッシュの処理に特化したライブラリ。Graphvizのグラフビューアであるsmyrnaツールに使われている。
* VCG Library - に使われている。オープンソース。GPLライセンス。
* Manifold Library - 多様体三角形メッシュの処理ライブラリ。3Dブーリアンにも対応している。Apacheライセンス。Godotのレベルプロトタイピング、OpenSCADの代替バックエンド、blender 4.5以降のブーリアンのManifoldソルバーなどに使われている。

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

#### メッシュ生成ライブラリ

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

### 再分割/テッセレーションライブラリ
* OpenSubdiv - Pixarの支援する再分割ライブラリ。オープンソース。Apacheライセンス。
* NVIDIA Displacement Micro-Map Toolkit - 変異マイクロマップ生成・表示ライブラリ (NVIDIA Displacement Micro-Map SDK) およびツール集。リアルタイムレイトレーシングに最適化されていた。サンプルコードのNVIDIA RTX Mega Geometryに置換えられて終了した。また透過のためのOpacity Micro-Map SDKも存在する。こちらは Opacity Micro-Map が DirectX Raytracing (DXR) 1.2 に入り、その API に対応している。

### プラグインライブラリ
* Open Mesh Effect - ベースの3DメッシュエフェクトAPI。

## ファイル入出力ライブラリ
これらのライブラリは、異なる3Dソフトウェア間でファイルをやり取りする時などに使われている。
### シーン形式
* FBX SDK - Autodesk製品を始め、多くの3DCGソフトウェアで使われているFBX形式 (*.fbx) 用の公式ライブラリ。Autodesk製。
* ufbx - FBX形式のインポート用のオープンソースライブラリ。Godot 4.3以降、Blender 4.5以降で使われている。MITライセンスとPublic Domainのデュアルライセンス。
* OpenCOLLADA - 多くの3DCGソフトウェアで使われているCOLLADA形式 (*.dae) 用の公式ライブラリ。オープンソース。MITライセンス。
* COLLADA DOM - COLLADA形式 (*.dae) 用のライブラリ。Sony Computer Entertainment製。オープンソース。MITライセンス。
* FCollada - COLLADA形式 (*.dae) 用のライブラリ。Feeling Software製。ディスコン。
* Python Computer Graphics Kit - Maya ASCII (MA)形式などのインポートや、RIB形式などへのエクスポートに対応するPythonモジュール。オープンソース。最終更新は2013年リリースの2.0.0。

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

#### マテリアル形式
* Substance Engine - Substance Designerで使われているマテリアル形式 (*.sbs、*.sbsar)用のインポートライブラリ。

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

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

### キャッシュ形式
* Alembic - Alembic形式 (*.abc)用のライブラリ。オープンソース。BSDライセンス。Sony Pictures Imageworks及びILMが共同で開発した。

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

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

#### 開発停止中
* libsquish - DXT 1/3/5形式 (BC1-3形式) に対応したライブラリ。OpenImageIO 2.4.4より前に使われていた。

## シェーダーおよびマテリアルライブラリ
* liboslc/liboslquery/liboslexec (Academy Software Foundation←Sony Pictures Imageworks) - Open Shading Language (OSL) シェーダー用のライブラリ。オープンソース。ライセンスはBSDライセンス。
* NVIDIA MDL SDK - MDL (Material Definition Language) マテリアル定義用のライブラリ。2018年に一部がオープンソース化され、2022年に全てがオープンソース化された。BSDライセンス。MDLは一つの記述でリアルタイムとパストレーシングレンダリングの両方に対応する。
* MaterialX (Academy Software Foundation←Lucasfilm) - オープンソースのマテリアル交換用ライブラリ。当初ILMが開発した。MaterialX形式からGLSLシェーダーやOSLシェーダーを生成するためのShaderXが統合された。ライセンスはApache License 2.0。
* Adobe's OpenPBR BSDF - OpenPBR リファレンス実装のヘッダーライブラリ。ライセンスはApache License 2.0。Adobeの内部レンダラーの実装に基づいている。

## ボリュームライブラリ
*  (Academy Software Foundation←ドリームワークス・アニメーション) - OpenVDB形式 (*.vdb)の入出力及び操作に対応するライブラリ。オープンソース。GPU対応のNanoVDB実装がNVIDIAより提供された。
* NVIDIA GVDB Voxels - GPU向けの疎ボクセルライブラリ。オープンソース。NanoVDBへの変換コードが用意されている。
* OpenVKL - Intel製のボクセルレンダリングライブラリ。
* Field3d (Sony Pictures Imageworks) - Field3d形式 (*.f3d)の入出力に対応するライブラリ。オープンソース。

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

## 物理演算ライブラリ
; 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 (Microsoft←Intel←Havok)
: 物理エンジン。3ds Max及びMaya用のプラグインがあった。開発終了。
; PhysBAM
: マルチフィジクスシミュレーションライブラリ。開発停止中。
; NVIDIA PhysX (Nvidia←AGEIA)
: 旧GameWorks PhysX。マルチ物理エンジン。GPUによる剛体演算に対応している (PhysX-GRB)。3ds Max、Maya、Softimageの物理演算のバックエンドに使われているほか、3ds Max及びMaya用のDCCプラグインが存在する。
: PhysX SDKの他にAPEX SDKを含んでいたが、PhysX Destruction/Clothing/Particlesは非推奨となった。5.0で有限要素法に基づく可変形物体物理に対応した。5.1でCPUコードがオープンソース化され、流体シミュレーションのNVIDIA Flowの統合も行われた。2025年にはGPUコードもオープンソース化された。
; NVIDIA FleX (NVIDIA)
: PBD(位置ベース物理シミュレーション)によるパーティクルベースのマルチ物理ライブラリ。
; NVIDIA Blast (NVIDIA)
: 破壊シミュレーションライブラリ。
; NVIDIA Cloth (NVIDIA)
: クロスシミュレーションライブラリ。
; FEMFX (AMD)
: 有限要素法に基づく可変形物体物理ライブラリ。MITライセンス。Unreal Engine向けプラグインもある。
; Jolt Physics
: シミュレーションライブラリ。Godot 4.4以降、ゲリラゲームズのゲームエンジンであるデシマに使われている。

### 機械学習向け物理ライブラリ
上記のBulletも参照。
; Brax (Google)
: Pythonの実行時コンパイラJAXを基にした物理ライブラリ。
; Isaac Gym (NVIDIA)
: 強化学習向けの物理ライブラリ。
; MuJoCo (DeepMind（Alphabet子会社）←Roboti)
: 独自の凸ガウス原理を利用した物理ライブラリであり、OpenAIのGymで強化学習に使うことが可能となっている。

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

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

### 海洋シミュレーション
; NVIDIA WaveWorks (NDIVIA)

### 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との連携に対応している。

#### 開発停止中
; Energy.js
: Babylon.jsがEnergy.jsとの連携に対応している。
; uranium.js
: BulletをEmscriptenでJavascriptに変換したもの。Blender4Webで使われている。

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

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

## 機械学習向けグラフィクスライブラリ
機械学習向けの低レベルAPIとしてはMetalがMPSCNNを備えている。またDirectX 12以降もDirectML APIを備えていたが、こちらはWindows MLの登場で開発終了となっている。

; TensorFlow Graphics
: TensorFlowベース。
; TensorFlow 3D (Google)
: TensorFlowベース。
; MediaPipe (Google)
; Kaolin (NVIDIA)
: PyTorchベース。
; PyTorch3D (Facebook)
: PyTorchベース。
; PyTorch Geometric
: PyTorchベース。

## UIライブラリ
### 3D UI対応のUIライブラリ
3D UIはUI部品などに深度を持つことができる。3D UIは特にVRで重要となる。
; uGUI (Unity Technologies)
: Unityに使われているUIライブラリ。オープンソース。MITライセンス。

### 2D UIのみ対応のUIライブラリ
DirectXやOpenGLなどの3Dパイプラインに対応する2D UI向けライブラリ。一部ライブラリは、RTT (Render to Texture)により、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を採用していた。開発停止中。

### Adobe FlashベースのUIライブラリ
これらのミドルウェアに向けてUIを作成するためには、Adobe Animate (旧Adobe Flash Professional)が必要となる。

; Autodesk Scaleform (Autodesk ← Scaleform)
: Autodesk Gamewareの一つ。旧。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 (Epic Games Tools←Rad Game Tools)
: FlashコンテンツをゲームUIとして使うことができるミドルウェア。
; LWF (GREE)
: FlashコンテンツをゲームUIとして使うことができるミドルウェア。オープンソース。zlibライセンス。Unity用アセットのLWF for Unityや、HTML5用のLWF Loaderなどもある。

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

### 特定ハードウェア向け
*  SDK
*  SDK - 略称K4A。
* Kinect for Windows SDK - 製造終了したKinect for Windows向けだった。

## モデル最適化ライブラリ
ラスタライズにおいては OpenGL/Vulkan APIの拡張及びDirectX12 Ultimate API でMesh Shaderが導入されており、この Mesh Shader によってハードウェアラスタライザーのパイプラインにおいてもコンピュートシェーダーのような汎用計算が可能となり、それによってより効率的な構造である「Meshlet」（三角形クラスタ）が注目されつつある。なお Unreal Engine 5 の新レンダラー「Nanite」では三角形クラスタのラスタライズにハードウェアラスタライザだけでなくソフトウェアラスタライザも使われている。

一方、レイトレーシングにおいては Vulkan API に三角形クラスタベースのアクセラレーション構造 (CLAS) を使う VK_NV_cluster_acceleration_structure ベンダー拡張が登場している。

またレンダリングにMeshlet（三角形クラスタ）が導入されたことによってGPUでは大量のメッシュが処理できるようになり、新たにCPUからGPUへのメッシュストリーミングがボトルネックとなってMeshlet圧縮が重要となっていった。

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

* meshoptimizer - オープンソース。MITライセンス。頂点キャッシュ最適化、オーバードロー最適化、先取りキャッシュ最適化、三角ストリップ生成、Meshlet生成、RTX Mega Geometry 向けのクラスター生成、頂点/インデックスバッファ圧縮、Meshlet圧縮、ポイントクラウド圧縮、ポリゴンリダクション、不透明度マイクロマップ (OMM) 生成などに対応している。
* DirectXMesh (Microsoft) - オープンソース。MITライセンス。D3DXの後継ライブラリの一つ。頂点キャッシュ最適化、Meshlet生成などに対応している。
* Compressonator SDK (AMD) - オープンソース。
*  SDK (Microsoft←Donya Labs) - プロプライエタリ。
* Meshlete - MITライセンス。meshlet生成に対応している。
*  SDK

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

### 3Dモデル圧縮
*  - zlibライセンス。LZMA圧縮を使用している。形式はOpenCTM形式 (*.ctm)。
* Open3DGC - MITライセンス。MPEG-SC3DMC (MPEG-4 Part 16 Amd.3) コーデックの実装の一つ。glTF形式で使えるようになる予定だったが、Dracoに置き換えられた。
* Draco (Google) - Apache License 2.0。glTF形式 (KHR_draco_mesh_compression) 及びUSD形式で使うことができる。
* meshoptimizer - MITライセンス。glTF形式 (KHR_meshopt_compression/EXT_meshopt_compression) で使うことができる。
* Dense Geometry Compression Format (DGF) SDK - AMD製。MITライセンス。ハードウェアデコードに最適化されており、Vulkan API では Dense Geometry Format からのレイトレーシング加速構造の構築が VK_AMDX_dense_geometry_format ベンダー拡張として導入されている。

## VR/AR/MRライブラリ
HMDデバイスのレイテンシ問題などを解決するためのミドルウェア。

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

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

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

### プラットフォーム製
Windowsでは、Windows 10 SDKにMR向け機能が統合されている。また、iOSでは、iOS 11 SDK以降にAR向け機能 (ARKit) が統合されている。

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

### HMDメーカー製
; Oculus SDK (Facebook←Oculus VR)
: Oculus Rift向け。Unity用のOculus Utilities及びUnreal Engine 4用のUnreal Engine 4 Integrationがある。Gear VR用のOculus Mobile SDKも存在する。

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

### 入力装置向けライブラリ
; Leap Motion SDK
: 旧Leap Motion Developer SDK。

### クラスタレンダリング向けライブラリ
CAVEやビデオウォールで使われるクラスタレンダリング向けライブラリ。
; Equalizer (Eyescale Software)
: CAVE対応アプリケーションを作成するためのミドルウェアであり、マルチGPUやコンピュータ・クラスターでの実行に対応する。Equalizerを使ったサンプル実装として、eqPlyやosgScaleViewerが提供されている。オープンソース。

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

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

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

## 脚注

### 注釈

### 出典

## 関連項目
* カラーコレクション#色変換ライブラリ/エンジン