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) も搭載されていた[1][2]

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

補助ライブラリ

大域照明 (GI) ライブラリ

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

直接照明 (DI) ライブラリ

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

環境遮蔽(AO) ライブラリ

なお、DirectX 10.1のSDKには、AMDの開発したHDAO (高解像度環境遮蔽) のサンプルが付属していた[10]

  • NVIDA ShadowWorks - 「HBAO+」(水平ベース環境遮蔽) を実装している[11]
  • NVIDIA VXAO - 「VXAO」(ボクセル構造を用いた環境遮蔽)を実装している。NVIDIA VXGIの一部[12]
  • Adaptive Screen Space Ambient Occlusion - Intelが開発している。DirectX 11対応。オープンソース。実装の詳細は書籍「GPU Zen」に記載されている[13]
  • XeGTAO - Intelが開発している「GTAO」(グランドトゥルース環境遮蔽)実装。

遮蔽カリングライブラリ

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

その他

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

レイトレーシングベース

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

メーカー異種コア計算レイトレーシングコアデノイズレイトレーシングレンダリングAI
NVIDIACUDAOptiX英語版OptiX DenoiserIray SDKcuDNN / CUDA-X AI
AMDHIPRadeon Rays / HIP-RTRIFRadeon ProRender SDKMIOpen
IntelSYCL/Intel DPC++EmbreeIntel OIDNOSPRayoneDNN


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

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

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

レイトレーシングレンダリングライブラリ

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

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

その他

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

ノイズ除去ライブラリ

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

デノイザー方式対応ガイドパス[g 1]
静止画動画(クロスフレーム)スフィアマップアルベド法線深度
OptiX denoiser機械学習Yestemporal denoising?Yes[19]Yes[19]No
Radeon Image Filter AI denoiser機械学習YesNoNoYes[20]Yes[20]Yes[20]
OIDN機械学習YesNoNoYes[21]Yes[21]No

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

  • 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以降[22]やLuxCoreRender 2.1以降[23]に搭載されている。開発停止中。
  • Altus SDK - InnoBright製。二組のレンダリング結果を使用してデノイズを行う[24]。ツール版も存在した。AltusはMaxwell Render、Guerilla Render、Redshiftなどに搭載されている[25][26][27]。販売停止中。

ポストエフェクトライブラリ

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

メーカー超解像度シャープ化リアルタイムデノイズ可変シェーディングフレーム生成
単独モーションベクトル使用影レイ反射レイフルレイトレーシング
NVIDIANISのNVScalerDLSSNISのNVSharpenNRD[29]DLSS RR[30]NVIDIA VRS/NASDLSS FG
AMDFSR 1.0[p 1][31]FSR 2.0[31]FidelityFXのCASFidelityFXのDenoiser?FidelityFXのVariable ShadingFSR 3 Frame Generation
Intel?XeSS??????
  • NVIDIA NGX - 機械学習ベースのインペイント、スローモーション、アップスケーリングが含まれている。
  • AMD FidelityFX - Content Adaptive Sharpeningが含まれている。MITライセンス。DirectX 12とVulkanに対応。高速MIPマップ生成用のFidelityFX Single Pass Downsampler (SPD) 、アップスケーリング用のFidelityFX Super Resolution (FSR) [32]、ノイズ除去のFidelityFX Denoiserもある。
  • NVIDIA Image Scaling SDK - アップスケーリング用。MITライセンス。
  • YEBIS (シリコンスタジオ) - ポストエフェクトミドルウェア。Substance Designer/Painterなどで使われていた[33]
  • ReShade - インジェクションベースのポストエフェクトライブラリ。既存のソフトウェアに使用できる。オープンソース。BSDライセンス。

開発停止中

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

互換レイヤー

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

