Do you know that? Don�t make procrastination a habit. next

Contact Email:

<< All Upwork (oDesk) and Elance Tests << Elance test answers << IT & Programming category

Test answers for OpenGL 2020

(110) Last updated: January 27
Elance • IT & Programming
Questions and answers are regularly updated. Answered and not answered tests questions.

This helps getting job: Hundreds of (cover letter examples , interview questions , profile samples ) • Earn on Upwork (oDesk)
Job assistance: jobs popularityfreelance rates

Popular test answers: HTML, .Net, CSS, English, SEO, Photoshop, iOS, Java, Android, Ruby, Python, JavaScript

See all 6 tests answers updated

Find Upwork (oDesk) and Elance test answers on this website:

Collapse | Expand

110 Answered Test Questions:

1. What is the significance of i,f,v,d... in function naming conventions found in OpenGL?


• Specify the output target (immediate mode, frame buffer, virtual mode, double-buffer, etc.)

• Specify the expected parameter types (int, float, pointer, double, etc.)

• Specify the target type for variables written by OpenGL on the CPU-side only

• OpenGL's naming conventions vary and must be examined in the specification for the version you are using

2. What two options can be provided to glShadeModel()?






• UP and DOWN

3. What organization is currently responsible for OpenGL's standardization and development?


• Cryptic

• Khronos

• Chronos

• Crysis

• id Software

4. What kind of data is stored in a VBO?


• Configuration Settings

• Vertices

• Context-sharing Information

• Pixels

• Fragments

5. Is ambient light possible in OpenGL?


• Yes

• Sometimes

• No

6. 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.

• 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.

• 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.

7. What is an FBO?


• Format Byte Option

• Framebuffer Object

• Friday Buy Out

• File Buffered Output

• Frictionless Baryonic Oscillation

8. Which function call sets up the size of the output area?


• gluPerspective()

• glViewport()

• glDisplayfunc()

• None of These

9. What are "texture coordinates" used for?


• Texture coordinates have never be used in the OpenGL specification.

• Texture coordinates provide OpenGL with information about polygon blitting when painting textures onto rendered geometry.

• 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.

10. Does OpenGL support Rasterization?


• Yes

• No

11. If lighting is disabled, which function specifies the color of the vertex?


• glColor()

• glClearColor()

• None of These

• glDisplayfunc()

12. Opengl uses a 3D Cartesian Coordinate System.


• False

• True

13. glVertex is used to draw OpenGL primitives.


• True

• False

14. OpenGL stands for:


• Open Graphics Library

• Open General Liability

• Open Guide Line

• Open Graphics Layer

15. Once a 2D or 3D rotation is performed, is it possible to reverse the rotation?


• No

• Yes

16. What is a "depth buffer" and what does it accumulate?


• A specialized buffer for doing underwater scenes

• A type of buffer that accumulates "depth" information in a 3D scene

• A 3D scene organization chart produced by a UX designer

17. What kind of data is stored in a VAO?


• Mainly 0s and 1s organized alphabetically

• Exponent information for large-scale waveform analysis

• Program asset information such as trees, lists and data types

• Vertex state and other ancillary data for rendering in the programmable pipeline

18. What is the difference between glColor3d and glColor3f?


• glColor3d allows 3d color operations, while glColor3f only allows 8-bit

• glColor3d is in real space, glColor3f is in integer space

• glColor3d only sets RGB, while glColor3f sets R,G,B and A

• glColor3d takes double arguments, while glColor3f takes float arguments

19. What is a VBO?


• Variable Buffer Output

• Vertex Binding Object

• Vertex Buffer Object

20. What does Open GLSL stand for?


• Graphical Language and Shading Library

• Graphical Library of Shader Languages

• Graphics Library Shader Language

• Geographic Land and Survey Library

21. What are the valid operations provided to glStencilOp?


• Any number between 0 and 255





22. What is the use of a shared context?


• To allow networked gameplay to occur between multiple OpenGL clients

• To allow multiple OpenGL contexts to share the same data

• To allow the GPU to run multiple applications at the same time

23. What do the values "R", "G", "B" and "A" mean in the context of color in OpenGL?


• Rotate, Gyrate, Blend and Amorphize

• Red, Green, Blue and Alpha channels

• Red, Green, Black, Auburn

24. Can you specify the location of a light source in OpenGL?


• Sometimes

• Yes

• No

25. What is a VA or VAO?


• Vector Addition Override

