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

> Access low-level graphics device and rendering features from native plug-ins.

Unity は[低レベルのネイティブプラグインインターフェース](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native-plugin-interface.md)に加えて、特定のイベントが発生するとコールバックを受け取る低レベルのレンダリング拡張もサポートしています。低レベルのレンダリング拡張は主に、プラグインで低レベルのレンダリングを実装し制御するために使用され、Unity のマルチスレッドレンダリングを利用可能にします。

この拡張子の低レベルの性質により、デバイスを作成する前にプラグインのプリロードが必要な場合があります。現在、規則は名前ベースです。プラグイン名は *GfxPlugin* で始まる必要があります (例えば、*GfxPluginMyNativePlugin*)。

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

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

## レンダリング拡張 API##rendering-extensions-api

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

## レンダリングスレッドのプラグインコールバック##plug-in-callbacks-on-the-rendering-thread

Unity がビルトインイベントの 1 つをトリガーするときはいつでも、 *UnityRenderingExtEvent* 経由でプラグインが呼び出されます。さらに、そのコールバックは、スクリプトの [CommandBuffer.IssuePluginEventAndData](/engine/6000.0/script-reference/unity-engine-rendering/command-buffer/issue-plugin-event-and-data.md) か [CommandBuffer.IssuePluginCustomBlit](/engine/6000.0/script-reference/unity-engine-rendering/command-buffer/issue-plugin-custom-blit.md) 経由で CommandBuffers に追加することができます。

## 追加リソース##additional-resources

* [低レベルのネイティブプラグインのシェーダーコンパイラーへのアクセス](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native-plugin-interface/low-level-native-plugin-shader-compiler-access.md)
* [低レベルのネイティブプラグイン用メモリマネージャー API](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native-plugin-interface/low-level-native-plugin-memory-manager-api.md)
* [低レベルのネイティブプラグイン用メモリマネージャー API のリファレンス](/engine/6000.0/manual/scripting/compilation-and-code-reload/plug-ins/native-plugin-interface/low-level-native-plugin-memory-manager-api/reference.md)
