public override void Render(PerspectiveCamera cam) { GL.BindVertexArray(_gfx); int c = 0; // Loop through all avalable Textures // Tell the Shader Use Each Texture in its respective spot foreach (var tex in this._textures) { if (c == 1) { tex.Value.Use(TextureUnit.Texture1); } else { tex.Value.Use(); } c++; } // Apply the Default Shader _default.Use(); // Apply Global View Matrix _default.SetMatrix4("model", Matrix4.CreateTranslation(this.Transform.GetPosition())); _default.SetMatrix4("view", cam.GetViewMatrix()); _default.SetMatrix4("projection", cam.GetProjectionMatrix()); // Update View Matrix _default.SetVector3("viewPosition", cam.Position); _default.SetInt("material.diffuse", 0); _default.SetInt("material.specular", 1); _default.SetFloat("material.shine", 32.0f); _default.SetVector3("light.direction", _light_dir); _default.SetVector3("light.ambient", new Vector3(0.2f)); _default.SetVector3("light.diffuse", new Vector3(0.5f)); _default.SetVector3("light.specular", new Vector3(1.0f)); GL.DrawArrays(PrimitiveType.Triangles, 0, 36); GL.BindVertexArray(_gfx); base.Render(cam); }
protected override void Render(GraphicsDevice dev, float frame_time, float total_time) { Matrix modl; ide_camera.GetTransform().Invert(out modl); dev.Clear(ClearFlags.Color | ClearFlags.Depth, Scene.Background); dev.ProjectionMatrix = ide_camera.GetProjectionMatrix(); dev.ModelviewMatrix = modl; wires.Render(frame_time, dev); dev.ModelviewMatrix = cursor.GetTransform() * modl; cursor.Render(frame_time, dev); dev.ModelviewMatrix = modl; var old_color = Scene.Background; Scene.Background = new Vector4(0, 0, 0, 0); base.Render(dev, frame_time, total_time); Scene.Background = old_color; }