示例#1
0
        static private JobHandle ScheduleCalculateInfoJob(Data data, Info info, bool useCullingData, NativeArray <TopCellInfo> infoArray, NativeArray <MergeCellInfo> mergeInfoArray, NativeList <float3> vertices, NativeList <int> triangles, NativeList <float3> normals, NativeList <float2> uvs, JobHandle lastHandle = default)
        {
            float3 normal = info.IsFlipped ? new float3(0, -1, 0) : new float3(0, 1, 0);

            if (useCullingData)
            {
                var generator = new CulledOptimizedTopCellInfoGenerator();
                generator.mergeInfoArray = mergeInfoArray;
                generator.culledArray    = data.CullingDataRawData;
                lastHandle = CalculateInfoJob <CulledOptimizedTopCellInfoGenerator, TopCellInfo> .Schedule(generator, data, vertices, triangles, info.GenerateNormals, normal, normals, info.GenerateUvs, uvs, infoArray, lastHandle);
            }
            else
            {
                var generator = new OptimizedTopCellInfoGenerator();
                generator.mergeInfoArray = mergeInfoArray;
                lastHandle = CalculateInfoJob <OptimizedTopCellInfoGenerator, TopCellInfo> .Schedule(generator, data, vertices, triangles, info.GenerateNormals, normal, normals, info.GenerateUvs, uvs, infoArray, lastHandle);
            }

            return(lastHandle);
        }
示例#2
0
 public TopCellInfo GenerateInfoNoTriangles(int index, float cornerDistance, float rightDistance, float topRightDistance, float topDistance, ref int nextVertex, ref int nextTriIndex)
 => OptimizedTopCellInfoGenerator.GenerateInfo(mergeInfoArray, index, cornerDistance, rightDistance, topRightDistance, topDistance, ref nextVertex, ref nextTriIndex, false);