版本: Unity 6 (6000.0)
语言English
  • C#

RayTracingAccelerationStructure.AddInstance

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实会阅读用户提出的每个建议更改,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public int AddInstance(Renderer targetRenderer, RayTracingSubMeshFlags[] subMeshFlags, bool enableTriangleCulling, bool frontTriangleCounterClockwise, uint mask, uint id);

参数

targetRenderer 要添加到 RayTracingAccelerationStructure 的 Renderer。
enableTriangleCulling 一个布尔值,指示是否为该光线追踪实例启用正面/背面剔除。剔除在 GPU 执行射线-三角形相交测试时发生。默认情况下启用剔除(true)。
frontTriangleCounterClockwise 一个布尔值,指示是否翻转此光线追踪实例中三角形的朝向。如果将其设置为 true,则正面三角形将变为背面三角形,反之亦然。默认设置为 false。
mask 一个 8 位掩码,您可以使用它来选择性地与仅通过掩码的光线相交与目标 Renderer 关联的光线追踪实例。默认情况下启用所有光线 (0xff)。
subMeshFlags 控制射线与子网格几何体相交时着色器执行行为的标志列表。有关更多信息,请参阅 RayTracingSubMeshFlags
id 一个可选的实例 ID 值,可以使用 InstanceID() HLSL 函数访问。

返回值

int 表示句柄的值,您可以使用它执行后续操作(例如 RemoveInstance)。

描述

将光线追踪实例添加到 RayTracingAccelerationStructure。

加速结构中的光线追踪实例包含一个 8 位用户定义的实例掩码。 TraceRay() HLSL 函数有一个 8 位输入参数 InstanceInclusionMask,它与在 GPU 上遍历加速结构期间作为相交候选者的任何光线追踪实例的实例掩码进行 AND 操作。如果 AND 操作的结果为零,则忽略相交。

添加所有必需的实例后,请使用 RayTracingAccelerationStructure.BuildCommandBuffer.BuildRayTracingAccelerationStructure 在 GPU 上构建加速结构。

其他资源:RayTracingAccelerationStructure.RemoveInstanceRayTracingSubMeshFlags


声明

public int AddInstance(ref Rendering.RayTracingMeshInstanceConfig config, Matrix4x4 matrix, Nullable<Matrix4x4> prevMatrix = null, uint id);

参数

config 此网格光线追踪实例使用的通用参数。
matrix 光线追踪实例的变换矩阵。
prevMatrix 光线追踪实例的前一帧变换矩阵,您可以使用它在着色器代码中计算运动向量。
id 一个可选的实例 ID 值,您可以使用 InstanceID() HLSL 函数访问。

返回值

int 表示句柄的值,您可以使用它执行后续操作(例如 RemoveInstance、UpdateInstancePropertyBlock 或 UpdateInstanceTransform)。

描述

将与 Mesh 关联的光线追踪实例添加到 RayTracingAccelerationStructure。

config 函数参数指定相关的 Mesh 和关联参数。

添加所有必需的实例后,请使用 RayTracingAccelerationStructure.BuildCommandBuffer.BuildRayTracingAccelerationStructure 在 GPU 上构建加速结构。

其他资源:RayTracingAccelerationStructure.RemoveInstanceRayTracingShader.Dispatch


声明

public int AddInstance(ref Rendering.RayTracingGeometryInstanceConfig config, Matrix4x4 matrix, Nullable<Matrix4x4> prevMatrix = null, uint id);

参数

config 此几何体光线追踪实例使用的通用参数。
matrix 光线追踪实例的变换矩阵。
prevMatrix 光线追踪实例的前一帧变换矩阵,您可以使用它在着色器代码中计算运动向量。
id 一个可选的实例 ID 值,您可以使用 InstanceID() HLSL 函数访问。

返回值

int 表示句柄的值,您可以使用它执行后续操作(例如 RemoveInstance、UpdateInstancePropertyBlock 或 UpdateInstanceTransform)。