• Vertex Automation Output

• Vector Array Object

• Vertex Array Object

• Vector Array Output



• 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.

• Alphabet soup

• Special function prefixes defined in the OpenGL specification.

27. 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.

28. When animating, OpenGL provides:


• No way to draw pixels on the screen

• 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

• 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

29. In OpenGL, what is a "stencil buffer"?


• The act of swapping buffers done natively on the hardware

• A high-bandwidth buffer used for fragmenting images into accumulation buffers

• A low-resource buffer used for accumulating fragments from a rendering to "cut out" another accumulated render

• A special type of buffer used only to draw text

30. Are there some OpenGL routines that cannot be stored in a display list?


• No

• Yes

31. What does glMaterialf(...) do?


• Turns material properties on.

• Defines the material properties of a drawn object for visual effects.

• Gets the current material properties of a drawn object.

• Switches to material mode to add visual effects.

32. Generally, what primitive polygon is used for creating a mesh to represent a complex object?


• Square

• Rectangle

• Circle

• Triangle

33. What kind of polygons work best in a VBO intended for modeling a solid?


• N-gonal coplanar line strips

• Triangles, Triangle Strips and Triangle Fans

• Triangles, quads and N-gons

• Quads, N-gons and unilateral N-gons

• Line strips

34. 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, call glReversCS() with CS2 and M as parameters.

• Yes, apply inverse of M.

• Yes, apply M again.

• No, once a coordinate system is transformed, it cannot be reversed.

35. What components make up a light source in OpenGL?


• Specular and Ambient.

• Diffuse and Ambient.

• Diffuse, Specular, and Ambient.

• Diffuse, Opaque, Ambient.

36. Does OpenGL use a client-server model and a state machine?


• Irrelevant

• Yes

• No

37. 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.

• Perform a glRotate and specify the point to rotate around.

• Rotations can only be performed around the origin.

38. What is the dimensions of a 3D transformation matrix?


• 3x4

• 3x3

• 4x4

• 2x2

39. Does OpenGL provide modeling primitives such as a cube, cone, pyramid?


• Not in the official specification, but such functionality is provided by the GLUT library.

• Yes.

• In the official specification, but also enhanced versions provided by the GLUT library.

• Yes, but only with glEnable(GL_PRIMITIVES) called before the glBegin statement.

40. 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.

41. True or False: blending functions are NOT order dependent.


• False

• True

42. What does glViewport do?


• Sets the active viewport from one of the off-screen buffers.

• Sets the extents of the current view.

• Acquires the viewport pointer for use with the glOrtho function.

• Deactivates accumulation mode and activates the standard viewport.

43. 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

44. What are the "red" book, "blue" book and "orange" book?


• References to the Matrix.

• Three famous books ridiculed by John Carmack, founder of id Software and inventor of the graphics processor.

• 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 rev

• 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.

• 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.

45. In order to obtain correct calculations for shading, what is the best length for normals of an object?


• The length does not matter.

• 2

• 1 (unit length)

• It is based on the size of the object being drawn.

46. Does OpenGL have an official camera?


• No.

• Yes.

47. In the best practice, what code should appear at the top of a GLSL shader?


• #version

