click below
click below
Normal Size Small Size show me how
CS0045 FINALS REVIEW
CS0045: COMPUTER GRAPHICS PROGRAMMING
| Question | Answer |
|---|---|
| The field of creating and manipulating visual content using computers | Computer Graphics |
| Encompasses both 2D and 3D visual content creation | Computer Graphics |
| Enumerate Application of CG | Entertainment (movies, animations) CAD/CAM (Computer-Aided Design/Manufacturing) Scientific and Medical Visualization Training and Education Synthetic realities (VR/AR) |
| Which aspect of C++ is characterized by providing "low-level control for high-performance applications"? | Performance |
| Which aspect of C++ involves "direct memory control for large graphical assets"? | Memory Management |
| Which aspect of C++ is described as "widely used with robust libraries" like OpenGL and Photoshop? | Ecosystem |
| What is the specialized processor designed specifically for handling graphics tasks? | GPU (Graphics Processing Unit) |
| What key feature of a GPU, with its thousands of cores, allows it to perform millions of calculations at the same time? | Parallelism |
| What is the dedicated, high-speed memory on a graphics card used for storing textures, frame buffers, and other graphical data? | VRAM (Video RAM) |
| Which technical area involves the mathematics and algorithms for defining 2D and 3D shapes and objects? | Geometric Modeling |
| Which technical area uses math and physics to simulate how light interacts with different materials and surfaces? | Lighting and Shading |
| Which technical area is the process of using algorithms to generate a final image from models, lighting, and camera data? | Rendering |
| Which technical area focuses on techniques for communicating and exploring complex data, like medical or scientific information, through images? | Visualization and Visual Analytics |
| Which technical area is the study of how humans visually perceive light and interpret visual information? | Perception |
| Which technical area involves algorithms for making models and objects change and move over time? | Animation |
| Which technical area uses principles of physics to make models and scenes behave in a physically realistic way? | Simulation |
| Which technical area concerns itself with designing the actual systems and hardware that run graphics algorithms? | Software and Hardware |
| Who is the computer graphics pioneer, born in May 16, 1938, who created the revolutionary "Sketchpad" system? | Ivan Edward Sutherland |
| What is the name of the system, created by Ivan Sutherland, that is considered the original Computer-Aided Design (CAD) program? | Sketchpad |
| Which type of 2D graphic is composed of a grid of pixels? | Raster Graphics |
| Which type of 2D graphic is composed of geometric primitives like points and lines? | Vector Graphics |
| Raster Graphics are good for what type of images? | Photographs and complex scenes |
| Vector Graphics are commonly used for what? | Logos, fonts, and CAD |
| What is the main disadvantage of scaling up a Raster Graphic? | Pixelation |
| What is the main advantage of scaling a Vector Graphic? | No quality loss (Scalable) |
| What characteristic describes Raster Graphics as potentially losing image data? | Lossy |
| What characteristic describes Vector Graphics as not losing image data? | Non-lossy |
| "Jaggies" when transforming an image are a problem for which graphics type? | Raster Graphics |
| Smooth scaling is a key characteristic of which graphics type? | Vector Graphics |
| What type of graphic is an XBM (X11 Bitmap) file? | Raster Graphics |
| What type of graphic is an XPM (X11 Pixmap) file? | Raster Graphics |
| What type of graphic is a GIF file? | Raster Graphics |
| What type of graphic is a TIFF file? | Raster Graphics |
| What type of graphic is a PNG file? | Raster Graphics |
| What type of graphic is a JPG or JPEG file? | Raster Graphics |
| What type of graphic is a Postscript file? | Vector Graphics |
| What type of graphic is a CGM (Computer Graphics Metafile) file? | Vector Graphics |
| What type of graphic is a Fig file? | Vector Graphics |
| What type of graphic is a DWG file? | Vector Graphics |
| What type of graphic is an SVG (Scalable Vector Graphics) file? | Vector Graphics |
| In which decade were hidden-line and hidden-surface algorithms like Warnock's developed? | 1960s |
| What fundamental problem did Roberts, Appel, and Warnock work on in the 1960s? | The Visibility Problem |
| Sutherland (1974) summarized that solving visibility was essentially a problem of what? | Sorting |
| In which decade did raster graphics techniques like Gouraud and Phong shading emerge? | 1970s |
| Who developed the technique for diffuse lighting (Gouraud shading) in 1971? | Gouraud |
| Who developed the improved specular lighting model (Phong shading) in 1974? | Phong |
| Who introduced the Z-buffer hidden-surface algorithm in 1974? | Catmull |
| Who developed a key anti-aliasing technique in 1977? | Crow |
| In which decade did Ray Tracing and Radiosity, key for global illumination, become prominent? | 1980s |
| Who introduced a recursive Ray Tracing model in 1980? | Whitted |
| Goral, Torrance, and Cohen pioneered which global illumination technique in the mid-1980s? | Radiosity |
| Kajiya (1986) unified light transport concepts into what fundamental equation? | The Rendering Equation |
| Cook & Torrance (1982) developed a model for what type of surface reflectance? | Rough surface reflectance |
| Cook (1984) introduced the concept of what, allowing programmable shading? | Shade trees |
| Perlin (1985) contributed to the development of what, giving artists more control? | Shading languages |
| Hanrahan and Lawson (1990) created which influential rendering interface? | RenderMan |
| Maximum number of points displayable without overlap on a CRT or More precisely: number of points per centimeter (horizontal and vertical) | Resolution |
| Ratio of horizontal points to vertical points for equal-length lines | Aspect Ratio |
| A 4/3 aspect ratio means ___ horizontal points | 4 |
| Number of bits per pixel in a frame buffer | Bit Depth |
| Depth of buffer or number of bit planes | Bit Depth |
| Frame buffer with one bit per pixel | Bitmap |
| Frame buffer with multiple bits per pixel | Pixmap |
| A Bit Depth of 1 bit allows for how many tones? | 2 tones (2¹) |
| A Bit Depth of 2 bits allows for how many tones? | 4 tones (2²) |
| A Bit Depth of 3 bits allows for how many tones? | 8 tones (2³) |
| A Bit Depth of 4 bits allows for how many tones? | 16 tones (2⁴) |
| A Bit Depth of 8 bits allows for how many tones? | 256 tones (2⁸) |
| A Bit Depth of 16 bits allows for how many tones? | 65,536 tones (2¹⁶) |
| A Bit Depth of 24 bits allows for how many tones? | 16.7 million tones (2²⁴) |
| What was the bit depth of the Nintendo Entertainment System (NES)? | 8-bit |
| What was the bit depth of the Sony PlayStation 1? | 32-bit |
| What was the bit depth of the Nintendo GameCube? | 128-bit |
| What was the bit depth of the Nintendo DS? | 32-bit (ARM) |
| What was the bit depth of the Nintendo Switch? | 64-bit (ARM) |
| What is the recommended IDE to install for this setup? | Dev-C++ |
| Where can you download the Dev-C++ installer? | From the SourceForge project (orwelldevcpp) |
| What is the name of the modern library used to replace the original, abandoned GLUT? | Freeglut |
| Where is the recommended source to download the freeglut library? | Transmission Zero |
| Why is freeglut used instead of the original GLUT? | Original GLUT was abandoned; freeglut is the modern replacement. |
| What type of project should you create in Dev-C++? | A Console Project |
| In Dev-C++, where do you configure the directory paths for libraries? | Under Project → Options → Directories |
| Which two freeglut folders do you need to add in the Directories settings? | The include folder and the library folder |
| Where do you add the linker parameters for freeglut? | In the Linker section of the project options |
| What file must you copy into your project folder for the program to run? | freeglut.dll |
| Which specific version of freeglut should be used for programs? | freeglut by Transmission Zero (not legacy freeglut) |
| What compiler should all programs use for consistency? | GCC |
| Can you use Visual Studio Code for development? | Yes, if it is configured to use the GCC compiler. |
| Is a dedicated, high-end GPU needed for this coursework? | No, an internal/chipset GPU is sufficient. |
| Number of memory locations storing the same data type | Arrays |
| How are the individual memory locations in an array referenced? | Through the same variable name |
| What is the basic syntax to declare an array? | data_type array_name[array_size]; |
| What are the two main types of arrays? | One Dimensional and Two Dimensional |
| What is the purpose of the `&` operator in C++? | To get the memory address of a variable |
| What is the purpose of the `*` operator when used with a pointer? | To dereference the pointer (get the value at the stored address) |
| How do you declare a pointer variable in C++? | data_type *pointer_name; |
| What is the computer graphics rendering Application Programming Interface (API) that generates high-quality color images with geometric and image primitives? | OpenGL |
| Which company first developed OpenGL, with Version 1.0 released in 1994? | Silicon Graphics (SGI) Computer Systems |
| What model does OpenGL use, where the application is the client and the vendor implementation is the server? | Client-Server Model |
| Which group currently manages the OpenGL specification? | Khronos Group |
| What is the sequence of stages that processes 3D scene data to produce a 2D image? | OpenGL Rendering Pipeline |
| Which pipeline stage defines and organizes raw vertex data in memory using Vertex Buffer Objects (VBOs) and Vertex Array Objects (VAOs)? | Vertex Specification |
| Which programmable stage processes each vertex individually and performs transformations and lighting calculations? | Vertex Shader |
| Which pipeline stage assembles vertices into primitives like points, lines, or triangles? | Primitive Assembly |
| Which optional, programmable stage can generate new primitives or modify existing ones? | Geometry Shader |
| Which fixed-function stage converts geometric primitives into fragments (potential pixels) and performs clipping? | Rasterization |
| Which programmable stage determines each fragment's final color and performs per-pixel calculations like texturing? | Fragment Shader |
| Which fixed-function stage performs tests and operations on fragments before final output, including depth testing and blending? | Per-Sample Operations |
| What is the GLUT function used to initialize the GLUT library? | glutInit |
| What is the GLUT function used to create a window on the screen? | glutCreateWindow |
| What is the GLUT function used to register the callback function for display? | glutDisplayFunc |
| What is the GLUT function that enters the infinite event-processing loop? | glutMainLoop |
| What is the default range for the X-axis in the OpenGL coordinate system? | -1.0 to 1.0 |
| What is the default range for the Y-axis in the OpenGL coordinate system? | -1.0 to 1.0 |
| What is the OpenGL function used to specify the location of a vertex? | glVertex |
| What is the OpenGL function used to specify the beginning of a vertex list for an object? | glBegin |
| What is the OpenGL function used to specify the end of a vertex list? | glEnd |
| What is the OpenGL function used to clear buffers, such as the color buffer? | glClear |
| What is the OpenGL function that forces execution of previously buffered OpenGL commands? | glFlush |
| What is the GLUT function used to set the initial window size? | glutInitWindowSize |
| What is the GLUT function used to set the initial window position? | glutInitWindowPosition |
| Which OpenGL primitive type renders individual points? | GL_POINTS |
| Which OpenGL primitive type draws unconnected line segments? | GL_LINES |
| Which OpenGL primitive type draws connected line segments? | GL_LINE_STRIP |
| Which OpenGL primitive type draws a closed line strip? | GL_LINE_LOOP |
| Which OpenGL primitive type draws individual triangles? | GL_TRIANGLES |
| Which OpenGL primitive type draws connected triangles sharing edges? | GL_TRIANGLE_STRIP |
| Which OpenGL primitive type draws a fan of triangles all sharing the first vertex? | GL_TRIANGLE_FAN |
| Which OpenGL primitive type draws individual quadrilaterals? | GL_QUADS |
| Which OpenGL primitive type draws connected quadrilaterals sharing edges? | GL_QUAD_STRIP |
| Which OpenGL primitive type draws a single filled convex polygon? | GL_POLYGON |
| What is the OpenGL function used to set the point size? | glPointSize |
| What is the OpenGL function used to set the line width? | glLineWidth |
| What is the OpenGL function used to create dashed or patterned lines? | glLineStipple |
| What 16-bit integer pattern value creates a solid line? | 0xFFFF |
| What is the OpenGL function used to enable line stippling? | glEnable(GL_LINE_STIPPLE) |
| What are the two main color modes in OpenGL? | Color Index Mode and RGBA Mode |
| What does the 'A' in RGBA stand for? | Alpha |
| What is the range for color component values in floating-point format in OpenGL? | 0.0 to 1.0 |
| What is the OpenGL function to set RGB color using three float values? | glColor3f |
| What is the OpenGL function to set RGBA color using four float values? | glColor4f |
| What is the OpenGL function to set RGB color using three unsigned byte values? | glColor3ub |
| What are the RGB float values for the color black? | (0.0, 0.0, 0.0) |
| What are the RGB float values for the color white? | (1.0, 1.0, 1.0) |
| What are the RGB float values for the color red? | (1.0, 0.0, 0.0) |
| What are the RGB float values for the color green? | (0.0, 1.0, 0.0) |
| What are the RGB float values for the color blue? | (0.0, 0.0, 1.0) |
| What are the RGB float values for the color yellow? | (1.0, 1.0, 0.0) |
| What are the RGB float values for the color cyan? | (0.0, 1.0, 1.0) |
| What are the RGB float values for the color magenta? | (1.0, 0.0, 1.0) |
| What is the OpenGL function that sets the current raster position in 2D space? | glRasterPos2f |
| What is the GLUT function that renders a string of bitmap characters at the current raster position? | glutBitmapString |
| Which GLUT bitmap font constant represents a 9x15 pixel fixed font? | GLUT_BITMAP_9_BY_15 |
| Which GLUT stroke font is a scalable vector-based font rendered using line segments? | GLUT_STROKE_ROMAN |
| What is the GLUT function that requests the current window to become full screen? | glutFullScreen |
| What is the GLUT function that marks the current window as needing redisplay? | glutPostRedisplay |
| What is the GLUT function used to set the keyboard callback for the current window? | glutKeyboardFunc |
| What is the GLUT function used to set the mouse callback for button presses and releases? | glutMouseFunc |
| What is the GLUT function called when the mouse moves with a button pressed (dragging)? | glutMotionFunc |
| What is the GLUT function called when the mouse moves without a button pressed (hovering)? | glutPassiveMotionFunc |
| What is the GLUT function that sets the mouse enter/leave callback? | glutEntryFunc |
| What is the GLUT function that sets a global idle callback, called when no events are being processed? | glutIdleFunc |
| What is the GLUT function that registers a timer callback triggered after a specified number of milliseconds? | glutTimerFunc |
| What OpenGL feature allows applications to render primitives from vertex data stored in memory blocks for efficient reuse? | Vertex Arrays |
| What OpenGL function enables a client-side capability, such as for vertex coordinates? | glEnableClientState |
| What OpenGL function specifies the location and data format of vertex coordinates for use with vertex arrays? | glVertexPointer |
| What OpenGL function renders primitives from array data, given a mode, start index, and vertex count? | glDrawArrays |
| What OpenGL data type is a 32-bit floating-point number? | GLfloat |
| What OpenGL data type is a 32-bit integer? | GLint |
| What OpenGL data type is an 8-bit unsigned byte? | GLubyte |
| What OpenGL function draws primitives using indexed vertices, allowing for efficient vertex reuse? | glDrawElements |
| What OpenGL feature, introduced in version 1.5, stores data in high-performance server memory (GPU memory) for significant performance improvement? | Buffer Objects (VBO) |
| What library simplifies access to extended OpenGL extensions and is required for advanced functions like VBOs? | GLEW (OpenGL Extension Wrangler) |
| What is the OpenGL function used to generate buffer object IDs? | glGenBuffers |
| What is the OpenGL function used to bind a buffer object to a target like GL_ARRAY_BUFFER? | glBindBuffer |
| What is the OpenGL function used to upload data to GPU memory for a buffer object? | glBufferData |
| What is the OpenGL function used to delete buffer objects and free GPU memory? | glDeleteBuffers |
| What is the OpenGL function that maps a buffer object into client memory, allowing modification of GPU data? | glMapBuffer |
| What is the OpenGL function that unmaps a buffer from client memory after modifications? | glUnmapBuffer |
| What is the OpenGL function that updates a subset of buffer data, more efficient than re-uploading the entire buffer? | glBufferSubData |
| What is a rectangular array of mathematical expressions, similar to a two-dimensional array, used extensively for transformations in computer graphics? | Matrices |
| What is the name for the 4D representation (x, y, z, w) of 3D points used to enable translation as matrix multiplication? | Homogeneous Coordinates |
| In homogeneous coordinates, what does a w component of 1 represent? | A position in space |
| In homogeneous coordinates, what does a w component of 0 represent? | A direction vector |
| What transformation matrix moves an object along the axes? | Translation Matrix |
| What transformation matrix resizes an object along the axes? | Scaling Matrix |
| What transformation matrix rotates an object around an axis? | Rotation Matrix |
| What is the correct order for applying multiple transformations to a vertex when using matrix multiplication? | Translation × Scaling × Vertex (Right to left) |
| In a right-handed 3D coordinate system used by OpenGL for vertex data, which direction does the positive Z-axis point? | Toward the viewer |
| In the left-handed 3D coordinate system used by OpenGL for projection transformations, which direction does the positive Z-axis point? | Away from the viewer |
| What OpenGL function sets the current matrix mode, such as GL_MODELVIEW or GL_PROJECTION? | glMatrixMode |
| What OpenGL function resets the current matrix to the identity matrix? | glLoadIdentity |
| What OpenGL function saves the current matrix onto the matrix stack? | glPushMatrix |
| What OpenGL function restores the previously saved matrix from the matrix stack? | glPopMatrix |
| What OpenGL function defines the drawable region of the window, usually matching the window size? | glViewport |
| What OpenGL function moves an object along the x, y, and z axes? | glTranslate |
| What OpenGL function rotates an object by a given angle around a specified axis vector? | glRotate |
| What OpenGL function scales an object along the x, y, and z axes? | glScale |
| What type of projection defines a viewing volume as a cuboid, resulting in parallel projection with no perspective distortion? | Orthographic Projection |
| What OpenGL function sets up an orthographic projection? | glOrtho |
| What type of projection defines a viewing volume as a frustum (pyramid shape), where objects farther away appear smaller? | Perspective Projection |
| What GLU function sets up a perspective projection using a field of view and aspect ratio? | gluPerspective |
| What OpenGL function sets the camera position, look-at point, and up vector? | gluLookAt |
| What OpenGL display mode flag must be included to enable the depth buffer? | GLUT_DEPTH |
| What OpenGL function is used to enable depth testing for hidden surface elimination? | glEnable(GL_DEPTH_TEST) |
| What OpenGL clear flag must be used to clear the depth buffer? | GL_DEPTH_BUFFER_BIT |
| What OpenGL feature simulates how objects reflect light to make them look realistic? | Lighting |
| What is the name of the lighting model that computes color at vertices based on material, light, and model properties? | Phong Lighting Model |
| What OpenGL function is used to enable the entire lighting system? | glEnable(GL_LIGHTING) |
| What are the minimum number of lights an OpenGL implementation must support, accessible via GL_LIGHT0 to GL_LIGHT7? | 8 lights |
| What OpenGL function sets properties for a specific light source? | glLightfv |
| What light property, when set with w=0, creates a directional (infinite) light source? | GL_POSITION |
| What light property, when set with w=1, creates a point (local) light source? | GL_POSITION |
| What OpenGL function sets properties for a material? | glMaterialfv |
| What material property defines the base color of the object? | GL_DIFFUSE |
| What material property defines the highlight color? | GL_SPECULAR |
| What material property defines the surface smoothness, with a range from 0 (rough) to 128 (very shiny)? | GL_SHININESS |
| What OpenGL function sets global lighting parameters, such as the global ambient light? | glLightModelfv |
| What technique is used to add surface detail to objects by applying images to polygon surfaces? | Texture Mapping |
| What single-header image loading library by Sean Barrett is recommended for loading texture images? | stb_image.h |
| What is the OpenGL function used to generate texture object IDs? | glGenTextures |
| What is the OpenGL function used to bind a texture to a target, making it current? | glBindTexture |
| What is the OpenGL function used to set texture parameters like wrapping and filtering? | glTexParameteri |
| What texture wrapping mode repeats the texture? | GL_REPEAT |
| What texture filtering mode uses linear interpolation for a smoother look? | GL_LINEAR |
| What is the OpenGL function used to specify a 2D texture image? | glTexImage2D |
| What is the range for texture coordinates in each dimension? | 0.0 to 1.0 |
| What OpenGL function enables the texture coordinate array for use with vertex arrays? | glEnableClientState(GL_TEXTURE_COORD_ARRAY) |
| What OpenGL function specifies the location and data format of texture coordinates? | glTexCoordPointer |
| What OpenGL function automatically generates mipmaps for a texture to improve quality at a distance? | glGenerateMipmap |
| What texture environment mode multiplies the texture color with the fragment color? | GL_MODULATE |
| What texture environment mode replaces the fragment color with the texture color? | GL_REPLACE |
| A collection of open, royalty-free standards | Khronos Visual Computing Ecosystem |
| How is the Khronos Visual Computing Ecosystem developed? | By an industry consortium |
| What are the two primary goal of the Khronos Visual Computing Ecosystem? | Enable hardware acceleration and Cross-platform compatibility |
| Name the application areas of the Khronos Visual Computing Ecosystem. | 3D graphics, Parallel computing, Virtual and augmented reality, Neural networks, Computer vision |