What is the significance of i,f,v,d... in function naming conventions found in OpenGL?
OpenGL's naming conventions vary and must be
examined in the specification for the version you are using
Specify the
expected parameter types (int, float, pointer, double, etc.)
Specify the target type for variables written by
OpenGL on the CPU-side only
Specify the output target (immediate mode, frame
buffer, virtual mode, double-buffer, etc.)
What two options can be provided to glShadeModel()?
DEPTH and STENCIL
WIDE and NARROW
FOREGROUND and BACKGROUND
UP and DOWN
SMOOTH and FLAT
What is the dimensions of a 3D transformation matrix?
2x2
4x4
3x3
3x4
Can you specify the location of a light source in OpenGL?
No
Sometimes
Yes
What is a VA or VAO?
Vector Array Object
Vertex Automation Output
Vertex Array
Object
Vector Array Output
Vector Addition Override
What should be done to rotate around a point that is not the origin?
Translate to
origin, rotate about origin, then translate back to original position.
Rotations can only be performed around the origin.
Perform a glRotate and specify the point to rotate
around.
What does Open GLSL stand for?
Graphical Library of Shader Languages
Geographic Land and Survey Library
Graphics Library
Shader Language
Graphical Language and Shading Library
What does glMaterialf(...) do?
Turns material properties on.
Defines the
material properties of a drawn object for visual effects.
Switches to material mode to add visual effects.
Gets the current material properties of a drawn
object.
Are there some OpenGL routines that cannot be stored in a display list?
No
Yes
In OpenGL, what is a "stencil buffer"?
The act of swapping buffers done natively on the
hardware
A low-resource
buffer used for accumulating fragments from a rendering to "cut out"
another accumulated render
A high-bandwidth buffer used for fragmenting images
into accumulation buffers
A special type of buffer used only to draw text
What kind of polygons work best in a VBO intended for modeling a solid?
Triangles,
Triangle Strips and Triangle Fans
Triangles, quads and N-gons
Quads, N-gons and unilateral N-gons
N-gonal coplanar line strips
Line strips
What components make up a light source in OpenGL?
Specular and Ambient.
Diffuse,
Specular, and Ambient.
Diffuse and Ambient.
Diffuse, Opaque, Ambient.
What kind of data is stored in a VBO?
Configuration Settings
Vertices
Context-sharing Information
Pixels
Fragments
When animating, OpenGL provides:
A complete suite of tools and downloadable
applications for making classic 2D and 3D animation right out of the box
FBOs, VBOs, VAOs and integer-related functions such
as glFrameNumber and glMovieType
Accumulation
buffers, frame-buffer objects, VBOs, depth and stencil buffers, blending modes,
and other types of buffers that allow a developer to achieve the desired effect
No way to draw pixels on the screen
What are the valid operations provided to glStencilOp?
GL_KEEP,
GL_ZERO,GL_REPLACE, GL_INCR, GL_INCR_WRAP, GL_DECR, GL_DECR_WRAP, GL_INVERT
Any number between 0 and 255
TRUE or FALSE
GL_R, GL_G, GL_B, GL_RGB, GL_RGBA, GL_ARGB, GL_BGRA
GL_ZERO, GL_ONE, GL_SRC_ALPHA, GL_DST_ALPHA,
GL_FORE, GL_BACK
What is a transformation?
Switching between different buffers.
A function supplied by OpenGL that can morph one
polygon to another.
Mathematical
operation used to create a desired behavior for points and objects.
Generally, what primitive polygon is used for creating a mesh to represent a complex object?
Square
Circle
Triangle
Rectangle
If lighting is disabled, which function specifies the color of the vertex?
glClearColor()
glDisplayfunc()
glColor()
None of These
What is the difference between glColor3d and glColor3f?
glColor3d only sets RGB, while glColor3f sets R,G,B
and A
glColor3d allows 3d color operations, while
glColor3f only allows 8-bit
glColor3d takes
double arguments, while glColor3f takes float arguments
glColor3d is in real space, glColor3f is in integer
space
What is an FBO?
File Buffered Output
Frictionless Baryonic Oscillation
Friday Buy Out
Format Byte Option
Framebuffer
Object
Which function call sets up the size of the output area?
glViewport()
gluPerspective()
None of These
glDisplayfunc()
Why are many functions deprecated in the OpenGL specification?
To highlight functions which one should use when
programming the fixed-function pipeline in all new versions of OpenGL.
As newer
versions are released, older versions with functionality that can be created in
the newer version but faster through other methods must be deprecated but are
still a part of the specification on most hardware platforms.
OpenGL's authors at Khronos have made many mistakes
and therefore deleted various functions as they released new versions,
replacing older versions and making obsolete older functionality that is
removed from newer versions.
Is ambient light possible in OpenGL?
Yes
Sometimes
No
What are "texture coordinates" used for?
Texture coordinates tell OpenGL where in GPU memory
the texture is stored.
Texture coordinates were deprecated in 3.1 and
provide OpenGL with an error message.
Texture
coordinates provide OpenGL with information about polygon blitting when
painting textures onto rendered geometry.
Texture coordinates have never be used in the
OpenGL specification.
Does OpenGL support Rasterization?
Yes
No
OpenGL stands for:
Open General Liability
Open Graphics
Library
Open Guide Line
Open Graphics Layer
Opengl uses a 3D Cartesian Coordinate System.
False
True
Once a 2D or 3D rotation is performed, is it possible to reverse the rotation?
Yes
No
glVertex is used to draw OpenGL primitives.
True
False
What kind of data is stored in a VAO?
Exponent information for large-scale waveform
analysis
Program asset information such as trees, lists and
data types
Mainly 0s and 1s organized alphabetically
Vertex state and
other ancillary data for rendering in the programmable pipeline
What happens to variables that aren't used in outputs of a GLSL fragment shader?
They produce excessive slow-downs in GPUs that do
not adhere to the OpenGL standard, decreasing load time and increasing frame
rate.
They are
optimized out and removed by the compiler on most platforms.
They remain in memory and use resources, and are
the mark of a novice developer.
What is the use of a shared context?
To allow
multiple OpenGL contexts to share the same data
To allow networked gameplay to occur between
multiple OpenGL clients
To allow the GPU to run multiple applications at
the same time
If a coordinate system (CS1) is transformed to another coordinate system (CS2) using a matrix M, is it possible to go from CS2 to CS1 and how?
Yes, apply M again.
Yes, apply
inverse of M.
No, once a coordinate system is transformed, it
cannot be reversed.
Yes, call glReversCS() with CS2 and M as
parameters.
What is a VBO?
Vertex Binding Object
Vertex Buffer
Object
Variable Buffer Output
What is a "depth buffer" and what does it accumulate?
A type of buffer
that accumulates "depth" information in a 3D scene
A 3D scene organization chart produced by a UX
designer
A specialized buffer for doing underwater scenes
Does OpenGL provide modeling primitives such as a cube, cone, pyramid?
Yes, but only with glEnable(GL_PRIMITIVES) called
before the glBegin statement.
In the official specification, but also enhanced
versions provided by the GLUT library.
Not in the
official specification, but such functionality is provided by the GLUT library.
Yes.
Does OpenGL use a client-server model and a state machine?
Irrelevant
Yes
No
What are the "red" book, "blue" book and "orange" book?
Three books written by Ken Perlin, the father of
OpenGL, and published in 1971 at Luinard University, Paris, France. Dr. Perlin
holds a three-time doctorate in Organization Biology at the prestigious Harvard
School of Medicine, but in his later years revealed his interests in biological
sciences as being and adjunct to computer graphics.
Magazine inserts in IEEE's 1999 and 2002 editions
which were written by Paul Bourke, a mathematician and philanthropist from
Southern Mason University in Atlanta, GA.
There are
several books on OpenGL, but the two most revered are the "red" and
"blue" books, and the "orange" book was published to cover
shader technologies by a third party.
Three famous books ridiculed by John Carmack,
founder of id Software and inventor of the graphics processor.
References to the Matrix.
Does OpenGL have an official camera?
No.
Yes.
What organization is currently responsible for OpenGL's standardization and development?
Khronos
Crysis
Cryptic
Chronos
id Software
What is the purpose of GL_REPEAT?
To have a
texture repeat in a direction (horizontal or vertical).
To repeat the last command.
To enable double-buffering.
To restart the application.
To have a command repeat until stopped.
In order to obtain correct calculations for shading, what is the best length for normals of an object?
2
1 (unit length)
The length does not matter.
It is based on the size of the object being drawn.
Why clear a buffer?
To approve a buffer for "publishing" to
the monitor
To under-run a buffer in a special hack known as
"swapping buffers"
To reset its
state
To make it clearly visible
What are the four major types of shaders available in OpenGL 4.0?
Filtered, Non-filtered, Exponent and Fragmented
Geometry,
Tesselation, Vertex and Fragment
Multi-sampled, Single-sampled, Over-sampled and 16x
Vertex, Geometry, Isomorphic and Anisotropic
What does glViewport do?
Sets the active viewport from one of the off-screen
buffers.
Acquires the viewport pointer for use with the
glOrtho function.
Sets the extents
of the current view.
Deactivates accumulation mode and activates the
standard viewport.
What are two types of shaders?
Fragment and polygon.
Vertex and
fragment.
Vertex and polygon.
True or False: blending functions are NOT order dependent.
False
True
In the best practice, what code should appear at the top of a GLSL shader?
There is no best practice for the first line of a
GLSL shader.
void main() {
#version
#if (O_ES) precision highp; #else
<platform-specific code> #endif
What are X,Y,Z,S,T,U and V?
Letters of the alphabet with no special meaning
Optional parameters on glVertex* functions
Coordinate
components
Does OpenGL provide physics, particle systems and other real-time procedural effects out of the box?
Yes, with the Box2d extension library, a part of
the official OpenGL suite.
No.
What is the use of glGet?
To read pixels back from the screen buffer
To get specific
values from the hardware context
To read pixels back from any buffer
To set specific values from the hardware context
What do the values "R", "G", "B" and "A" mean in the context of color in OpenGL?
Rotate, Gyrate, Blend and Amorphize
Red, Green, Black, Auburn
Red, Green, Blue
and Alpha channels
What are GLUT, GLU, GLEW, GLFW, SFML, GLX, GLEE?
Special function prefixes defined in the OpenGL
specification.
Alphabet soup
Acronyms that help new OpenGL developers learn the
ropes.
A suit of OpenGL playing cards made available by
Khronos in 1997.
A suite of open
source libraries, among others, which provide valuable functionality to OpenGL
programmers including context creation, extension management, and others.
What kind of vertex array is NOT provided by OpenGL?
Polygons
Verticies
Colors
Normals
What happens when an object to be drawn is not within the current viewport?
A warning is given.
It is drawn by OpenGL even though it is not seen.
It is ignored.
It is clipped
from the scene and subsequently not drawn.
What are the four types of clearable buffers?
Color, HDR, LTR, VAO
Fragment, Vertex, Vector, Color
Color, Depth, Stencil, Fragment
Color, Depth,
Stencil, Accumulation
What function is required in every GLSL shader program?
void maine() {}
int start() {}
void main() {}
void program() {}
int main() {}
What is a "per-fragment" operation?
A way of describing stenciled buffer operations
Super-parallel operations that occur in CPU before
uploading to the GPU core
Operations that occur logically, such as glLogicOp,
which tragically fragment your application's intended output, ruining your
render.
Also known as a
"per-pixel" operation (applicable in some cases),
"per-fragment" more accurately describes an operation that occurs
through each requested "fragment" by pipelines that deal directly
with screen graphics
What is "core" versus "compatibility" styles of writing OpenGL applications?
"Core" programmers are the ones who
created OpenGL, while "compatibility" programmers are the ones hired
by other companies to make older applications work on newer machines.
"Core"
is the stuff that comes recommended in the specification for the version you
are writing for, while "compatibility" uses deprecated functions or
functions from other versions that are not backward compatible.
"Compatibility" and "Core"
modes are the same mode, but one use gl* functions and the other uses cgl*
functions
There are nineteen different versions of OpenGL,
all of which are now listed as "compatibility" except for three that
are listed as "core"; those are dated 2/1/1997, 5/18/2002 and
8/11/2009
Does OpenGL perform clipping for objects not within the current viewport?
Yes
No
Fill in the blank to draw this triangle: glBegin(GL_TRIANGLES); ....(blank).... glEnd();
glDrawTriangle(x,y,z);
glVertex3i(1,2,3); glVertex3i(1,2,3);
glTexCoord2i(1,2,3);
Put your VBO binding code in there
Use 3 sets of
common immediate mode functions such as glVertex* (required), glColor*,
glTexCoord*
What is glVertextPointer(...) used for?
Get a pointer to a vertex.
Select a vertex of a polygon.
Passing an array
of vertices to OpenGL.
The convention followed in OpenGL to defining and
passing a pointer.
What is the dimensions of a 2D transformation matrix?
3x3
2x2
3x4
4x4
What are EXT and ARB?
EXT and ARB functions are deprecated by default in
old versions of OpenGL, and can only be accessed with a special key
EXT and ARB functions appear in the specification,
but do not appear in actual use cases.
EXT and ARB
functions are not yet integrated into the "core" feature set and are
considered experimental but candidate
What do the letters "ARB" mean in the context of OpenGL?
Associated Rendering Buffer
Accumulation Rendering Buffer
Aligned Rendering Buffer
Architecture
Review Board
Antiquated Resolution Board
How do you activate a shader program in OpenGL?
glUserProgram(ProgramID);
glUseProgram(ProgramID);
glProgram(ProgramID);
glShader(ProgramID);
glUseShader(ProgramID);
When do you use glFlush and glFinish?
glFlush and glFinish should be called once and only
once per application. Their utility has increased over time and is required for
any OpenGL application no matter how simple (a three line demo) or complex (a
450,000 AAA video game).
You use glFlush to clear the screen and glFinish to
draw the screen to the display.
Usually around
certain operations, such as during a glReadPixel after writing, or when OpenGL
must flush or finish its currently buffered calls. Their utility has decreased
over time.
Does OpenGL raise an error if a new display list is given the same name of a previously defined display list?
No
Yes
What are the primitive types available to a glBegin statement? Note: this question is often flagged by test takers. Read carefully and choose wisely, there is only one correct answer.
GL_QUADS,
GL_TRIANGLES, GL_LINES, GL_LINE_STRIP, GL_QUAD_STRIP, GL_LINE_LOOP,
GL_TRIANGLE_STRIP, GL_POINTS, GL_POLYGON
GL_QUAD, GL_TRIANGLE, GL_LINE, GL_LINE_STRIP,
GL_QUAD_STRIP, GL_LINE_LOOP, GL_TRIANGLE_STRIP, GL_POINT, GL_POLYGON
TRUE or FALSE
GL_START, GL_END
Which is better to use for dynmic drawing?
Coordinate Pointer
Display List
Vertex Array
Once shading is enabled, what happens to glColor() calls?
A run-time error occurs if both are used.
They are
ignored.
They function as normal.
They enhance the shading effects.
What is the purpose of a MIPMAP?
A way to store images that use 33% less space on
the GPU.
Filtered non-uniform definitions of texture space
can be resolved only using MIPMAP iconography.
Non-isotropic textures used to exhibit quality
cache behavior, a basis of non-inverted platoform microscopy, a per-fragment
compatibility mode in OpenGL.
multum in parvo;
an LOD texture branching from a main texture that assists in scaling, a basis
of wavelet compression
What kind of argument is expect in a function ending with a "v"?
An array
typecasted with (GLvoid *) or in the type indicated by the preceding letter.
Any void variable.
A GLuint *pointer.
A virtual method function pointer.
Is it possble to perform a reflection of an object across a specified axis?
No, this functionality is not possible with the
current version of OpenGL.
Yes, with glReflect().
Yes with a
simple matrix multiplication.
No, you must redraw your object reflected across
the desired axis.
The current version of OpenGL does support materials?
TRUE, there was no need to remove materials
support.
FALSE, shaders
replaced this functionality.
FALSE, ray tracing replaced this functionality.
What kind of coordinates are used in order to represent a transformation as a matrix multiplication operation?
Homogeneous
Cartesian
Parametric
Heterogenius
What is glTexCoord*() used for?
Defines a coordinate in a texture space in which to
draw ontop of the texture.
Defining the
coordinates in texture space to be mapped to object space.
Used to define the coordinate system of a texture.
An newly added function where OpenGL supports
placing a texting window for mobile applications.
What happens in immediate mode?
OpenGL enters into an interactive mode with the
user.
Primitives can be redrawn from display lists.
Hence, no information is lost.
Once drawn,
primative information is lost. To redraw, the primatives are drawn by
reexecuting the display function.
All commands are given the highest priority for
execution.
What purpose does the "Scissor Test" serve?
To end the "Rubber Band Test"
To "cut out" a section of a buffer when
performing a copy operation.
To scale a section of a buffer.
To limit the
drawing area.
How many texture units are there in OpenGL?
OpenGL provides no texture units per se, but the
term is often confused with "texel units", which refers to the number
of texture pixels stored in the accumulation buffer.
It is hardware
specific and can be queried using glGet.
It is a fractional equivalent to OpenGL's version
number.
It is hardware specific and can be queried using
glGetUnits.
Can OpenGL automatically generate texture coordinates?
Yes
No
Which is a function NOT used for rendering vertex arrays?
glDrawArrays()
glDrawElements()
glDisplayArray()
glArrayElement()
What does the Blend Equation do?
It tells OpenGL how to anti-alias polygons.
It tells OpenGL
how to mix fragments in a logical order.
It sets up a translucent viewport.
It provides the alpha channel with a mixing
heuristic, ignoring R,G and B values of a given fragment.
It is returned by OpenGL so a programmer can
calculate color combinations.
How many cycles does it theoretically take for a single OpenGL call?
2
4
3
1
5
Will a PNG file directly uploaded to a GPU, using the fixed-function pipeline, render with the expected content?
Yes.
No.
True or False, OpenGL does NOT have its own data types for int, float, and double?
False
True
Does function deprecation stop older applications from working with newer versions of OpenGL?
3 out of 6 times.
Yes.
No, never.
No, most of the
time.
Does OpenGL use column-major order or row-major order when representing a transformation matrix?
row-major
column-major
What do you have to do to get "compatibility mode" in OpenGL?
glEnable(GL_COMPATIBILITY);
glEnable(GL_ALL);
glEnable(GL_COMPAT);
glDisable(GL_STRICT);
Nothing
Which is better to use for static drawing?
Display List
Vertex Array
Coordinate Pointer
What are "accumulation buffers"?
Accumulation buffers accumulate data coming from
the GPU to the graphics display when switching contexts
Accumulation buffers offer a unique way to add
color to your images
Accumulation buffers accumulate pixels in an
off-screen buffer but cannot be used outside of an OpenGL shared context
Accumulation
buffers allow off-screen rendering to occur without affecting the displayed
pixels
What is the "workshop" name for the type of geometry and texture effects used in commercial gaming as part of OpenGL (and DirectX)?
Polygonal modeling
Geometrical polygonal modeling
Geometric pleasantness
Baked geometry
Plasticizing
What is the use of glOrtho?
It is only used to create isometric tile games.
It is the best way to set the view frustum.
glOrtho is used to create a map.
To set the
extents and behavior of coordinates.
Does OpenGL support hierarchical modeling of drawn objects?
Yes
No
What is "immediate mode"?
A frame loop that repeats once per cycle
OpenGL's mneumonic for the way of converting pixels
to HDR equivalents
A deprecated set
of functions that permit the user to quickly learn the basic building blocks of
OpenGL
A type of screen mode that allows graphics to
immediately be displayed
What is the purpose of calls to glLogicOp(GLenum opcode)?
A logical
operation applied between RGBA color and RGBA color at the corresponding
location.
A logical operation applied between one buffer and
another during full-screen copying.
It serves no purpose and has been deprecated since
version 1.
A function that returns the error values from
OpenGL after performing a "GL logical operation"
What is the non-official name for glBlendFunc(GL_SRC_ALPHA,GL_ONE)?
Masked
Subtractive
Translucency
Multiply
Additive
What happens in retained mode?
The current OpenGL state can be stored when
specified. This is useful if a command fails and execution needs to rollback to
a previous state.
OpenGL retains extra system memory for execution.
Primitives can
be redrawn from display lists. Hence, no information is lost.
Once drawn, primative information is lost. To
redraw, the primatives are drawn by reexecuting the display function.
Is a new coordinate system created with every transformation applied, e.g., translate or rotate?
No
It depends on the transformations
Yes
Sometimes
What are the native image formats supported by OpenGL?
OpenGL does not support any native formats.
BGRA, ARGB,
RGBA, HDR and others
Next question, please.
PNG, JPG, GIF, TIFF, PCX and others
Let us scale a striaght, horizontal line by a factor of 2 through using glScale(2.0f,0.0f,0.0f). This line consists of only 2 points, a left and right point. Which point(s) moves due to the scale transformation?
The right.
Neither.
Both.
The left.
Which coordinate system is NOT used during texture mapping?
Texture
Parametric
Light
World
When considering lighting, are the effects different when there is one object versus multiple objects?
No, the lighting model in OpenGL is very simple.
Yes since multiple
objects means light can bounce off of each object and affect the scene.
Yes since the absorbtion and reflection of light is
shared among object.
What is "multisampling" and how is it used?
Multisampling is when multiple textures are used to
create a single "megatexture"
Multisampling is a type of anti-aliasing that
allows multiple input sources to write to a single output source
Multisampling is
a method of doing anti-aliasing (and scaling) which is still in use but is
deprecated
What is "pixel unpacking"?
Retrieving data from GRAM with functions such as
glReadPixel, glGetTexImage2D()
Open source mumbo-jumbo
Uncompressing image files, or uncompressing
textures in GRAM within GPU-space
Storing data in
GRAM with functions such as glDrawPixels, glTexImage2d
Real-time rendering operations that effect data
integrity in a cross-platform context
How many dimensions are supported when performing texture mapping?
2
1
3
4
What kind of polygons can OpenGL draw?
Coplanar convex
N-gons without holes
Coplanar convex N-gons with holes
Concave N-gons
Non-colinear coplanar concave N-gons
Convex and concave N-gons
What is the difference between glBlendFunc and glBlendFuncSeparate()?
glBlendFunc does separate the s and d values
glBlendFunc and glBlendFuncSeparate are essentially
the same, but glBlendFunc provides more options and is newer, and thus not
deprecated.
Both are deprecated but glBlendFunc was deprecated
in 2002, after glBlendFuncSeparate was deprecated the year prior.
glBlendFunc is a
shorter call that sets only the s and d factors
What is the non-official name for glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO)?
Solarize
Additive
Overlay
Multiply
Transparency
What is "pixel packing"?
Assembling pixels into network-ready packets
Retrieving data
from the GPU using glReadPixels, glGetTexImage, etc.
Storing data on the GPU using glDrawPixels,
glTexImage2D, etc