本文整理汇总了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;
}
}
示例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();
}
}
示例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);
}
}
示例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);
}