CS0045 Module 4

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/14

encourage image

There's no tags or description

Looks like no tags are added yet.

15 Terms

1
New cards

Allow applications to render primitives from vertex and vertex state data stored in blocks of memory

Vertex Arrays

2
New cards

Processes the vertices and cache the results for efficient reuse

Vertex Arrays

3
New cards

Version 1.5 introduced the __ __ feature, allowing applications to store data in high-performance server memory

Buffer Object

4
New cards

Suffix: b

Data Type: 8-bit integer

Typical Corresponding C-Language Type: signed char

OpenGL Type Definition: GLbyte

5
New cards

Suffix: s

Data Type: 16-bit integer

Typical Corresponding C-Language Type: signed short

OpenGL Type Definition: GLshort

6
New cards

Suffix: i

Data Type: 32-bit integer

Typical Corresponding C-Language Type: int

OpenGL Type Definition: GLint, GLsizei

7
New cards

Suffix: f

Data Type: 32-bit floating-point

Typical Corresponding C-Language Type: float

OpenGL Type Definition: GLfloat, GLclampf

8
New cards

Suffix: d

Data Type: 64-bit floating-point

Typical Corresponding C-Language Type: double

OpenGL Type Definition: GLdouble, GLclampd

9
New cards

Suffix: ub

Data Type: 8-bit unsigned integer

Typical Corresponding C-Language Type: unsigned char

OpenGL Type Definition: GLubyte

10
New cards

Suffix: us

Data Type: 16-bit unsigned integer

Typical Corresponding C-Language Type: unsigned short

OpenGL Type Definition: GLushort

11
New cards

Suffix: ui

Data Type: 32-bit unsigned integer

Typical Corresponding C-Language Type: unsigned int

OpenGL Type Definition: GLuint, GLenum, GLbitfield

12
New cards
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;GL\glut.h&gt;

using namespace std;

void defaultDisplay();
void point();
void triangle();

int main(int argc, char **argv){
    glutInit(&amp;argc, argv);
    glutInitWindowSize(1024,768);
    glutInitWindowPosition(200,50);
    glutCreateWindow("My First OpenGL");
    glutDisplayFunc(defaultDisplay);
    glutMainLoop();

    return 0;
}

void triangle(){
    glBegin(GL_TRIANGLES);
    glVertex2f(0.0f, .75f);
    glVertex2f(-0.75f, 0.0f);
    glVertex2f(0.75f, 0.0f);
    glEnd();
}

void point(){
    glPointSize(20.0);
    glBegin(GL_POINTS);
    glVertex2f(-0.75f, -0.75f);
    glVertex2f(-0.75f, 0.75f);
    glVertex2f(0.75f, 0.75f);
    glVertex2f(0.75f, -0.75f);
    glEnd();
}

void defaultDisplay(){
    glClear(GL_COLOR_BUFFER_BIT);
    glColor4f(.16f, .72f, .08f, 1.0f);
    point();
    triangle();
    glFlush();
}</code></pre><p></p>
#include <iostream>
#include <GL\glut.h>

using namespace std;

void defaultDisplay();
void point();
void triangle();

int main(int argc, char **argv){
    glutInit(&argc, argv);
    glutInitWindowSize(1024,768);
    glutInitWindowPosition(200,50);
    glutCreateWindow("My First OpenGL");
    glutDisplayFunc(defaultDisplay);
    glutMainLoop();

    return 0;
}

void triangle(){
    glBegin(GL_TRIANGLES);
    glVertex2f(0.0f, .75f);
    glVertex2f(-0.75f, 0.0f);
    glVertex2f(0.75f, 0.0f);
    glEnd();
}

void point(){
    glPointSize(20.0);
    glBegin(GL_POINTS);
    glVertex2f(-0.75f, -0.75f);
    glVertex2f(-0.75f, 0.75f);
    glVertex2f(0.75f, 0.75f);
    glVertex2f(0.75f, -0.75f);
    glEnd();
}

void defaultDisplay(){
    glClear(GL_COLOR_BUFFER_BIT);
    glColor4f(.16f, .72f, .08f, 1.0f);
    point();
    triangle();
    glFlush();
}


Sample Code: Drawing using glBegin() / glEnd()

13
New cards

Conversion to Vertex Array:

void triangle(){
    glBegin(GL_TRIANGLES);
    glVertex2f(0.0f, .75f);
    glVertex2f(-0.75f, 0.0f);
    glVertex2f(0.75f, 0.0f);
    glEnd();
}


void triangle() {

    //1. initialize an array holding vertex coordinates

    GLfloat trianglevertex[] = {
        0.0f, .75f, 0.0f;     /* <---- since we are working with a 2D primitive z axis is always at 0.0  */
        -0.75f, 0.0f, 0.0f;
        0.75f, 0.0f, 0.0f;
    };

    //2. activate and specify pointer to vertex array 
    glEnableClientState(GL_VERTEX_ARRAY);

    //3. specify the pointer to vertex array 
    glVertexPointer(3, GL_FLOAT, 0, trianglevertex);

    //4. execute drawArrays
    glDrawArrays(GL_TRIANGLES,0,3);

    //5. deactivate vertex array after drawing
    glDiasableClientState(GL_VERTEX_ARRAY);
}


14
New cards
void point() {
    glPointSize(20.0);

    GLfloat pointvertex[] = {
        -0.75f, -0.75f, 0.0f; 
        -0.75f, 0.75f, 0.0f;
        0.75f, 0.75f, 0.0f;
        0.75f, -0.75f, 0.0f;
    };

    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, pointvertex);
    glDrawArrays(GL_POINTS,0,3);
    glDiasableClientState(GL_VERTEX_ARRAY);
}


Conversion to Vertex Array (GL_POINTS)

15
New cards

Define an array of vertex data

glVertexPointer()