• void main() {

• #if (O_ES) precision highp; #else <platform-specific code> #endif

• There is no best practice for the first line of a GLSL shader.

48. What is a "per-fragment" operation?


• 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

• 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.

49. What are X,Y,Z,S,T,U and V?


• Coordinate components

• Letters of the alphabet with no special meaning

• Optional parameters on glVertex* functions

50. What is the purpose of GL_REPEAT?


• To enable double-buffering.

• To repeat the last command.

• To restart the application.

• To have a texture repeat in a direction (horizontal or vertical).

• To have a command repeat until stopped.

51. 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

52. Does OpenGL provide physics, particle systems and other real-time procedural effects out of the box?


• No.

• Yes, with the Box2d extension library, a part of the official OpenGL suite.

53. What is the use of glGet?


• To set specific values from the hardware context

• To get specific values from the hardware context

• To read pixels back from the screen buffer

• To read pixels back from any buffer

54. What function is required in every GLSL shader program?


• int start() {}

• void program() {}

• int main() {}

• void main() {}

• void maine() {}

55. What are the four types of clearable buffers?


• Color, Depth, Stencil, Accumulation

• Fragment, Vertex, Vector, Color

• Color, Depth, Stencil, Fragment

• Color, HDR, LTR, VAO

56. What are two types of shaders?


• Vertex and fragment.

• Fragment and polygon.

• Vertex and polygon.

57. What kind of vertex array is NOT provided by OpenGL?


• Verticies

• Polygons

• Colors

• Normals

58. What happens when an object to be drawn is not within the current viewport?


• A warning is given.

• It is ignored.

• It is drawn by OpenGL even though it is not seen.

• It is clipped from the scene and subsequently not drawn.

59. What is "core" versus "compatibility" styles of writing OpenGL applications?


• 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

• "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

60. Fill in the blank to draw this triangle: glBegin(GL_TRIANGLES); ....(blank).... glEnd();


• Put your VBO binding code in there

• Use 3 sets of common immediate mode functions such as glVertex* (required), glColor*, glTexCoord*

• glDrawTriangle(x,y,z);

• glVertex3i(1,2,3); glVertex3i(1,2,3); glTexCoord2i(1,2,3);

61. What is glVertextPointer(...) used for?


• Passing an array of vertices to OpenGL.

• The convention followed in OpenGL to defining and passing a pointer.

• Select a vertex of a polygon.

• Get a pointer to a vertex.

62. What is the dimensions of a 2D transformation matrix?


• 4x4

• 2x2

• 3x4

• 3x3

63. Does OpenGL perform clipping for objects not within the current viewport?


• No

• Yes

64. Does OpenGL raise an error if a new display list is given the same name of a previously defined display list?


• No

• Yes

65. How do you activate a shader program in OpenGL?


• glUseShader(ProgramID);

• glUseProgram(ProgramID);

• glProgram(ProgramID);

• glShader(ProgramID);

• glUserProgram(ProgramID);

66. When do you use glFlush and glFinish?


• 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.

• 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).

67. What do the letters "ARB" mean in the context of OpenGL?


• Accumulation Rendering Buffer

• Architecture Review Board

• Antiquated Resolution Board

• Aligned Rendering Buffer

• Associated Rendering Buffer

68. What is the purpose of a MIPMAP?


• Non-isotropic textures used to exhibit quality cache behavior, a basis of non-inverted platoform microscopy, a per-fragment compatibility mode in OpenGL.

• A way to store images that use 33% less space on the GPU.

• multum in parvo; an LOD texture branching from a main texture that assists in scaling, a basis of wavelet compression

• Filtered non-uniform definitions of texture space can be resolved only using MIPMAP iconography.

69. What are EXT and ARB?


• EXT and ARB functions appear in the specification, but do not appear in actual use cases.

• 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 are not yet integrated into the "core" feature set and are considered experimental but candidate

70. 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.

71. What purpose does the "Scissor Test" serve?


• To "cut out" a section of a buffer when performing a copy operation.

• To scale a section of a buffer.

• To end the "Rubber Band Test"

• To limit the drawing area.

72. Once shading is enabled, what happens to glColor() calls?


• They enhance the shading effects.

• They are ignored.

• They function as normal.

• A run-time error occurs if both are used.

73. What kind of coordinates are used in order to represent a transformation as a matrix multiplication operation?


• Heterogenius

• Homogeneous

• Cartesian

• Parametric

74. 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.






75. 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 a simple matrix multiplication.

• Yes, with glReflect().

• No, you must redraw your object reflected across the desired axis.

76. What kind of argument is expect in a function ending with a "v"?


• A GLuint *pointer.

• An array typecasted with (GLvoid *) or in the type indicated by the preceding letter.

• Any void variable.

• A virtual method function pointer.

77. What happens in immediate mode?


• All commands are given the highest priority for execution.

• OpenGL enters into an interactive mode with the user.

• Once drawn, primative information is lost. To redraw, the primatives are drawn by reexecuting the display function.

• Primitives can be redrawn from display lists. Hence, no information is lost.

78. What is glTexCoord*() used for?


• 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.

• Defines a coordinate in a texture space in which to draw ontop of the texture.

79. How many texture units are there in OpenGL?


• It is a fractional equivalent to OpenGL's version number.

• It is hardware specific and can be queried using glGet.

• 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 glGetUnits.

80. What does the Blend Equation do?


• It tells OpenGL how to anti-alias polygons.

• 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 tells OpenGL how to mix fragments in a logical order.

• It is returned by OpenGL so a programmer can calculate color combinations.

81. Which is better to use for dynmic drawing?


• Display List

• Coordinate Pointer

