public override MeshObject GetMesh() { var vertices = new Renderer.VertexDataStruct[] { new Renderer.VertexDataStruct() { position = new Vector4(_ray.Position, 1), color = Vector4.One, }, new Renderer.VertexDataStruct() { position = new Vector4(_ray.Direction + _ray.Position, 1), color = Vector4.One, }, }; var indices = new uint[] { 0, 1, }; var result = new MeshObject( DirectX3DGraphics.GetInstance(), vertices, indices, PrimitiveTopology.LineList, new Material(null, Vector3.Zero, Vector3.One, Vector3.One, Vector3.One, 1), true, "", false); return(result); }
public Loader(DirectX3DGraphics directX3DGraphics, SamplerState state) { _directX3DGraphics = directX3DGraphics; _imagingFactory = new ImagingFactory(); samplerState = state; defaultTexture = LoadTextureFromFile("Textures\\white.png", true); defaultMaterial = new Graphics.Material(defaultTexture, Vector3.Zero, Vector3.One, Vector3.One, Vector3.One, 1); }
public Game(Scene scene) { _scene = scene; _renderForm = new RenderForm(); _renderForm.UserResized += RenderFormResizedCallback; _renderForm.MouseDown += (sender, args) => { _ui.Press(_inputController.MousePositionX, _inputController.MousePositionY); }; _renderForm.MouseUp += (sender, args) => { if (!_ui.Release(_inputController.MousePositionX, _inputController.MousePositionY)) { Ray ray = Ray.GetPickRay( (int)_inputController.MousePositionX, (int)_inputController.MousePositionY, new ViewportF( _renderForm.ClientRectangle.X, _renderForm.ClientRectangle.Y, _renderForm.ClientRectangle.Width, _renderForm.ClientRectangle.Height, 0, 1), _camera.GetViewMatrix() * _camera.GetPojectionMatrix()); _inputController.CursorRay = new RayCollision(ray); } }; _directX3DGraphics = DirectX3DGraphics.GetInstance(_renderForm); _directX2DGraphics = new DirectX2DGraphics(this, _directX3DGraphics); _renderer = new Renderer(_directX3DGraphics, _directX2DGraphics); _renderer.CreateConstantBuffers(); _audioDevice = new SharpAudioDevice(); _loader = new Loader(_directX3DGraphics, _renderer.LinearSampler); _timeHelper = new TimeHelper(); _inputController = InputController.GetInstance(_renderForm); _renderForm.GotFocus += (sender, args) => { _inputController.ResetAcquired(); }; InitializeScene(); }
private MeshObject MakeMesh() { Vector3[] corners = new BoundingBox(-_halfSize, _halfSize).GetCorners(); List <Renderer.VertexDataStruct> vertices = new List <Renderer.VertexDataStruct>(); List <uint> indices = new List <uint>(); uint k = 0; for (int i = 0; i < corners.Length; i++) { for (int j = i; j < corners.Length; j++) { vertices.Add(new Renderer.VertexDataStruct() { position = new Vector4(corners[i], 1), color = Vector4.One }); vertices.Add(new Renderer.VertexDataStruct() { position = new Vector4(corners[j], 1), color = Vector4.One }); indices.Add(k++); indices.Add(k++); } } return(new MeshObject( DirectX3DGraphics.GetInstance(), vertices.ToArray(), indices.ToArray(), PrimitiveTopology.LineList, new Material(null, Vector3.Zero, Vector3.One, Vector3.One, Vector3.One, 1), true, "", false)); }