低レベルネイティブプラグインインターフェース
低レベルのネイティブプラグインのシェーダーコンパイラーアクセス

低レベルネイティブプラグインのレンダリング拡張

低レベルネイティブプラグインインターフェース に加えて、Unity は特定のイベントが発生するとコールバックを受け取る低レベルのレンダリング拡張もサポートします。低レベルのレンダリング拡張は、たいてい、プラグインで低レベルのレンダリングを実装し制御するために使用され、Unity のマルチスレッドレンダリングを利用可能にします。 

この拡張の低レベルの性質によって、プラグインはデバイスが作成される前にプリロードしなければならない場合があります。現在、法則は名前ベース、つまり、プラグイン名が GfxPlugin で始まる必要があります (例えば、 GfxPluginMyNativePlugin)。

Unity がアクセス可能なレンダリング拡張の定義は Unity エディターによって提供され IUnityRenderingExtensions.h ファイルにあります (ファイルパスは Unity\Editor\Data\PluginAPI)。

ネイティブプラグインをサポートするすべてのプラットフォームでこれらの拡張はサポートされます。

レンダリング拡張 API

レンダリング拡張の長所を生かすために、プラグインは UnityRenderingExtEvent と、オプションで UnityRenderingExtQuery をエクスポートする必要があります。インクルードファイルには多くのドキュメントが含まれています。

レンダリングスレッドのプラグインコールバック

Unity がビルトインイベントの 1 つを発生させるときはいつでも、 UnityRenderingExtEvent 経由でプラグインが呼び出されます。さらに、そのコールバックは、スクリプトの CommandBuffer.IssuePluginEventAndDataCommandBuffer.IssuePluginCustomBlit 経由でコマンドバッファーに加えられます。


低レベルネイティブプラグインインターフェース
低レベルのネイティブプラグインのシェーダーコンパイラーアクセス