3Dライブラリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動

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、Vulkan、Direct3D 9 APIに対応するライブラリ集及びツール。Unix系OSで良く使われている。Intelの開発した高速なソフトウェアレンダラー (swr、旧OpenSWR) も含んでいる。

ソフトウェアラスタライザ[編集]

補助ライブラリ[編集]

グローバルイルミネーション(GI) ライブラリ[編集]

Enlighten (シリコンスタジオ[1]←ARM[2]Geomerics英語版)
リアルタイムGIミドルウェア。Unreal Engine用のものが提供されている。以前はUnityに標準搭載されていた[3]
NVIDIA VXGI (NVIDIA)
リアルタイムGIミドルウェア。ボクセルコーントレーシングを実装している。iClone 7以降に搭載されているほか、Unreal EngineのVXGI統合ブランチが公開されている。
RTXGI SDK (NVIDIA)
Nvidia RTX英語版を使ったDynamic Diffuse Global Illumination (DDGI) 実装[4]
Beast (Autodesk ← Illuminate Labs)
リアルタイムGIミドルウェア。Autodesk Stingrayに標準搭載されていた。販売終了[5]

環境遮蔽(AO) ライブラリ[編集]

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

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

遮蔽カリングライブラリ[編集]

Umbra (Umbra←Hybrid Graphics)
遮蔽カリングに特化したミドルウェア。旧dPVS。Unity及びUnreal Engineに対応している。

レイトレーシングベース[編集]

レイトレーシングコアライブラリ[編集]

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

  • Embree - Intelが開発を支援している。オープンソース。Apacheライセンス。
  • Radeon Rays (AMD) - 旧AMD FireRays。オープンソースだったが、プロプライエタリ化された。
  • 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製。

ノイズ除去ライブラリ[編集]

モンテカルロ・レイトレーシング向け[編集]

  • Bayesian Collaborative Denoiser (BCD) - 非局所ベイジアンフィルタベース。BSDライセンス。appleseed 1.9以降[12]やLuxCoreRender 2.1以降[13]に使われている。
  • Altus SDK - InnoBright製。AltusはMaxwell Renderなどに搭載されている[14]
  • NVIDIA OptiX AI-accelerated denoiser - NVIDIA OptiX 5.0以降に含まれている。機械学習ベース。
  • Intel Open Image Denoise - 略称ODIN。機械学習ベースであり、Intel MKL-DNNライブラリを使用している。オープンソース。Apache License 2.0。
  • AMD Radeon Image Filter Library - 機械学習ベース。

ポストエフェクトライブラリ[編集]

  • NVIDIA PostWorks - 時間的アンチエイリアシングのNVIDIA TXAA及び被写界深度エフェクトが含まれている。DirectX 11向け。
  • NVIDIA NGX - 機械学習ベースのインペイント、スローモーション、アップスケーリングが含まれている。
  • AMD FidelityFX - Content Adaptive Sharpeningが含まれている。MITライセンス。DirectX 12とVulkanに対応。
  • YEBIS (シリコンスタジオ) - ポストエフェクトミドルウェア。Substance Designer/Painterなどで使われている。
  • ReShade - インジェクションベースのポストエフェクトライブラリ。既存のソフトウェアに使用できる。オープンソース。BSDライセンス。

フレームワークライブラリ[編集]

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

低レイヤー[編集]

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

シーングラフベース[編集]

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以降[15]やHoudini 18以降のSolaris[16]で使われている。
シーングラフはUniversal Scene Description形式 (.usd、.usda、.usdc、.usdz)。
VTK
シーングラフのvtkViewNodeを持っている[17]ParaViewOsiriX3DSlicer英語版などに使われている。オープンソース。BSDライセンス。

Web向けフレームワークライブラリ[編集]

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

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

