public override void LoadContent() { var mesh = ContentManager.Load<Mesh>("audi.ASE"); //mesh.Position.X = -30; mesh.World = Matrix.CreateScale(new Vector(10f, 10f, 10f)); Scene.AddNode(mesh); _lightSprite = ContentManager.Load<Sprite>("sun.png"); Scene.AddNode(_lightSprite); var sprite = ContentManager.Load<Sprite>("recycle.png"); sprite.Position = new Vector(-10,0,0); //Scene.AddNode(sprite); Display.BackgroundColor = Color.FromArgb(0xff, 0, 0, 0); var cylinder = ContentManager.CreateCylinder(10f, 20f, 8, 1); light = new OmniLight(); light.Range = 3.0f; light.Position.X = 0; light.Position.Y = 0; light.Position.Z = -30; light.ColorDiffuse = Color.FromArgb(0xff, 0x1f, 0x1f, 0x6f); light.ColorSpecular = Color.FromArgb(0xff, 0xff, 0xff, 0xff); light.ColorAmbient = Color.FromArgb(0xff, 0, 0x5f, 0); Scene.AddNode(light); }
public void Render(IViewport viewport, Sprite sprite, Matrix view, Matrix projection, Matrix world, float xScale, float yScale, float rotation) { var buffer = BufferManager.Instance.Current; var image = sprite.CurrentFrame; var position = new Vector(0, 0, 0); var transformedPosition = Vector.Transform(position, world, view); var translatedPosition = Vector.Translate(transformedPosition, projection, viewport.Width, viewport.Height); var depthBufferAdjustedZ = -transformedPosition.Z / viewport.Camera.DepthDivisor; var positionOffset = (((int)translatedPosition.X)) + (((int)translatedPosition.Y) * buffer.FrameBuffer.Stride); var bufferSize = buffer.FrameBuffer.Stride*buffer.Height; var bufferZ = (UInt32)(depthBufferAdjustedZ * (float)UInt32.MaxValue); if( depthBufferAdjustedZ < 0f || depthBufferAdjustedZ >= 1f) { return; } if( xScale != 1f || yScale != 1f ) { RenderScaled(buffer, positionOffset, sprite.CurrentFrame, translatedPosition, bufferSize, bufferZ, xScale, yScale); } else { RenderUnscaled(buffer,positionOffset,sprite.CurrentFrame,translatedPosition,bufferSize,bufferZ); } }
public void Render(IViewport viewport, Sprite sprite, Matrix view, Matrix projection, Matrix world, float xScale, float yScale, float rotation) { }