元環境OpenGL APIVulkan APIDirect3D APIMetal API
1-789101112
Vulkan環境MesaのZinkドライバ[35]ネイティブ?d8vkDXVK[c 1]vkd3dNo
Direct3D 12環境MesaのD3D12ドライバ[36][37][c 2]MesaのDZNドライバ[38][c 2][c 3]??D3D9On12?D3D11On12ネイティブNo
Metal環境MoltenVK上のMesaのZinkドライバ[39][c 4]MoltenVK??????ネイティブ
MoltenVK英語版 (Khronos Group)
Metal環境上のVulkan API実装。オープンソース。Apache License 2.0。
DXVK
Vulkan環境上のDirect3D 9/10/11 API実装。オープンソース。zlibライセンス。d9vkを統合した[40]Protonなどで使われている。
vkd3d
Vulkan環境上のDirect3D 12 API実装。オープンソース。LGPLライセンス。ProtonWine[41]などで使われている。
DXGL
OpenGL環境上のDirectX 1〜7 API実装。オープンソース。LGPLライセンス。
ANGLE英語版 (Google)
Direct3D 9/11、OpenGL、Vulkan、Metal環境上のOpenGL ES API実装であり、主にブラウザのWebGL実装に使われている。オープンソース。BSDライセンス。コンパイラ部分は3Dlabs(現ZiiLABS)のオープンソース実装を基にしている[42]。Windows版Google ChromeやFirefoxで使われている。
MojoShader
HLSLのバイトコード (DXBC)やDirectXアセンブリをGLSLシェーダーやARBアセンブリ、Metalシェーダーなどに変換するライブラリ。Shader Model 1.x (Direct3D 8世代)から3 (Direct3D 9.0c世代)まで対応している。Unreal Tournament 3英語版[43]などのゲームやUnity[44]などのゲームエンジンで使われている。オープンソース。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実装[45][46]。オープンソース。MITライセンス。両者の共通部分もD3D12 Translation Layerとしてオープンソース化されている[45]

開発停止中

dxup
Direct3D 11環境上のDirect3D 9/10 API実装。DXVKと組み合わせてVulkan環境上で動かすこともできた[47]
hlsl2glslfork
Direct3D 9時代のHLSLシェーダーをGLSL/GLSL ESシェーダーに変換するライブラリ。ATI Technologiesによって開発されたHLSL2GLSLをフォークしたもの[48]。オープンソース。以前Unityで使われており[48]、Unity Technologiesにより開発が継続されていたが、現在、開発がメンテナンスモードとなっている[49]
ToGL (Valve Corporation[50])
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の抽象化レイヤー[51]
Intermediate Graphics Library (Meta)
OpenGL/Vulkan/Metalの抽象化レイヤー[52]

シーングラフベース

SceneKit英語版
AppleのmacOSやiOSに搭載されているシーングラフベースの3Dライブラリ。言語はObjective-C。
Qt 3D
Qtに含まれる3Dライブラリ。オープンソース。シーングラフはXMLベースのQML形式。
Open Inventor
OpenGL向けのシーングラフを中心としたライブラリ。オープンソース。
OpenSceneGraph
OpenGL向けのシーングラフを中心としたライブラリ。オープンソース。
シーングラフはOpenSceneGraph形式 (*.osg、*.osgb、.osgt、.osgx)。
Java 3D
Java環境向けのシーングラフを中心としたAPI。
Universal Scene Description
Pixarの開発するシーングラフを中心としたライブラリ。オープンソース。Katana 3.0以降[53]やHoudini 18以降のSolaris[54]で使われている。
シーングラフはUniversal Scene Description形式 (.usd、.usda、.usdc、.usdz)。
Visualization Toolkit (VTK)
シーングラフのvtkViewNodeを持っている[55]ParaViewOsiriX3DSlicer英語版などに使われている。オープンソース。BSDライセンス。

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

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

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

Web用フレームワークライセンス座標系エディター3D API物理エンジンWebXR対応
WebGLWebGPU
three.jsMITライセンス右手系Three.js EditorYesr121以降ammo.jsYes
Babylon.jsApache License 2.0左手系Babylon.js EditorYes4.1.0以降Cannon.js、Oimo.js、Energy.js、ammo.js[56]Yes
PlayCanvas EngineMITライセンス右手系PlayCanvas EditorYesNoammo.js1.25以降
Web用フレームワークシーングラフ形式モデル形式シェーダー形式
glTFOBJFBXUSDZその他PBSGLSL言語
無圧縮Draco圧縮meshopt圧縮
three.jsJSON Object Scene format等Yes[57]Yes[57]Yes[57]YesYesYesPLY、Collada、STL、VRML、.babylon形式[58]、PlayCanvas形式、PMD/PMX等Yes[59]Yes[60]
Babylon.js.babylon形式(JSONベース[61])YesYesYesYesYesNo2.3.0以降?
PlayCanvas EngineJSONベースYesYesNoYesNo?PlayCanvas JSON ModelYesYes
Web用フレームワークテクスチャ形式
BasisKTXDDSその他
three.jsYesYes[62]Yes[62]OpenEXR[62]PVRTC英語版[62]、RGBM[62]TGA[62]PNG[62]GIF[62]JPEG[62]
Babylon.jsYesYes[63]Yes[63]TGA[63]
PlayCanvas Engine1.24以降YesYes



