VRCGraphics
Udonは、Unityのさまざまなグラフィックス機能にアクセスできます。
型
VRCShader
グローバルシェーダーセッターのための包括的なクラスです。詳細は後述の関数ドキュメントを参照してください。
VRCGraphics
Unityの組み込みクラスである`Graphics`のサブセットを公開します。詳細は各関数のドキュメントを参照してください。
VRCCameraSettings & VRCQualitySettings
ユーザーのスクリーンカメラ、ハンドヘルドカメラ、およびUnityのグローバルな品質設定に関する情報と制限付きの制御を公開します。詳細はVRCCameraSettingsを参照してください。
公開されている関数
VRCGraphics.Blit()
シェーダーを使用して、ソーステクスチャをターゲットのRenderTextureにコピーします。宛先にnullを指定することはできない点に注意してください。
詳細はGraphics.Blitを参照してください。
VRCGraphics.Blit()の具体的な使用方法については、ミニマップのサンプルを確認してください。

Meta Questに関する例外事項
VRCGraphics.Blitは、以下のいずれかを行わない限り、QuestのGPUでは動作しません:
シェーダーに「ZTest Always」を追加する または ターゲットのRenderTextureの深度をオフにする
これらを行わない場合、処理は失敗します。
VRCGraphics.DrawMeshInstanced()
GPUインスタンシングを使用して、同じメッシュを複数回描画します。
詳細はGraphics.DrawMeshInstancedを参照してください。
VRCShader.PropertyToID()
PropertyToIDを使用して、シェーダーのプロパティ名からIDを取得します。この関数は初期化時に一度だけ呼び出してください。取得したIDは再利用可能であり、異なるマテリアルやシェーダー間であっても変化することはありません。
VRCShader.SetGlobalで使用するには、プロパティ名に「_Udon」というプレフィックスを付けるか、リテラル文字列「_AudioTexture」である必要がある点に注意してください。ただし、ID自体はそれに関係なく取得できます。
VRCShader.SetGlobal()
PropertyToIDで取得したIDをキーとして使用し、適切な型の値を指定します。指定した値は、ワールド内のすべてのシェーダー(アバター上のシェーダーも含む!)で、PropertyToIDに渡した名前で利用可能になります。
利用可能なバリエーション:
- VRCShader.SetGlobalColor()
- VRCShader.SetGlobalFloat()
- VRCShader.SetGlobalFloatArray()
- VRCShader.SetGlobalInteger() は、Unityのバグにより現状では値を
floatとして設定します。 - VRCShader.SetGlobalMatrix()
- VRCShader.SetGlobalMatrixArray()
- VRCShader.SetGlobalTexture()
- VRCShader.SetGlobalVector()
- VRCShader.SetGlobalVectorArray()
追加のシェーダーグローバル変数
VRChatは、カスタムアバターやワールドのシェーダーで使用できるいくつかの特別なグローバルシェーダー変数を公開しています。詳細はこちらを参照してください。
最終更新: