2,479 バイト追加,
2020年3月9日 (月) 07:03 '''veldrid'''とは、完全にクロスプラットフォームであり、DirectXやOpenGLなどの[[グラフィックスAPI]]に依存しない[[.NET]]用のレンダリングおよび[[GPGPU]]の[[ライブラリ]]である。
システムのGPUへの強力で統一されたインターフェイスを提供し、他のどの.NETライブラリよりも高度な機能を備えています。 他のプラットフォームまたはベンダー固有のテクノロジーとは異なり、Veldridを使用して、真にポータブルな高性能3Dアプリケーションを作成できます。
<br />
== SPIR-Vを利用 ==
Veldridでは[[プログラマブルシェーダ]]は必ず「[[SPIR-V]]」を経由する(アプリのビルド時にSPIR-Vで保持する)。
Veldridには[[Vulkan SDK]]に含まれる「spirv-cross」を内包しており、これを利用して、[[DirectX]]環境であれば[[SPIR-V]]から[[HLSL]]に、[[OpenGL]]環境であれば[[SPIR-V]]から[[GLSL]]に、[[macOS]]などであれば[[SPIR-V]]から[[Metal]](MSL)に実行時に動的に変換される仕組みとなっている。[[Vulkan]]の場合はSPIR-Vそのまま実行だ。すばらしいね。
サポートしているグラフィックスAPI
* [[Direct3D 11]]
* [[Vulkan]]
* [[Metal]]
* [[OpenGL 3]]
* [[OpenGL ES 3]]
<br />
== ビュー単位で実装可能 ==
[[MonoGame]]などのように[[SDL]]を利用している似たような[[ライブラリ]]もあるが、それらは[[SDL]]の制約によりウインドウ全面をサーフェイスにしてしまうものばかりだ。この方式のはボタンやテキストボックスなどの部品を自前実装しないといけないなどの制約があり、[[ゲーム]]であればいいが[[3DCAD]]なんかを実装しようと思うと非常に不便であった。
一方、Veldridではビュー単位も簡単に実装できる。[[Xamarin.Mac]]で「ビューコントローラに載る1つのビューだけがVeldridで描画」などということもできる。つまりNSOpenGLViewと同じようなことができる。ボタン類なんかも普通のアプリ開発と同様に[[Xcode]]でポチポチすることができる。すばらしいね。
<br />
== 外部リンク ==
* ソースコード = https://github.com/mellinoe/veldrid
* サンプル = https://github.com/mellinoe/veldrid-samples
* NuGet = https://www.nuget.org/packages/Veldrid
[[カテゴリ:3DCG]]