/// <summary> /// /// </summary> /// <param name="arg"></param> public override void Render(RenderEventArg arg) { Renderer renderer = this.Renderer; if (renderer != null) { mat4 projection, view, model; if (this.TryGetMatrix(arg, out projection, out view, out model)) { renderer.SetUniform(strprojection, projection); renderer.SetUniform(strview, view); renderer.SetUniform(strmodel, model); renderer.Render(arg); } } }
/// <summary> /// /// </summary> /// <param name="arg"></param> protected override void DoRender(RenderEventArgs arg) { ICamera camera = arg.Camera; mat4 projection = this.GetOrthoProjection(); vec3 position = (camera.Position - camera.Target).normalize(); mat4 view = glm.lookAt(position, new vec3(0, 0, 0), camera.UpVector); float length = Math.Max(this.Size.Width, this.Size.Height) / 2; mat4 model = glm.scale(mat4.identity(), new vec3(length, length, length)); Renderer renderer = this.Renderer as Renderer; renderer.SetUniform("projectionMatrix", projection); renderer.SetUniform("viewMatrix", view); renderer.SetUniform("modelMatrix", model); base.DoRender(arg); }
/// <summary> /// /// </summary> protected override void DoInitialize() { base.DoInitialize(); Renderer renderer = this.Renderer as Renderer; renderer.SetUniform("fontTexture", this.fontTexture.TextureObj.ToSamplerValue()); }