Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

IRayTracingAccelStruct.cs 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. namespace UnityEngine.Rendering.UnifiedRayTracing
  3. {
  4. internal struct MeshInstanceDesc
  5. {
  6. public Mesh mesh;
  7. public int subMeshIndex;
  8. public Matrix4x4 localToWorldMatrix;
  9. public uint mask;
  10. public uint instanceID;
  11. public bool enableTriangleCulling;
  12. public bool frontTriangleCounterClockwise;
  13. public MeshInstanceDesc(Mesh mesh, int subMeshIndex = 0)
  14. {
  15. this.mesh = mesh;
  16. this.subMeshIndex = subMeshIndex;
  17. localToWorldMatrix = Matrix4x4.identity;
  18. mask = 0xFFFFFFFF;
  19. instanceID = 0xFFFFFFFF;
  20. enableTriangleCulling = true;
  21. frontTriangleCounterClockwise = false;
  22. }
  23. }
  24. internal interface IRayTracingAccelStruct : IDisposable
  25. {
  26. int AddInstance(MeshInstanceDesc meshInstance);
  27. void RemoveInstance(int instanceHandle);
  28. void ClearInstances();
  29. void UpdateInstanceTransform(int instanceHandle, Matrix4x4 localToWorldMatrix);
  30. void UpdateInstanceID(int instanceHandle, uint instanceID);
  31. void UpdateInstanceMask(int instanceHandle, uint mask);
  32. void Build(CommandBuffer cmd, GraphicsBuffer scratchBuffer);
  33. ulong GetBuildScratchBufferRequiredSizeInBytes();
  34. }
  35. }