2 using System.Collections.Generic;
5 using System.Runtime.InteropServices;
9 using Paradox.Effects.Modules;
10 using Paradox.Framework;
11 using Paradox.Framework.Graphics;
12 using Paradox.Framework.Mathematics;
13 using Paradox.Framework.Serialization;
14 using Paradox.Framework.VirtualFileSystem;
15 using Paradox.Framework.Serialization.Contents;
16 using Paradox.Framework.Graphics.Data;
18 namespace SimpleTeapot
24 [DllImport(
"crtdll.dll")]
25 public static extern int _kbhit();
28 static void Main(
string[] args)
30 EngineContext.Setup();
31 EngineContext.RenderSystem =
new DefaultRenderSystem();
32 EngineContext.RenderSystem.Init(EngineContext.RenderContext);
34 var effect = EngineContext.RenderContext.BuildEffect().Using<RenderTargetFeature>().Using<TransformationFeature>().Using<TextureFeature>().Compile();
36 var vfs =
new VirtualFileStorage();
37 vfs.MountFileSystem(
"/global_data",
"..\\deps\\data\\");
38 vfs.MountFileSystem(
"/global_data2",
"..\\data\\");
39 var packageVfs = vfs.MountPackage(
"/testpackage",
"/global_data/factory3.dat").Result;
40 var contentManager =
new ContentManager(vfs, packageVfs);
41 contentManager.RegisterSerializer(
new SimpleContentSerializer<MeshData>());
42 contentManager.RegisterSerializer(
new TextureSerializer());
43 contentManager.RegisterSerializer(
new GpuTextureSerializer(EngineContext.RenderContext.GraphicsDevice));
45 var meshData = contentManager.Load<MeshData>(
"/testpackage/guid/" + packageVfs.Objects[2].Header.ObjectId.Guid);
46 var effectMesh =
new EffectMesh(effect, meshData);
51 var projectionMatrix = Matrix.PerspectiveFovLH((float)Math.PI * 0.5f, 1024.0f / 768.0f, 1.0f, 4000.0f);
53 EngineContext.RenderContext.ParameterGroups.Get(TransformationFeature.TransformationGroup).SetAs(TransformationFeature.Projection, projectionMatrix);
55 var factoryTexture = (ITexture2D)contentManager.Load<ITexture>(
"/global_data2/media/factory.png");
56 effectMesh.Parameters.Set(TextureFeature.Texture, factoryTexture);
58 var world = Matrix.Scaling(0.1f) * Matrix.Translation(
new Vector3(-30.0f, -30.0f, 0.0f));
59 effectMesh.Parameters.Set(TransformationFeature.World, world);
61 var depth = EngineContext.RenderContext.GraphicsDevice.DepthStencilBuffer.New(DepthFormat.Depth32, EngineContext.RenderContext.Width, EngineContext.RenderContext.Height);
62 EngineContext.RenderContext.ParameterGroups.GetGroup(RenderTargetFeature.Group).Set(RenderTargetFeature.RenderTarget, EngineContext.RenderContext.RenderTarget);
63 EngineContext.RenderContext.ParameterGroups.GetGroup(RenderTargetFeature.Group).Set(RenderTargetFeature.DepthStencil, depth);
69 var eyeVector =
new Vector4(-800.0f * (
float)Math.Cos(time), 800.0f * (float)Math.Sin(time), 500.0f, 1.0f);
71 var viewMatrix = Matrix.LookAtLH(
new Vector3(eyeVector.X, eyeVector.Y, eyeVector.Z),
new Vector3(0.0f, 0.0f, 50.0f),
new Vector3(0.0f, 0.0f, 1.0f));
72 EngineContext.RenderContext.ParameterGroups.Get(TransformationFeature.TransformationGroup).SetAs(TransformationFeature.View, viewMatrix);
75 WinFormsHelper.UpdateWindow();
76 EngineContext.Render();
80 var key = Console.ReadKey(
true).KeyChar;
SiliconStudio.Core.Mathematics.Vector3 Vector3