public float[] BvhNodesAsFloatArray(GpuSmitsBVHNode[] nodes) { return nodes.SelectMany(n => { var lc = new GpuBVHNodeU(ref n); var r = lc.v0; var data = new[] { r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7] }; return data.ToArray(); }).ToArray(); }
internal GpuBVHNodeU(ref GpuSmitsBVHNode n) { this.bbox = new BoundingVolumeHierarchyAccelerationStructure.BBox(n.bbox.Min, n.bbox.Max); this.primitive = n.primitive; this.skipIndex = n.skipIndex; }