Elance OpenGL Test Answers 2015



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