Web用フレームワーク ライセンス 3D API 物理エンジン WebXR対応
WebGL WebGPU英語版
three.js MITライセンス Yes r121以降 ammo.js Yes
Babylon.js Apache License 2.0 Yes 4.1.0以降 Cannon.js、Oimo.js、Energy.js、ammo.js[18] Yes
PlayCanvas Engine MITライセンス Yes No ammo.js 1.25以降
xeogl MITライセンス Yes No ? No
Web用フレームワーク シーングラフ形式 モデル形式 シェーダー形式 テクスチャ形式
glTF OBJ FBX その他 PBS GLSL Basis KTX DDS その他
three.js JSON Object Scene format等 Yes Yes Yes PLY、Collada、STL、VRML、.babylon形式[19]、PlayCanvas形式、PMD/PMX等 Yes[20] Yes[21] Yes Yes[22] Yes[22] OpenEXR[22]PVRTC英語版[22]、RGBM[22]TGA[22]PNG[22]GIF[22]JPEG[22]
Babylon.js .babylon形式(JSONベース[23]) Yes Yes Yes 2.3.0以降 ? Yes Yes[24] Yes[24] TGA[24]
PlayCanvas Engine JSONベース Yes Yes No PlayCanvas JSON Model Yes Yes 1.24以降 Yes Yes
xeogl JSONベース Yes Yes No SceneJS、3DS Yes ? No No No


PBRシェーダー対応[編集]

three.js
WebGLだけでなく、CanvasやSVG、CSS3によるレンダリングにも対応している3Dエンジン。ブラウザベースのエディタのThree.js Editorも存在する。
Babylon.js
マイクロソフトの開発者を中心として開発されているWebGL向け3Dエンジン。ブラウザベースのエディタのBabylon.js Editorも存在する。3ds Max、Blender、Cheetah3D、Unity用のエクスポータープラグインも提供している。座標系に左手系を採用している。
PlayCanvas Engine (PLAYCANVAS)
Mozilla Foundationと提携するPLAYCANVASによって開発されたWeb向けゲームエンジン。オープンソース。ブラウザベースのエディタとしてPlayCanvas Editorがある。
xeogl (Lindsay Kay)
旧xeoEngine。SceneJSの後継。階層構造のSceneJSと異なり、xeoglは構成要素のグラフ構造となっている[25]。3D可視化向けであり、BIMデータ可視化のBIM Surferで使われている。
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で使われていた[26]。開発中止[27]

ジオメトリ操作[編集]

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

ジオメトリ形状モデリングカーネル[編集]

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

ジオメトリ処理ライブラリ[編集]

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

3Dブーリアンライブラリ[編集]

  • Carve - Mayaに使われている3Dブーリアンライブラリ[29]。Blenderにも使われていた[30]。オープンソース。MITライセンス[31]
  • 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ライセンス。
  • assimp - 様々な3Dモデル形式に対応するライブラリ。オープンソース。BSDライセンス。
  • Houdini Engine - Houdiniで使われているHoudini Digital Asset形式 (*.otl、*.hda)用のインポートライブラリ。

3Dモデル圧縮[編集]

  • OpenCTM - zlibライセンス。LZMA圧縮を使用している。形式はOpenCTM形式 (*.ctm)。
  • Open3DGC - MITライセンス。MPEG-SC3DMCコーデックの実装の一つ。glTF形式で使えるようになる予定だった[32]が、Dracoに置き換えられた。
  • Draco (Google) - Apache License 2.0。glTF形式 (KHR_draco_mesh_compression) 及びUSD形式[33]で使うことができる。
  • 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以降などに使われている[34]

キャッシュ形式[編集]

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

マルチパス画像[編集]

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

テクスチャ形式[編集]

  • Ptex - UV不要なPtex形式 (*.ptx) 用のライブラリ。Walt Disney Studiosが開発を支援している。オープンソース。BSDライセンス。

シェーダーおよびマテリアルライブラリ[編集]

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

ボリュームライブラリ[編集]

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

運動学ライブラリ[編集]

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

物理演算ライブラリ[編集]

