当前位置: 首页>>代码示例>>C#>>正文


C# Scene.Commit方法代码示例

本文整理汇总了C#中Scene.Commit方法的典型用法代码示例。如果您正苦于以下问题:C# Scene.Commit方法的具体用法?C# Scene.Commit怎么用?C# Scene.Commit使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Scene的用法示例。


在下文中一共展示了Scene.Commit方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: LoadFromStream

 public static Scene LoadFromStream(Stream input)
 {
     using (BinaryReader reader = new BinaryReader(input))
     {
         Scene scene = new Scene(new Vector2f(reader.ReadSingle(), reader.ReadSingle()));
         while (reader.PeekChar() > -1)
             scene.Add(BuildObject(scene, reader));
         reader.Close();
         if (scene.Camera == null) scene.CreateCamera();
         scene.Commit();
         return scene;
     }
 }
开发者ID:niemandkun,项目名称:MiraiEngine,代码行数:13,代码来源:SceneManager.cs

示例2: CreateGeometry

        private static void CreateGeometry(SceneFlags sceneFlags, TraversalFlags traversalFlags, MeshFlags meshFlags, TriangleMesh sphere, int numMeshes)
        {
            using (var scene = new Scene<Sphere>(sceneFlags, traversalFlags))
            {
                for (var t = 0; t < numMeshes; ++t)
                {
                    scene.Add(new Sphere(sceneFlags, traversalFlags, sphere, meshFlags));

                    for (int v = 0; v < sphere.Vertices.Count; ++v)
                        sphere.Vertices[v] = (Vector)sphere.Vertices[v] + new Vector(1, 1, 1);
                }

                scene.Commit();
            }
        }
开发者ID:TomCrypto,项目名称:Embree.NET,代码行数:15,代码来源:Benchmarks.cs

示例3: Occlusions

        public static IEnumerable<Tuple<String, Action, Func<Double, String>>> Occlusions(SceneFlags sceneFlags, TraversalFlags traversalFlags, int numPhi, int w, int h)
        {
            Func<Double, String> timer = (t) => String.Format("{0:N3} Mrays/s", 1e-6 * w * h / t);

            using (var scene = new Scene<Sphere>(sceneFlags, traversalFlags))
            {
                scene.Add(new Sphere(sceneFlags, traversalFlags, numPhi));
                scene.Commit();

                if (traversalFlags.HasFlag(TraversalFlags.Single))
                    yield return new Tuple<String, Action, Func<Double, String>>("coherent_occlusion1",
                                                                                 () => CoherentOcclusion1(scene, w, h),
                                                                                 timer);
                if (traversalFlags.HasFlag(TraversalFlags.Packet4))
                    yield return new Tuple<String, Action, Func<Double, String>>("coherent_occlusion4",
                                                                                 () => CoherentOcclusion4(scene, w, h),
                                                                                 timer);
                if (traversalFlags.HasFlag(TraversalFlags.Packet8))
                    yield return new Tuple<String, Action, Func<Double, String>>("coherent_occlusion8",
                                                                                 () => CoherentOcclusion8(scene, w, h),
                                                                                 timer);
                if (traversalFlags.HasFlag(TraversalFlags.Packet16))
                    yield return new Tuple<String, Action, Func<Double, String>>("coherent_occlusion16",
                                                                                 () => CoherentOcclusion16(scene, w, h),
                                                                                 timer);

                var random = new Random();
                var rays = new Ray[w * h];

                for (var t = 0; t < w * h; ++t)
                    rays[t] = new Ray(Vector.Zero, new Vector(2 * (float)random.NextDouble() - 1,
                                                              2 * (float)random.NextDouble() - 1,
                                                              2 * (float)random.NextDouble() - 1));

                if (traversalFlags.HasFlag(TraversalFlags.Single))
                    yield return new Tuple<String, Action, Func<Double, String>>("incoherent_occlusion1",
                                                                                 () => IncoherentOcclusion1(scene, w * h, rays),
                                                                                 timer);
                if (traversalFlags.HasFlag(TraversalFlags.Packet4))
                    yield return new Tuple<String, Action, Func<Double, String>>("incoherent_occlusion4",
                                                                                 () => IncoherentOcclusion4(scene, w * h, rays),
                                                                                 timer);
                if (traversalFlags.HasFlag(TraversalFlags.Packet8))
                    yield return new Tuple<String, Action, Func<Double, String>>("incoherent_occlusion8",
                                                                                 () => IncoherentOcclusion8(scene, w * h, rays),
                                                                                 timer);
                if (traversalFlags.HasFlag(TraversalFlags.Packet16))
                    yield return new Tuple<String, Action, Func<Double, String>>("incoherent_occlusion16",
                                                                                 () => IncoherentOcclusion16(scene, w * h, rays),
                                                                                 timer);
            }
        }
开发者ID:TomCrypto,项目名称:Embree.NET,代码行数:52,代码来源:Benchmarks.cs

示例4: LoadFlightTest

        private Scene LoadFlightTest()
        {
            var scene = new Scene(new Vector2f(Int16.MaxValue * 2, 768));
            scene.CreateCamera();

            var player = ObjectsManager.Build((uint)ObjectID.Player, new Vector2f(256, 300));
            scene.Add(player);

            for (var x = 0; x < scene.Size.X; x += 512)
            {
                var upperWall = ObjectsManager.Build((uint)ObjectID.Wall, new Vector2f(x, 0));
                var bottomWall = ObjectsManager.Build((uint)ObjectID.Wall, new Vector2f(x, scene.Size.Y - 128));
                scene.Add(upperWall);
                scene.Add(bottomWall);
            }

            for (var x = 500; x < 2000; x += 256)
            {
                scene.Add(ObjectsManager.Build((uint)ObjectID.GreenShip, new Vector2f(x, 128 + 64)));
                scene.Add(ObjectsManager.Build((uint)ObjectID.GreenShip, new Vector2f(x, scene.Size.Y - 64 - 256)));
            }

            scene.Commit();
            return PrepareScene(scene);
        }
开发者ID:niemandkun,项目名称:MiraiEngine,代码行数:25,代码来源:MainMenu.cs


注:本文中的Scene.Commit方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。