Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6772379
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T15:32:33+00:00 2026-05-26T15:32:33+00:00

I have some fundamental points/questions about OpenGL, not all involving code but concepts as

  • 0

I have some fundamental points/questions about OpenGL, not all involving code but concepts as well. I would be grateful if you could answer, affirm or expand on any of them. I warn you, some might be naive, so please bear with me.

  1. I understand that OpenGL is just a standard, as opposed to a piece of software. For example, ‘getting’ OpenGL actually involves getting a third-party implementation which doesn’t necessarily have to be endorsed by Khronos.

  2. OpenGL usually refers to the combination of the GL utilities (GLU) and the GL utilities toolkit (GLUT). They have methods beginning with glu and glut, resp. and the ‘basic’ OpenGL methods, that begin with simply gl, are implemented by those that make graphics drivers, i.e. NVIDIA?

  3. I assume that glut methods are OS-specific helpers, for example glutKeyboardFunc() has to be, to interpret the keyboard. So if I wanted a more powerful alternative way to interpret keyboard input, I would just use the OS API. OpenGL itself is purely about graphics, but glut has this sort of thing since graphics is not much without real-time human control.

  4. It seems to me that glu methods may be identical to calling a series of lower-level gl methods. One example I would like to quote is glOrtho() and gluPerspective(). They seem to me to have similar ways of working, but calculating perspective may be more complex, so gluPerspective() is for convenience, but might just resolve to some gl methods.

  5. I have studied basic OpenGL using freeglut at university, and I keep having this vision of a ‘hardcore’ way of using OpenGL, using only low-level methods. I don’t know if this is a totally naive thought, but is there a ‘professional’ way of writing OpenGL, to get out its maximum functionality? Like, presumably, game developers wouldn’t use glutPostRedisplay() for example, right? It seems too easy and convenient, like it hides a lot of what is going on. I suspect this is also true for C++ since GLUT callbacks aren’t friendly with methods in namespaces (as I’ve seen in other questions).

  • 1 1 Answer
  • 1 View
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T15:32:33+00:00Added an answer on May 26, 2026 at 3:32 pm

    \ 1. I understand that OpenGL is just a standard, as opposed to a piece of software. For example, ‘getting’ OpenGL actually involves getting a
    third-party implementation which doesn’t necessarily have to be
    endorsed by Khronos.

    Indeed.

    \ 2. OpenGL usually refers to the combination of the GL utilities (GLU) and the GL utilities toolkit (GLUT). They have methods beginning with
    glu and glut, resp. and the ‘basic’ OpenGL methods, that begin
    with simply gl, are implemented by those that make graphics drivers,
    i.e. NVIDIA?

    No. OpenGL is just the functions beginning with gl…. Everything else (GLU, GLUT) are third party libraries, not covered by OpenGL.

    \ 3. I assume that glut methods are OS-specific helpers, for example glutKeyboardFunc() has to be, to interpret the keyboard. So if I
    wanted a more powerful alternative way to interpret keyboard input, I
    would just use the OS API. OpenGL itself is purely about graphics, but
    glut has this sort of thing since graphics is not much without
    real-time human control.

    Correct. GLUT is a very minimal framework, so using something else is strongly recommended.

    \ 4. It seems to me that glu methods may be identical to calling a series of lower-level gl methods. One example I would like to quote
    is glOrtho() and gluPerspective().

    I think you refer to gluOrtho2D but yes, you’re correct. glOrtho is a true OpenGL-1 function. In some way, gluOrtho2D is one of the most useless functions ever:

    void gluOrtho2D(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top)
    {
        glOrtho(left, right, bottom, top, -1, 1);
    }
    

    They seem to me to have similar
    ways of working, but calculating perspective may be more complex, so
    gluPerspective() is for convenience, but might just resolve to some
    gl methods.

    Right again, but it’s actually quite simple:

    gluPrespective(GLfloat fov, GLfloat aspect, GLfloat near, GLfloat far)
    {
        GLfloat a = 0.5 * atan(fov);
        glFrustum(-a*near, a*near, -a*near/aspect, a*near/aspect, near, far);
    }
    

    Starting with OpenGL-3 core, the whole matrix manipulation stuff has been removed. In any serious application it’s of little use, since you’ll manage the matrices yourself anyway.

    \ 5. I have studied basic OpenGL using freeglut at university, and I keep having this vision of a ‘hardcore’ way of using OpenGL, using
    only low-level methods. I don’t know if this is a totally naive
    thought, but is there a ‘professional’ way of writing OpenGL, to get
    out its maximum functionality? Like, presumably, game developers
    wouldn’t use glutPostRedisplay() for example, right?

    Yes this is possible and most game engines indeed do all the grunt work themself.
    There is libSDL, which also covers OpenGL. Personally I prefer GLFW or doing the stuff myself, indeed. However this does not change the way one uses OpenGL itself. But this is just infrastructure, and it’s mostly just writing boilerplate code. As a beginner you gain only very little by not using an established framework. If your program makes heavy use of GUI widgets, then using Qt or GTK, with its embedded OpenGL widget is a reasonable choice.

    However some projects are very hardcore, and implement the whole GUI with OpenGL, too. Blender is the most extreme example, and I love it.

    It seems too easy and convenient, like it hides a lot of what is going on. I
    suspect this is also true for C++ since GLUT callbacks aren’t friendly
    with methods in namespaces (as I’ve seen in other questions).

    GLUT callbacks are okay with namespaces (a namespace is just a C++ compilation time thing). But what’s not possible is passing class instance methods as GLUT/C callbacks.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have some very fundamental questions about the use of the setTagsAllowed and getTagsAllowed
I have been doing some research for using MSMQ. Following 2 gave me fundamental
I have some basic questions around understanding fundamentals of Performance testing. I know that
I have some code on two systems running kernel 2.4.20 and kernel 2.4.38 .
I have some code that will change the background color of a specific label
Deal all, I have implemented some functions and like to ask some basic thing
Just would like some thoughts of what you think about my strategy to learn
I have some code written like so: class Invite(models.Model): STATE_UNKNOWN = 0 STATE_WILL_PLAY =
I commonly have code where I want to detect some condition, and if it
I have some data loaded as a np.ndarray and need to convert it to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.