Open Dynamics Engine
略称ODE。オープンソース。LGPL及びBSDのデュアルライセンス。SoftimageやHoudiniなどが対応していた。現在HoudiniはODEを非推奨としている[43]
Bullet Physics
オープンソースの物理エンジン。安定版の2系と、開発版でGPUパイプラインに対応した3系がある。多くの3DCGソフトウェアやプラグインが採用している。
Havok Physics (Microsoft←Intel←Havok)
物理エンジン。3ds Max及びMaya用のプラグインがある。
MBDyn
オープンソースの多体動力学解析ソフトウェア。MBDynをバックエンドに用いたBlender用アドオンとして、BlenderAndMBDynが存在する。
PhysBAM
マルチフィジクスシミュレーションライブラリ。
GameWorks PhysX (Nvidia←AGEIA)
マルチ物理エンジン。GPUによる剛体演算に対応している (PhysX-GRB)。3ds Max、Maya、Softimageの物理演算のバックエンドに使われているほか、3ds Max及びMaya用のDCCプラグインが存在する。
PhysX SDKの他にAPEX SDKを含んでいたが、PhysX Destruction/Clothing/Particlesは非推奨となった[44]。5.0で有限要素法に基づく可変形物体物理に対応した[45]
NVIDIA FleX (NVIDIA)
PBD(位置ベース物理シミュレーション)によるパーティクルベースのマルチ物理ライブラリ。
NVIDIA Blast (NVIDIA)
破壊シミュレーションライブラリ。
NVIDIA Cloth (NVIDIA)
クロスシミュレーションライブラリ。
FEMFX (AMD)
有限要素法に基づく可変形物体物理ライブラリ[46]。MITライセンス。Unreal Engine向けプラグインもある。

流体シミュレーション[編集]

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

海洋シミュレーション[編集]

NVIDIA WaveWorks (NDIVIA)

WebGL用物理演算ライブラリ[編集]

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

ヘア及びファーミドルウェア[編集]

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

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に標準搭載されている。販売終了[5]

機械学習向けグラフィクスライブラリ[編集]

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

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

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版もあった[58]
簡易UI構築ツールのScaleform CLIKが含まれている。また、メニュー画面向けのMenu Kit、HUD表示向けのHUD Kit、MMOゲーム向けのMMO Kitも含まれている。また、StingrayにはUI構築用のScaleform Studioが含まれている。
販売終了[5]
IGGY (Rad Game Tools)
FlashコンテンツをゲームUIとして使うことができるミドルウェア。
LWF (GREE)
FlashコンテンツをゲームUIとして使うことができるミドルウェア。オープンソース。zlibライセンス。Unity用アセットのLWF for Unityや、HTML5用のLWF Loaderなどもある。

3Dスキャン/トラッキングライブラリ[編集]

  • libmv - オープンソースのSfMライブラリであり、BlenderやNatronのトラッカーに利用されている[59]。OpenCV 3.1以降にも、libmvを基にしたopencv_sfmが搭載されている[60]
  • OpenCV - Structured Light APIを持っている。
  • AliceVision - Meshroomで使われている。

特定ハードウェア向け[編集]

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

モデル最適化ライブラリ[編集]

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

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

メッシュ最適化[編集]

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

ポリゴンリダクション[編集]

開発停止中[編集]

  • AMD Tootle (AMD) - オープンソース。頂点キャッシュ最適化、オーバードロー最適化、先取りキャッシュ最適化に対応していた。生成ツールのTootleSampleもある。開発停止中[63]
  • NvTriStrip (NVIDIA) - 三角ストリップ生成ライブラリ。頂点キャッシュ最適化、三角リスト出力などにも対応している[64]。生成ツールのNvTriStripperもある。
  • TriStripper - 三角ストリップ生成ライブラリ。オープンソース。Mariなどで使われている[65]
  • Vizup SDK - ポリゴンリダクションライブラリ。開発停止中。

VR/AR/MRライブラリ[編集]

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

OpenXR SDK (Khronos Group)
XRの標準APIであるOpenXR向け開発ライブラリ。Google Chrome/Microsoft Edge 81以降、Blender 2.83以降で使用されている[67][68]ものの、OpenXR対応デバイスはまだ少ない[68]

GPUベンダー製[編集]

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

開発停止中[編集]

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

プラットフォーム製[編集]

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

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

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及びPSVRに対応 (一部は回転のみ)。オープンソース。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[77]やOSVR-Vive-Libre (OpenHMD派生)[78][79]も存在する。
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オーディオは重要となっている[80]

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

遮蔽未対応[編集]

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

カラーマネージメントライブラリ[編集]

  • OpenColorIO (Academy Software Foundation[35]←OpenColorIO Project←Sony Pictures Imageworks)

脚注[編集]

[脚注の使い方]

注釈[編集]

  1. ^ NVIDIA独自拡張であったVK_NV_raytracingの後継

出典[編集]

  1. ^ Silicon Studio acquires Enlighten tech from Geomerics GamesIndustry.biz 2017年6月15日
  2. ^ ARM swallows graphics software biz Geomerics to tart-up mobile games The Register 2013年12月13日
  3. ^ Enlightenから堅牢なベイクした GI/リアルタイム GI 向けソリューションへの移行のお知らせ Unity Technologies 2019年7月3日
  4. ^ RTXGI: Scalable Ray Traced Global Illumination in Real Time NVIDIA 2020年3月23日
  5. ^ a b c Autodesk game middleware products are no longer available for purchase Autodesk 2017年
  6. ^ HDAO10.1 サンプル Microsoft
  7. ^ NVIDIA ShadowWorks NVIDIA
  8. ^ NVIDIA VXAO NVIDIA
  9. ^ Adaptive Screen Space Ambient Occlusion Intel 2017年2月13日
  10. ^ Vulkan Ray-Tracing Arrives With New Khronos Extension Phoronix 2020年3月17日
  11. ^ Metal for Accelerating Ray Tracing Apple
  12. ^ Appleseed team releases appleseed 1.9 CG Channel 2018年5月14日
  13. ^ LuxRender reborn as LuxCoreRender 2.0 CG Channel 2018年5月14日
  14. ^ Maxwell Render 4.1 brings Altus denoiser CGPress 2017年6月8日
  15. ^ Foundry releases Katana 3.1 CG Channel 2018年11月29日
  16. ^ SideFX ships Houdini 18 CG Channel 2019年11月27日
  17. ^ vtkViewNode Class Reference Kitware
  18. ^ Babylon.js Physics Engine - Basic Usage Babylon.js team
  19. ^ three.js - documentation - Reference - BabylonLoader three.js
  20. ^ MeshStandardMaterial Three.js team
  21. ^ ShaderMaterial Three.js team
  22. ^ a b c d e f g h i 『Learn Three.js: Programming 3D animations and visualizations for the web with HTML5 and WebGL, 3rd Edition』 P.408 Jos Dirksen 2018年 ISBN 978-1788833288
  23. ^ FileFormat Map (.babylon) Babylon.js team
  24. ^ a b c WHAT'S NEW? Babylon.js team
  25. ^ SceneJS and Applications (Plus a sneak peek at xeoEngine) Lindsay Kay 2015年7月2日
  26. ^ Patrick Cozzi編 『WebGL Insights』 p.195 2015年 ISBN 978-1498716079
  27. ^ OSG.JS WebGL framework Cedric Pinson (Sketchfab)
  28. ^ Graphviz-2.44.0 Linux From Scratch
  29. ^ Solving the “Disappearing” Boolean Problem in Maya Lesterbanks 2014年2月1日
  30. ^ Blender 2.62 adds better Booleans, motion tracking CG Channel 2012年2月17日
  31. ^ Change license to MIT Tobias Sargeant 2015年10月8日
  32. ^ glTF Introduction 'OpenGL Transmission Format' P.12 Kronos Group 2015年10月
  33. ^ Google and Pixar add Draco Compression to Universal Scene Description (USD) Format Google 2019年11月25日
  34. ^ NewTek ships LightWave 2020 CG Channel 2020年4月24日
  35. ^ a b c d OSL becomes an Academy Software Foundation CGPress 2020年4月22日
  36. ^ MaterialX: An Open Standard for NetworkBased CG Object Looks LUCASFILM
  37. ^ OpenVDB Adds GPU Support with NanoVDB; OpenVDB Version 7.1 Now Available Academy Software Foundation 2020年8月20日
  38. ^ NVIDIA Introduces Open-Source, Voxel-Based SDK to Accelerate GPU Applications ECN 2017年5月8日
  39. ^ Intel unveils HdOSPRay and OpenVKL CG Channel 2019年6月4日
  40. ^ 『Simulation, Modeling, and Programming for Autonomous Robots - Second International Conference, SIMPAR 2010』 P.16 Noriako Ando, et al. 2010年11月 ISSN 0302-9743
  41. ^ GDC: Modo 601 integrates Ikinema Runtime tech MCV 2012年3月6日
  42. ^ System Requirements Foundry
  43. ^ What’s new in Dynamics Side Effects Software
  44. ^ GameWorks PhysX Overview NVIDIA
  45. ^ Nvidia PhysX 5.0 SDK to Rival AMD FEMFX With Finite Element Method Tom's Hardware 2019年12月19日
  46. ^ AMD's FEMFX Deformable Physics Library Lands: Benefits From Lots of CPU Cores Tom's Hardware 2019年12月18日
  47. ^ a b 『Bounce, Tumble, and Splash!: Simulating the Physical World with Blender 3D』 ISBN 978-0470192801 P.224 Tony Mullen、Erwin Coumans 2008年6月30日
  48. ^ Mantaflow - Advanced Simulation Tools Blender Foundation 2014年10月26日
  49. ^ Blender Foundation releases Blender 2.82 CG Channel 2020年2月14日
  50. ^ Deep FX releases Deep Rising FX 3.0 CG Channel 2020年3月24日
  51. ^ a b c Babylon.js Physics Engine - Basic Usage Babylon.js team
  52. ^ cannon.js
  53. ^ a b 『WebGL Insights』 P.176 Patrick Cozzi ISBN 978-1-4987-1607-9
  54. ^ AMD announced Revolutionary TressFX 3.0: Open source, there is no Black Box Tech4Gamers 2014年12月10日
  55. ^ 1 - The Beginners Guide to Initialising CEGUI The CEGUI Development Team
  56. ^ 『Cinder Creative Coding Cookbook: Create Compelling Animations and Graphics With Kinect and Camera Input, Using One of the Most Powerful C++ Frameworks Available』 P.36 Dawid Gorny、Rui Madeira 2013年5月23日 ISBN 978-1849518703
  57. ^ 『Learning Three.js – the JavaScript 3D Library for WebGL - Second Edition』 P.26 Jos Dirksen 2015年3月31日 ISBN 978-1784392215
  58. ^ Re: Don't buy Scaleform Unity3D plugin Autodesk 2016年2月1日
  59. ^ Natron 2.1 released CGPress 2016年7月2日
  60. ^ Structure From Motion OpenCV
  61. ^ Kinect for Windows Microsoft
  62. ^ GL_NV_mesh_shader及びVK_NV_mesh_shader
  63. ^ Tootle retirement - AMD Triangle Order Optimization Tool AMD
  64. ^ NvTriStrip Library NVIDIA 2004年
  65. ^ Mari 2.6V5 User Guide p.397,p.426 Foundry 2015年
  66. ^ a b VRパフォーマンスを大幅に引き上げるGPU技術 NVIDIA「GameWorks VR」とは? GAME Watch 2015年6月1日
  67. ^ Introduction to Khronos Group and OpenXR Khronos Group 2020年6月2日
  68. ^ a b Blender Foundation releases Blender 2.83 LTS CG Channel 2020年6月4日
  69. ^ Unreal Engine 4がNVIDIAの「GameWorks VR」を採用 PC Watch 2015年11月10日
  70. ^ Unity engine adds support for Nvidia VRWorks SDK The Tech Report 2016年3月15日
  71. ^ a b NVIDIA GeForce GTX 1080 Whitepaper P.46-48
  72. ^ Snapdragon VR SDK Qualcomm
  73. ^ Unity Launches Two New Versions, Unity Collaborate Feature and the Unity Developer Certification Program Unity Technologies 2016年3月15日
  74. ^ Install the tools Microsoft
  75. ^ HTC Vive SteamVR SDK HTC
  76. ^ Status of ARCore post sceneForm abandonment #1049 - devbridie commented on 27 May Dereck Bridie 2020年5月27日
  77. ^ July 2016 developer updates OSVR Organization 2016年7月29日
  78. ^ Collabora Has Been Working On A Fully-Open HTC Vive Driver Phoronix 2016年10月12日
  79. ^ Report: Collabora Is Analyzing Vive's Lighthouse Signals VR on Linux 2016年9月20日
  80. ^ GDC 2017 -「TrueAudio Next」のないゲームサウンドは,テクスチャのない3Dグラフィックスのようなもの!? AMDが採用を呼びかける 4Gamer.net 2017年3月4日
  81. ^ AMD、リアルタイムレンダリングのVR向け音声技術 ASCII.jp 2016年8月18日
  82. ^ Devs can now mess around with Valve's free (beta) Steam Audio SDK Gamasutra 2017年2月23日
  83. ^ 『Android NDK Beginner's Guide: Discover the Native Side of Android and Inject the Power of C/C++ in Your Applications』 Sylvain Ratabouil 2012年1月30日 ISBN 978-1849691529
  84. ^ 『Android Native Development Kit Cookbook』 Felpeng Liu 2013年3月26日 ISBN 978-1849691505
  85. ^ Features Facebook