Version: Unity 6.0 (6000.0)
语言 : 中文
URP 中 DOTS 实例化着色器示例
访问 URP 中常量数据的 DOTS 实例化着色器示例

URP 中访问每个实例数据的 DOTS 实例化着色器的示例

在此示例中:

  • Color 的元数据值为 0x80001000
  • 实例索引为 5
  • 实例 0 的数据从地址 0x1000 开始。
  • 实例 5 的数据位于地址 0x1000 + 5 * sizeof(float4) = 0x1050

由于已设置最高有效位,访问器宏不会加载默认值。这表示 c0c1c2 都将具有相同的值(从 unity_DOTSInstanceData 地址 0x1050 加载)。

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 实例化着色器示例
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961