private void PrepareInstance(Entity entity) { Matrix4x4f transformationMatrix = Maths.CreateTransformationMatrix(entity.Position, entity.RotationX, entity.RotationY, entity.RotationZ, entity.Scale); this.shader.LoadTransformationMatrix(transformationMatrix); this.shader.LoadAtlasInfo(entity.TextureModel.Texture.NumberOfRows, new Vertex2f(entity.GetTextureOffsetX(), entity.GetTextureOffsetY())); }
public void Render(List <GUITexture> guiList) { if (guiList == null || guiList.Count > 0 == false) { return; } this.shader.Start(); Gl.BindVertexArray(this.quadModel.VaoID); Gl.EnableVertexAttribArray(0);// Position Gl.Enable(EnableCap.Blend); Gl.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha); Gl.Disable(EnableCap.DepthTest); for (int i = 0; i < guiList.Count; i++) { Gl.ActiveTexture(TextureUnit.Texture0); Gl.BindTexture(TextureTarget.Texture2d, guiList[i].TextureID); Matrix4x4f transformationMatrix = Maths.CreateTransformationMatrix(guiList[i].Position, guiList[i].Scale); this.shader.LoadTransformationMatrix(transformationMatrix); Gl.DrawArrays(PrimitiveType.TriangleStrip, 0, this.quadModel.VertexCount); } Gl.Enable(EnableCap.DepthTest); Gl.Disable(EnableCap.Blend); Gl.DisableVertexAttribArray(0); Gl.BindVertexArray(0); this.shader.Stop(); }
public void Render(List <WaterTile> water, List <Light> lightList, Camera camera, float frameTimeSec) { PrepareRender(lightList, camera, frameTimeSec); for (int i = 0; i < water.Count; i++) { WaterTile tile = water[i]; Matrix4x4f modelMatrix = Maths.CreateTransformationMatrix(new Vertex3f(tile.X, tile.Height, tile.Z), 0, 0, 0, WaterTile.TILE_SIZE); this.shader.LoadModelMatrix(modelMatrix); Gl.DrawArrays(PrimitiveType.Triangles, 0, quad.VertexCount); } Unbind(); }
private void PrepareInstance(Terrain terrain) { Matrix4x4f transformationMatrix = Maths.CreateTransformationMatrix(new Vertex3f(terrain.X, 0, terrain.Z), 0, 0, 0, 1f); this.shader.LoadModelMatrix(transformationMatrix); }
private void PrepareInstance(Entity entity) { Matrix4x4f transformationMatrix = Maths.CreateTransformationMatrix(entity.Position, entity.RotationX, entity.RotationY, entity.RotationZ, entity.Scale); this.shader.LoadModelMatrix(transformationMatrix); }