描述

将光线追踪实例添加到 RayTracingAccelerationStructure。

config 函数参数指定相关的三角形几何体数据(顶点和索引缓冲区)以及关联参数。

添加所有必需的实例后,请使用 RayTracingAccelerationStructure.BuildCommandBuffer.BuildRayTracingAccelerationStructure 在 GPU 上构建加速结构。

其他资源:RayTracingAccelerationStructure.RemoveInstanceRayTracingShader.Dispatch


声明

public int AddInstance(Rendering.RayTracingAABBsInstanceConfig config, Matrix4x4 matrix, uint id);

参数

config 此 AABBs 光线追踪实例使用的通用参数。
matrix 光线追踪实例的变换矩阵。
id 一个可选的实例 ID 值,您可以使用 InstanceID() HLSL 函数访问。

返回值

int 表示句柄的值,可用于执行后续操作(例如 RemoveInstance、UpdateInstancePropertyBlock 或 UpdateInstanceTransform)。

描述

将与轴对齐包围盒 (AABB) 列表关联的光线追踪实例添加到 RayTracingAccelerationStructure,以便使用相交着色器生成过程几何体。

在您将 config.aabbBuffer 参数设置为的 GraphicsBuffer 中定义 AABB 列表。Unity 使用 AABB 为此光线追踪实例构建加速结构。

AABB 在局部空间中定义,可以使用 matrix 参数进行转换。使用 RayTracingAccelerationStructure.UpdateInstanceTransform 在以后更新光线追踪实例的变换。

当调用此函数时,Unity 会将 config.materialProperties 参数中的 MaterialPropertyBlock 内容复制到光线追踪实例中。不会考虑作为参数传递的 MaterialPropertyBlock 对象的任何后续更改。使用 RayTracingAccelerationStructure.UpdateInstancePropertyBlock 在以后再次更新属性。

当射线在光线追踪调度期间与列表中的一个 AABB 相交时,GPU 会调用一个相交着色器。您可以使用 PrimitiveIndex() HLSL 函数检索加速结构中离散 AABB 的索引。

添加所有必需的实例后,请使用 RayTracingAccelerationStructure.BuildCommandBuffer.BuildRayTracingAccelerationStructure 在 GPU 上构建加速结构。

其他资源:RayTracingAccelerationStructure.RemoveInstanceRayTracingShader.Dispatch


已过时 此 AddInstance 方法已弃用,将在 Unity 2024.1 中删除。请使用替代的 AddInstance 方法将 Renderer 添加到加速结构。

声明

public void AddInstance(Renderer targetRenderer, bool[] subMeshMask, bool[] subMeshTransparencyFlags, bool enableTriangleCulling, bool frontTriangleCounterClockwise, uint mask, uint id);

描述

已弃用。请使用替代方法将 Renderer 添加到加速结构。


已过时 此 AddInstance 方法已弃用,将在 Unity 2024.1 中删除。请使用替代的 AddInstance 方法将过程几何体 (AABB) 添加到加速结构。

声明

public void AddInstance(GraphicsBuffer aabbBuffer, uint numElements, Material material, bool isCutOff, bool enableTriangleCulling, bool frontTriangleCounterClockwise, uint mask, bool reuseBounds, uint id);

描述

已弃用。请使用替代方法将过程几何体 (AABB) 添加到加速结构。


已过时 此 AddInstance 方法已弃用,将在 Unity 2024.1 中删除。请使用替代的 AddInstance 方法将过程几何体 (AABB) 添加到加速结构。

声明

public int AddInstance(GraphicsBuffer aabbBuffer, uint aabbCount, bool dynamicData, Matrix4x4 matrix, Material material, bool opaqueMaterial, MaterialPropertyBlock properties, uint mask, uint id);

描述

已弃用。请使用替代方法将过程几何体 (AABB) 添加到加速结构。