PBRシェーダー対応

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

PBRシェーダー未対応

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

開発停止中

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

ジオメトリ操作

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

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

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

ジオメトリ処理ライブラリ

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

3Dブーリアンライブラリ

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

メッシュ生成ライブラリ

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

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

プラグインライブラリ

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

ファイル入出力ライブラリ

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

シーン形式

  • FBX SDK - Autodesk製品を始め、多くの3DCGソフトウェアで使われているFBX形式 (*.fbx) 用の公式ライブラリ。Autodesk製。
  • 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ライセンス。
  • Open Asset Import Library英語版 (assimp) - 様々な3Dモデル形式に対応するライブラリ。オープンソース。BSDライセンス。
  • Houdini Engine - Houdiniで使われているHoudini Digital Asset形式 (*.otl、*.hda)用のインポートライブラリ。
  • cgltf - glTF形式に対応するシングルヘッダーライブラリ[72]。MITライセンス。
  • Microsoft glTF SDK - glTF形式に対応するライブラリ。オープンソース[73]。MITライセンス。
  • dime - DXF形式の入出力に対応するライブラリ[74]。DXF2papercraftに使われている。

3Dモデル圧縮

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

マテリアル形式

  • 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以降などに使われている[77]

キャッシュ形式

マルチパス画像

  • OpenEXR (Academy Software Foundation[78]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圧縮のレート歪み最適化英語版に対応している。
  • OpenImageIO英語版(Academy Software Foundation[79]←Larry Gritz) - レンダラーなどの3Dパイプラインに特化した画像入出力ライブラリ。MIPMAPにも対応する効率的なキャッシュを備えている。多くの3DCGソフトウェアがこのライブラリを使用している。
  • bcdec - BC1-7形式のデコードに対応したヘッダーオンリーライブラリ。OpenImageIO 2.4.4以降に使われている[80]
  • NVIDIA Texture Tools (NVTT) - NVIDIAのテクスチャSDK[81]。2はオープンソースとなっていた。Unreal Engine[82]やBlender 2.46以降に使われている[83]

開発停止中

  • libsquish - DXT 1/3/5形式 (BC1-3形式) に対応したライブラリ[84]。OpenImageIO 2.4.4より前に使われていた[80]

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

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

ボリュームライブラリ

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

運動学ライブラリ

  • iTaSC - オープンソース。Blender 2.5以降で使われている[92]
  • IKinema RunTime (Apple←IKinema) - フルボディIKに対応する。modo 601以降に使われていた[93][94]。開発終了。
  • Autodesk HumanIK (Autodesk←Alias←Kaydara) - フルボディIKに対応する。Mayaで使われている。販売終了。
  • OpenRAVE英語版 - 解析的IKソルバーのIKFastを含んでいる。オープンソース。LGPLライセンス。

物理演算ライブラリ

Open Dynamics Engine
略称ODE。オープンソース。LGPL及びBSDのデュアルライセンス。SoftimageやHoudiniなどが対応していた。現在HoudiniはODEを非推奨としている[95]。Python言語向けのPyODEもあり[96]、心理学実験向けツールキットのPyEPLがそれに依存していた[97]
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は非推奨となった[98]。5.0で有限要素法に基づく可変形物体物理に対応した[99]。5.1でオープンソース化され、流体シミュレーションのNVIDIA Flowが統合された[100]
NVIDIA FleX (NVIDIA)
PBD(位置ベース物理シミュレーション)によるパーティクルベースのマルチ物理ライブラリ。
NVIDIA Blast (NVIDIA)
破壊シミュレーションライブラリ。
NVIDIA Cloth (NVIDIA)
クロスシミュレーションライブラリ。
FEMFX (AMD)
有限要素法に基づく可変形物体物理ライブラリ[101]。MITライセンス。Unreal Engine向けプラグインもある。

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

上記のBulletも参照。

Brax (Google)
機械学習向けフレームワークJAXを基にした物理ライブラリ。
Isaac Gym (NVIDIA)
強化学習向けの物理ライブラリ。
MuJoCo (DeepMind(Alphabet子会社)←Roboti[102])
独自の凸ガウス原理を利用した物理ライブラリであり[103]、OpenAIのGymで強化学習に使うことが可能となっている[104]

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

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

流体シミュレーション

MantaFlow (ミュンヘン工科大学)
流体シミュレーションライブラリ。FLIP法およびAPIC法に対応している。GPLライセンス。古い流体シミュレーションライブラリであるEl'beemの開発者Nils Thuerey[105]が、MantaFlowの開発に参加している[106]。Blender 2.82以降がMantaFlowを採用している[107] (それ以前はEl'beemを使用していた[105])。
PhiFlow (ミュンヘン工科大学)
偏微分方程式求解ライブラリであり、機械学習ベースの流体シミュレーションに対応している。MITライセンス。
SPlisHSPlasH (アーヘン工科大学)
パーティクルベースの流体シミュレーションライブラリ。SPH法に対応している。MITライセンス。LightWaveプラグインのDeep Rising FX 3.0で使われていた[108]
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との連携に対応している[109]
Cannon.js
Javascriptで書かれた物理エンジン。MITライセンス。three.jsとammo.jsの影響を受けている[110]。Babylon.jsがCannon.jsとの連携に対応している[109]

