Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


OpenGL I might just cry. Beginner needs help please...


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 intenseza   Members   -  Reputation: 119

Like
0Likes
Like

Posted 20 February 2013 - 02:11 PM

Hey Guys

 

I'm just starting out with Opengl, and my lecturer has given us an example in Visual Studio using the Tao framework. The example simply draws a triangle and adds colour to it etc. I've literally copied the code line for line into my own solution, with variable names remaining the same, yet my Glcontrol stays Black! It's driving me absolutely mad. Please won't you help me out. The code is extremely simple so I can't figure out what is wrong... Box is the name of the GlControl on the form which I dragged into place.

 

 

 

using Tao.Platform.Windows;
using Tao.OpenGl;
 
namespace Graphics1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
 
        protected override void CreateHandle()
        {
            base.CreateHandle();
            Box.InitializeContexts();
        }
 
        protected override void DestroyHandle()
        {
            base.DestroyHandle();
            Box.DestroyContexts();
        }
 
        private void Box_Paint(object sender, PaintEventArgs e)
        {
            // set background colour and clear it
            Gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
 
            // set up camera
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
            Glu.gluOrtho2D(0, 1, 0, 1);
 
            // set lighting
 
            // draw
            Gl.glBegin(Gl.GL_TRIANGLES);
 
                Gl.glColor3f(1.0f, 0.0f, 0.0f);
                Gl.glVertex2f(0.0f, 0.0f);
 
                Gl.glColor3f(0.0f, 1.0f, 0.0f);
                Gl.glVertex2f(1.0f, 0.0f);
 
                Gl.glColor3f(0.0f, 0.0f, 1.0f);
                Gl.glVertex2f(0.5f, 1.0f);
            Gl.glEnd();
 
            // flip back buffer
            Gl.glFlush();
        }
 
    }


Sponsor:

#2 Nercury   Crossbones+   -  Reputation: 774

Like
0Likes
Like

Posted 20 February 2013 - 02:20 PM

If you change the line 

 

Gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

 

to

 

Gl.glClearColor(1.0f, 0.0f, 0.0f, 0.0f);

 

does it make it red?

 

If it does, there is problem with your code. Otherwise there is problem with OpenGL/Tao.


Edited by Nercury, 20 February 2013 - 02:27 PM.


#3 intenseza   Members   -  Reputation: 119

Like
0Likes
Like

Posted 20 February 2013 - 02:28 PM

For some strange reason I fiddled around and made it work. -_- Thanks for the response, I'll be back if I run into more problems (hopefully not)



#4 intenseza   Members   -  Reputation: 119

Like
0Likes
Like

Posted 20 February 2013 - 03:38 PM

I've replaced that Triangle code with the following

 

 

Gl.glBegin(Gl.GL_LINES);
            Gl.glColor3f(0.5f, 0.5f, 0.0f);
            Gl.glVertex3f(-2.0f, 2.0f, 0.0f);
            Gl.glVertex3f(2.0f, -2.0f, 0.0f);
            Gl.glEnd();
 
Nothing wants to draw/render. It's pretty upsetting when you want to do your assignments and nothing wants to work :/


#5 intenseza   Members   -  Reputation: 119

Like
0Likes
Like

Posted 20 February 2013 - 03:47 PM

The background colour changes when I change it, but nothing seems to be drawing properly...



#6 Nercury   Crossbones+   -  Reputation: 774

Like
1Likes
Like

Posted 20 February 2013 - 04:06 PM

Try setting a viewport before setting up camera (specifically - using gluOrtho):

 

Gl.glViewport(0, 0, 300, 300);

 

Just so you know, there is nothing exceptional about Tao framework - you can try pretty much any open gl example.


Edited by Nercury, 20 February 2013 - 04:08 PM.


#7 __SKYe   Members   -  Reputation: 1094

Like
0Likes
Like

Posted 20 February 2013 - 04:49 PM

The



 Gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

 

should only be set once at the program initialization, you don't need to set it every frame (also, the background color you get is set by this call, which is black here).

 

Then:



private void Box_Paint(object sender, PaintEventArgs e)
        {
            // set background colour and clear it
            Gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
            Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
 
            // set up camera
            Gl.glMatrixMode(Gl.GL_PROJECTION);
            Gl.glLoadIdentity();
            Glu.gluOrtho2D(0, 1, 0, 1);
            
            //You have to switch back to the ModelView matrix here after setting the projection matrix
            GL.glMatrixMode(GL_MODELVIEW);
            GL.glLoadIdentity();
            ...

 

 

 

 

You need to switch back to the modelview matrix after setting the projection matrix (ortho/perspective).

 

See if it works.


Edited by __SKYe, 20 February 2013 - 04:50 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS