コード例 #1
0
ファイル: BvhDataAdapter.cs プロジェクト: HungryBear/rayden
 public GpuSmitsBVHNode[] BuildTopData(AABB[] bounds)
 {
     using (
         BBoxData data =
             new BBoxData(
                 bounds.Select(
                     item =>
                     new Box(new VertInfo(item.Min.x, item.Min.y, item.Min.z),
                             new VertInfo(item.Max.x, item.Max.y, item.Max.z))).ToArray()))
     {
         using (TopBVHHandle handle = new TopBVHHandle(data, 2u, 4, 60, 20, 0.5f))
         {
             var resdata = handle.GetData();
             Tracer.TraceLine("Complete!");
             return resdata.
                 //Except(new[]{data.First()}).
            Select(item => new GpuSmitsBVHNode()
            {
                bbox = new AABBInfo(new Point(item.bbox.pMin.x, item.bbox.pMin.y, item.bbox.pMin.z), new Point(item.bbox.pMax.x, item.bbox.pMax.y, item.bbox.pMax.z)),
                primitive = item.primitive,
                skipIndex = item.skipIndex
            }).ToArray();
         }
     }
 }