|Dec 28, 2012, 12:57 AM||#1|
Very Simple Explanation of glOrthof() in OpenGL ES
I saw some previous posts and explantations on the internet of glOrthof, but I just don't get it. I am watching the Stanford OpenGL ES lesson on Youtube and the following code came up:
glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrthof(0, backingWidth, 0, backingHeight, -1, 1);
(The file where this code appears is ESRenderer1.m)
|Dec 28, 2012, 02:46 PM||#2|
The arguments you pass to glOrtho define the boundaries of the projection. For 2D drawing, glOrtho defines the visible area of the screen in OpenGL units. In the code you listed, calling glOrtho sets the lower left corner of the screen to (0, 0) and the upper right corner of the screen to (backingWidth, backingHeight). Anything drawn in the range of (0, 0) to (backingWidth, backingHeight) will be visible on the screen. Assuming that backingWidth and backingHeight are the width and height of the screen in pixels, the code you listed sets a projection where one OpenGL unit equals one screen pixel.
Why does the example draw the picture with a size of one pixel? I haven't looked at the code, but my guess is the code draws from 0 to 1 in OpenGL units. Since you set up the projection so one OpenGL unit equals one pixel, the drawn picture is one pixel in size. If you modify the call to glOrtho by substituting 1 for backingWidth and backingHeight, the picture should fill the screen.
Author, Xcode Tools Sensei
Last edited by szymczyk; Dec 29, 2012 at 01:41 PM.
|Thread Tools||Search this Thread|
|thread||Thread Starter||Forum||Replies||Last Post|
|Need technical help/explanation||kallisti||Digital Photography||10||Mar 18, 2014 04:56 PM|
|OpenGL ES: #define BUFFER_OFFSET(i) ((char *)NULL + (i)) explanation||Blakeasd||iPhone/iPad Programming||4||Jul 4, 2013 06:38 PM|
|Explanation||Liquinn||Wasteland||6||Aug 21, 2012 09:09 PM|
|I want an explanation from someone||MacMane||iPad||5||Aug 17, 2012 06:02 PM|
|iTunes Match Explanation?||marty1990||iCloud and Apple Services||2||Aug 2, 2012 10:34 PM|
All times are GMT -5. The time now is 09:12 AM.