開発停止中

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

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

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

AIライブラリ

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

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

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

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に対応している[113]。オープンソース。MITライセンス。GUIエディターとしてCEEDがある。
MyGUI
Ogre3Dに対応するUIライブラリ。オープンソース。MITライセンス。
ImGui
DirectX、OpenGL、Vulkan等に対応している。オープンソース。MITライセンス。
dat.GUI
Javascript用。オープンソース。Apacheライセンス。three.jsにも付属されている。Googleの従業員により開発された[114]
AntTweakBar
DirectX及びOpenGL用。オープンソース。zlib/libpngライセンス。マルチメディアライブラリのCinderがAntTweakBarを採用していた[115]。開発停止中。

Adobe FlashベースのUIライブラリ

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

Autodesk Scaleform (Autodesk ← Scaleform)
Autodesk Gamewareの一つ。旧Scaleform GFx英語版。FlashコンテンツをゲームUIとして使うことができるミドルウェア。CRYENGINEやAutodesk Stingrayで使われている。Unreal Engine 3やProject Anarchyにも含まれていたほか、Unity 4版もあった[116]
簡易UI構築ツールのScaleform CLIKが含まれている。また、メニュー画面向けのMenu Kit、HUD表示向けのHUD Kit、MMOゲーム向けのMMO Kitも含まれている。また、StingrayにはUI構築用のScaleform Studioが含まれている。
販売終了[9]
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のトラッカーに利用されている[117]。OpenCV 3.1以降にも、libmvを基にしたopencv_sfmが搭載されている[118]
  • OpenCV - オープンソース。Structured Light APIを持っている。
  • AliceVision - オープンソース。MPL2ライセンス。Meshroomで使われている。
  • gradslam - オープンソースの微分可能SLAMフレームワーク。深度付き(RGB+D)画像群からのポイントクラウド生成に対応している。MITライセンス。

特定ハードウェア向け

モデル最適化ライブラリ

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

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

メッシュ最適化

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

ポリゴンリダクション

開発停止中

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

VR/AR/MRライブラリ

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

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

GPUベンダー製

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

開発停止中

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

プラットフォーム製

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

Cardboard SDK (Google)
Android及びiOSのスマートフォンはめ込み式のヘッドセット (Google Cardboard、Google Daydream) 向け。オープンソース[134]。Google VR SDK(旧Google Cardboard SDK)の後継[134][135]。Unity版もある。
ARCore (Google)
AR向け。Unity及びUnreal Engineに対応している。
OpenVR/SteamVR英語版 (Valve Corporation)
Steam向け。HTC Vive及びOculus Riftに対応。OpenVRはHTC Vive SteamVR SDKとしても知られている[136]。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用。オープンソース化された。開発中止[137]

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[138]やOSVR-Vive-Libre (OpenHMD派生)[139][140]も存在する。
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オーディオは重要となっている[141]。Webで使われるWeb Audio APIも空間化オーディオに対応している[142]

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

遮蔽未対応

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

脚注

注釈

出典

関連項目


🔥 Top keywords: メインページ飯豊まりえ高橋一生石丸伸二特別:検索キダ・タロー廣瀬智紀弥助三淵嘉子川栄李奈羽賀研二葛西美空岸辺露伴は動かない秋元優里鈴村健一ユージ虎に翼山崎育三郎STARTO ENTERTAINMENT乙黒えり出口夏希窪塚愛流木田美千代緒方賢一Never young beach田村正和ニューカレドニア猿の惑星シリーズマイケル・ゴードンプロポーズ大作戦 (テレビドラマ)スロバキア麿赤兒浅野温子笠松将竜とそばかすの姫堀田賢慎ラナルド・マクドナルド伊倉愛美仲野太賀