Version: Unity 6.0 (6000.0)
言語 : 日本語
URP の DOTS インスタンシングシェーダーの例
URP の定数データにアクセスする DOTS インスタンシングシェーダーの例

URP のインスタンスごとのデータにアクセスする DOTS インスタンスシェーダーの例

以下の例の説明:

  • Color のメタデータ値は 0x80001000 です。
  • インスタンスインデックスは 5 です。
  • インスタンス 0 のデータはアドレス 0x1000 から開始します。
  • インスタンス 5 のデータは、アドレス 0x1000 + 5 * sizeof(float4) = 0x1050 にあります。

最上位ビットはすでに設定されているので、アクセサーマクロはデフォルトをロードしません。つまり、c0c1、および c2 はすべて、アドレス 0x1050unity_DOTSInstanceData からロードされた同じ値を持ちます。

void ExamplePerInstance()
{
    // rawMetadataValue will contain 0x80001000
    uint rawMetadataValue = UNITY_DOTS_INSTANCED_METADATA_NAME(float4, Color);

    float4 c0 = UNITY_ACCESS_DOTS_INSTANCED_PROP(float4, Color);
    float4 c1 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_DEFAULT(float4, Color);
    float4 c2 = UNITY_ACCESS_DOTS_INSTANCED_PROP_WITH_CUSTOM_DEFAULT(float4, Color, float4(1, 2, 3, 4));
}
URP の DOTS インスタンシングシェーダーの例
URP の定数データにアクセスする DOTS インスタンシングシェーダーの例