
A white square on a black background example
Posted Wednesday, 9 March, 2011 - 18:30 by fkj inI'm a beginner at OpenTK, and am trying to make a simple example of a white square on a black background. The example is inspired by the "OpenTK Quick Start Sample", and the first example from the "OpenGL Programming Guide 6th.ed."
In a subclass to GameWindow I use the following (only the three important methods included), but it only displays a black background, nothing more:
protected override void OnLoad( EventArgs e ) { base.OnLoad( e ); GL.ClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); GL.Enable( EnableCap.DepthTest ); } protected override void OnResize( EventArgs e ) { base.OnResize( e ); GL.Viewport( ClientRectangle.X, ClientRectangle.Y, ClientRectangle.Width, ClientRectangle.Height ); Matrix4 projection = Matrix4.CreatePerspectiveFieldOfView( (float) Math.PI / 4, (float) Width / Height, 1, 64 ); GL.MatrixMode( MatrixMode.Projection ); GL.LoadMatrix( ref projection ); } protected override void OnRenderFrame( FrameEventArgs e ) { base.OnRenderFrame( e ); GL.Clear( ClearBufferMask.ColorBufferBit ); Vector3 eye = new Vector3( 0, 0, 10 ); Vector3 target = new Vector3( 0, 0, 0 ); Vector3 up = new Vector3( 0, 1, 0 ); Matrix4 modelview = Matrix4.LookAt( eye, target, up ); GL.MatrixMode( MatrixMode.Modelview ); GL.LoadMatrix( ref modelview ); GL.Begin( BeginMode.Polygon ); { GL.Color3( 1.0, 1.0, 1.0 ); GL.Vertex3( -0.5, -0.5, 0.0 ); GL.Vertex3( 0.5, -0.5, 0.0 ); GL.Vertex3( 0.5, 0.5, 0.0 ); GL.Vertex3( -0.5, 0.5, 0.0 ); } GL.End(); SwapBuffers(); }


Comments
Re: A white square on a black background example
Well, at a quick glance I see that you've set your clear color alpha to 0.0, which means you're trying to make everything completely transparent! Try
GL.ClearColor( 0.0f, 0.0f, 0.0f, 1.0f );instead.Re: A white square on a black background example
I tried to set alpha on the ClearColor to 1.0, but it made no difference. Also I believe alpha on the ClearColor, only applies to the ClearColor, not any other color in the program. Both examples I refer to uses a ClearColor with alpha set to 0.0.
Re: A white square on a black background example
adjust this line of code
GL.Clear( ClearBufferMask.ColorBufferBit );for this codeGL.Clear( ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit );Re: A white square on a black background example
Also make sure your object is inside the viewport (maybe it falls behind the camera?) Check the example browser that comes with OpenTK.
Re: A white square on a black background example
Thanks a lot for your replies!
To set 'ClearBufferMask.DepthBufferBit' on the parameter to Clear() solved the problem.
The square was safely inside the view.