• Vertex Array

82. Which is a function NOT used for rendering vertex arrays?


• glArrayElement()

• glDisplayArray()

• glDrawElements()

• glDrawArrays()

83. How many cycles does it theoretically take for a single OpenGL call?


• 3

• 2

• 5

• 4

• 1

84. Will a PNG file directly uploaded to a GPU, using the fixed-function pipeline, render with the expected content?


• No.

• Yes.

85. Can OpenGL automatically generate texture coordinates?


• No

• Yes

86. True or False, OpenGL does NOT have its own data types for int, float, and double?


• True

• False

87. 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.

88. What do you have to do to get "compatibility mode" in OpenGL?


• glEnable(GL_COMPAT);

• glEnable(GL_ALL);

• Nothing


• glDisable(GL_STRICT);

89. Which is better to use for static drawing?


• Vertex Array

• Display List

• Coordinate Pointer

90. 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

91. What are "accumulation buffers"?


• Accumulation buffers accumulate pixels in an off-screen buffer but cannot be used outside of an OpenGL shared context

• Accumulation buffers accumulate data coming from the GPU to the graphics display when switching contexts

• Accumulation buffers allow off-screen rendering to occur without affecting the displayed pixels

• Accumulation buffers offer a unique way to add color to your images

92. What happens in retained mode?


• OpenGL retains extra system memory for execution.

• Once drawn, primative information is lost. To redraw, the primatives are drawn by reexecuting the display function.

• 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.

• Primitives can be redrawn from display lists. Hence, no information is lost.

93. Does OpenGL use column-major order or row-major order when representing a transformation matrix?


• row-major

• column-major

94. What is "immediate mode"?


• OpenGL's mneumonic for the way of converting pixels to HDR equivalents

• A type of screen mode that allows graphics to immediately be displayed

• A deprecated set of functions that permit the user to quickly learn the basic building blocks of OpenGL

• A frame loop that repeats once per cycle

95. 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 function that returns the error values from OpenGL after performing a "GL logical operation"

• It serves no purpose and has been deprecated since version 1.

• A logical operation applied between one buffer and another during full-screen copying.

96. What is the non-official name for glBlendFunc(GL_SRC_ALPHA,GL_ONE)?


• Additive

• Subtractive

• Translucency

• Multiply

• Masked

97. 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.

• To set the extents and behavior of coordinates.

• glOrtho is used to create a map.

98. What are the native image formats supported by OpenGL?


• PNG, JPG, GIF, TIFF, PCX and others

• OpenGL does not support any native formats.

• Next question, please.

• BGRA, ARGB, RGBA, HDR and others

99. Which coordinate system is NOT used during texture mapping?


• Parametric

• Texture

• World

• Light

100. What is "pixel unpacking"?


• Open source mumbo-jumbo

• Uncompressing image files, or uncompressing textures in GRAM within GPU-space

• Real-time rendering operations that effect data integrity in a cross-platform context

• Retrieving data from GRAM with functions such as glReadPixel, glGetTexImage2D()

• Storing data in GRAM with functions such as glDrawPixels, glTexImage2d

101. Does OpenGL support hierarchical modeling of drawn objects?


• No

• Yes

102. Is a new coordinate system created with every transformation applied, e.g., translate or rotate?


• No

• Sometimes

• It depends on the transformations

• Yes

103. How many dimensions are supported when performing texture mapping?


• 1

• 2

• 4

• 3

104. What kind of polygons can OpenGL draw?


• Coplanar convex N-gons without holes

• Coplanar convex N-gons with holes

• Non-colinear coplanar concave N-gons

• Concave N-gons

• Convex and concave N-gons

105. 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?


• Both.

• Neither.

• The right.

• The left.

106. What is the difference between glBlendFunc and glBlendFuncSeparate()?


• glBlendFunc and glBlendFuncSeparate are essentially the same, but glBlendFunc provides more options and is newer, and thus not deprecated.

• glBlendFunc is a shorter call that sets only the s and d factors

• Both are deprecated but glBlendFunc was deprecated in 2002, after glBlendFuncSeparate was deprecated the year prior.

• glBlendFunc does separate the s and d values

107. When considering lighting, are the effects different when there is one object versus multiple objects?


• Yes since the absorbtion and reflection of light is shared among object.

• 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.

108. What is the non-official name for glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO)?


• Multiply

• Solarize

• Transparency

• Additive

• Overlay

109. 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

110. 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