Пример #1
0
        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()));
        }
Пример #2
0
 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();
 }
Пример #3
0
        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();
        }
Пример #4
0
        private void PrepareInstance(Terrain terrain)
        {
            Matrix4x4f transformationMatrix = Maths.CreateTransformationMatrix(new Vertex3f(terrain.X, 0, terrain.Z), 0, 0, 0, 1f);

            this.shader.LoadModelMatrix(transformationMatrix);
        }
Пример #5
0
        private void PrepareInstance(Entity entity)
        {
            Matrix4x4f transformationMatrix = Maths.CreateTransformationMatrix(entity.Position, entity.RotationX, entity.RotationY, entity.RotationZ, entity.Scale);

            this.shader.LoadModelMatrix(transformationMatrix);
        }