What are some concepts every OpenGL programer should know from memory?

What are some concepts every OpenGL programer whether new or old should know from memory without having to look at documentation?

Off the top of my head I can think of:
[ul]
[li]Creating a window
[/li][li]Receiving user input from the keyboard and mouse
[/li][li]How to implement textures
[/li][li]Creating basic geometric figures
[/li][li]Animation
[/li][li]Double Buffering
[/li][li]Creating a game loop
[/li][li]Preventing memory leaks
[/li][li]Camera control
[/li][li]Lighting
[/li][li]Shading
[/li][/ul]

Please post what you think should be added to the list!

Most of the mentioned concepts have nothing with OpenGL. Are you trying to make a basic course of graphics programing, or sometning else?

  • Matrix transformations : ModelView, Projection, Viewport settings
  • Basic Shaders: all stuffs mentionned previously (transformations, animation, camera control, lighting, …) with a GLSL shaders (dynamic path)
  • Using : DL (Display List), VA (Vertex Array), VBO (Vertex Buffer Object)
  • Using FBO (Frame Buffer Object): MRT (Multiple Render Target), RTT (Render To Texture)

YoYo

What are some concepts every OpenGL programer whether new or old should know from memory without having to look at documentation?

I may be old fashion but memorising anything seems pointless these days. Knowing were and how to find information is much more important. For example
“Creating a window” changes with operating systems and programming languages. I have progammed in over 30 commercial/proprietary languages in my day and
have always had access to documentation (all be in in paper documents in the past).

Knwoing algorithms and techniques that are portable across time is much more use then knowing how to analise a language/environment to know how optimally implement those techniques
with it is more important.

Any programmer will tell you that over time you cut-n-paste much more often than you will write from scratch anyway.

[QUOTE=yoyonel;1248435]- Matrix transformations : ModelView, Projection, Viewport settings

  • Basic Shaders: all stuffs mentionned previously (transformations, animation, camera control, lighting, …) with a GLSL shaders (dynamic path)
  • Using : DL (Display List), VA (Vertex Array), VBO (Vertex Buffer Object)
  • Using FBO (Frame Buffer Object): MRT (Multiple Render Target), RTT (Render To Texture)

YoYo[/QUOTE]
display lists are deprecated. i’d remove them and add VAO to he list.
i’d also add initializing(and probably loading basic tga) and using textures, using occlusion query, making basic shadow-mapping.
there’s also frustum culling. but with custom matrix math it doesn’t require single opengl call and i also doubt many programmers keep plane extraction process in their memory.

but tonyo_au is right, searching and analysing is more important. because these skills make you do things faster. and it’s really important to remember only things you use oftenly, that’s how your brain works anyway. you forget stuff you dont use.