Exemplo n.º 1
0
	// tick for OpenGL rendering code
	public void RenderGL()
	{
		// measure frame duration
		float frameDuration = timer.ElapsedMilliseconds;
		timer.Reset();
		timer.Start();
	
		// prepare matrix for vertex shader
		Matrix4 transform = Matrix4.CreatePerspectiveFieldOfView( 1.2f, 1.3f, .1f, 1000 );

		// update rotation
		a += 0.001f * frameDuration; 
		if (a > 2 * PI) 
            a -= 2 * PI;

        // enable render target
        target.Bind();

        // render scene to render target
        Matrix4 cameraM = Matrix4.CreateFromAxisAngle(new Vector3(0, 1, 0), a) * camera.cameramatrix * transform;
        foreach (Mesh m in meshes)
            sceneGraph.Render(shader, cameraM, wood, m);

        GL.UseProgram(shader.programID);
        GL.Uniform3(shader.uniform_viewdirection, new Vector3(cameraM.M13, cameraM.M23, cameraM.M33));

        //GL.Uniform4(shader.uniform_light1pos, light1.position);
        //GL.Uniform4(shader.uniform_light1dif, light1.diffuse);
        //GL.Uniform4(shader.uniform_light1spec, light1.specularity);
        //GL.Uniform3(shader.uniform_light1att, light1.attenuation);

        //GL.Uniform4(shader.uniform_light2pos, light2.position);
        //GL.Uniform4(shader.uniform_light2dif, light2.diffuse);
        //GL.Uniform4(shader.uniform_light2spec, light2.specularity);
        //GL.Uniform3(shader.uniform_light2att, light2.attenuation);

        //GL.Uniform4(shader.uniform_light3pos, light3.position);
        //GL.Uniform4(shader.uniform_light3dif, light3.diffuse);
        //GL.Uniform4(shader.uniform_light3spec, light3.specularity);
        //GL.Uniform3(shader.uniform_light3att, light3.attenuation);

        //GL.Uniform4(shader.uniform_light4pos, light4.position);
        //GL.Uniform4(shader.uniform_light4dif, light4.diffuse);
        //GL.Uniform4(shader.uniform_light4spec, light4.specularity);
        //GL.Uniform3(shader.uniform_light4att, light4.attenuation);

        // render quad
        target.Unbind();
        quad.Render(postproc, target.GetTextureID());
	}
Exemplo n.º 2
0
 public virtual void DrawPost(ScreenQuad q, RenderTarget t)
 {
     q.Render(postproc, t.GetTextureID());
 }