//-------------------------------------------------------------- void testApp::draw() { setupScreenForLesson(); shader.setShaderActive(true); glTranslatef(-1.5, 0.0, -7.0); glBindBuffer(GL_ARRAY_BUFFER, vboId[0]); glVertexAttribPointer(locationID[VERTEX_POSITION_ATTRIBUTE], 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(locationID[VERTEX_COLOR_ATTRIBUTE], 4, GL_FLOAT, false, 0, (void*)sizeof(triangleVertexPosition)); setMatrixUniforms(); glDrawArrays(GL_TRIANGLES, 0, 3); glTranslatef(3.0, 0.0, 0.0); glBindBuffer(GL_ARRAY_BUFFER, vboId[1]); glVertexAttribPointer(locationID[VERTEX_POSITION_ATTRIBUTE], 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(locationID[VERTEX_COLOR_ATTRIBUTE], 4, GL_FLOAT, false, 0, (void*)sizeof(squareVertexPosition)); setMatrixUniforms(); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glBindBuffer(GL_ARRAY_BUFFER, 0); shader.setShaderActive(false); }
void Cloth::draw() { glEnable(GL_DEPTH_TEST); shader.begin(); ofPushMatrix(); glTranslatef(ofGetWidth()*0.5, ofGetHeight()*0.5, 400); glRotatef(rotX, 0, 1, 0); glRotatef(-rotY, 1, 0, 0); glTranslatef(-width*0.4, 100, 0); //glTranslatef(-width*0.5, -height*0.5, 0); setMatrixUniforms(); // draw faces glBindBuffer(GL_ARRAY_BUFFER, verticesBuffer); glVertexAttribPointer(posAttribLoc, 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(normalAttribLoc, 3, GL_FLOAT, false, 0, (void*)(vertices.size()*3*sizeof(GLfloat))); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, facesBuffer); glDrawElements(GL_TRIANGLES, facesSize*3, GL_UNSIGNED_INT, 0); glBindBuffer(GL_ARRAY_BUFFER, 0); ofPopMatrix(); shader.end(); glDisable(GL_DEPTH_TEST); }
//-------------------------------------------------------------- void testApp::draw() { setupScreenForLesson(); shader.setShaderActive(true); glTranslatef(-1.5, 0.0, -8.0); glPushMatrix(); glRotatef(rotTri, 0.0, 1.0, 0.0); glBindBuffer(GL_ARRAY_BUFFER, vboId[0]); glVertexAttribPointer(locationID[VERTEX_POSITION_ATTRIBUTE], 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(locationID[VERTEX_COLOR_ATTRIBUTE], 4, GL_FLOAT, false, 0, (void*)sizeof(pyramidVertexPosition)); setMatrixUniforms(); glDrawArrays(GL_TRIANGLES, 0, 12); glPopMatrix(); glTranslatef(3.0, 0.0, 0.0); glPushMatrix(); glRotatef(rotSquare, 1.0, 1.0, 1.0); glBindBuffer(GL_ARRAY_BUFFER, vboId[1]); glVertexAttribPointer(locationID[VERTEX_POSITION_ATTRIBUTE], 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(locationID[VERTEX_COLOR_ATTRIBUTE], 4, GL_FLOAT, false, 0, (void*)sizeof(cubeVertexPosition)); setMatrixUniforms(); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, vboId[2]); glDrawElements(GL_TRIANGLES, sizeof(cubeVertexIndices), GL_UNSIGNED_BYTE,0); glPopMatrix(); glBindBuffer(GL_ARRAY_BUFFER, 0); shader.setShaderActive(false); rotTri+=90 * 0.001;//float(ofGetEllapsedTimeMillis())/1000 + ofRandom(0,1) * PI; rotSquare-=75 * 0.001; }
//-------------------------------------------------------------- void testApp::draw() { setupScreenForLesson(); shader.setShaderActive(true); glPushMatrix(); glTranslatef(0.0, 0.0, z); glRotatef(xRot,1.0,0.0,0.0); glRotatef(yRot,0.0,1.0,0.0); glBindBuffer(GL_ARRAY_BUFFER, vboId[0]); glVertexAttribPointer(locationID[VERTEX_POSITION_ATTRIBUTE], 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(locationID[TEXTURE_COORD_ATTRIBUTE], 2, GL_FLOAT, false, 0, (void*)sizeof(cubeVertexPosition)); glVertexAttribPointer(locationID[VERTEX_NORMAL_ATTRIBUTE], 3, GL_FLOAT, false, 0, (void*)(sizeof(cubeVertexPosition)+sizeof(cubeVertexTextureCoord))); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, vboId[1]); //SET TEXTURE glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, neheTexture.getTextureReference().getTextureData().textureID); shader.setUniformVariable1i((char*)"uSampler", 0); setMatrixUniforms(); glDrawElements(GL_TRIANGLES, sizeof(cubeVertexIndices), GL_UNSIGNED_BYTE,0); glPopMatrix(); glBindBuffer(GL_ARRAY_BUFFER, 0); shader.setShaderActive(false); glPushMatrix(); glTranslatef(0.0, 0.0, z); glPushMatrix(); glRotatef(xRotLight,1.0,0.0,0.0); glRotatef(yRotLight,0.0,1.0,0.0); glTranslatef(0.0, 0.0, 2.0); glGetFloatv (GL_MODELVIEW_MATRIX, mvMatrix); lightDirection.set(mvMatrix[12],mvMatrix[13],mvMatrix[14]-z); glColor3f(1.0,1.0,1.0); glutSolidSphere(0.05,4,4); glPopMatrix(); glPopMatrix(); ofSetupScreen(); ofSetColor(0xFFFFFF); verdana.drawString( "* Page Up/Page Down to zoom out/in\n* Cursor keys: make the cube rotate\n* SpaceBar+Cursor keys: make the light rotate\n* L Key toggle light", 5,15); verdana.drawString( "* QWE Keys: R-> "+ofToString(ambient_red_value,2)+" G-> "+ofToString(ambient_green_value,2)+" B-> "+ofToString(ambient_blue_value,2)+" COLOR AMBIENT LIGHT", 5,73); verdana.drawString( "* ASD Keys: R-> "+ofToString(direct_red_value,2)+" G-> "+ofToString(direct_green_value,2)+" B-> "+ofToString(direct_blue_value,2)+" DIRECTIONAL LIGHT COLOR", 5,87); }
//-------------------------------------------------------------- void testApp::draw() { setupScreenForLesson(); shader.setShaderActive(true); glTranslatef(0.0, 0.0, z); glRotatef(xRot,1.0,0.0,0.0); glRotatef(yRot,0.0,1.0,0.0); glBindBuffer(GL_ARRAY_BUFFER, vboId[0]); glVertexAttribPointer(locationID[VERTEX_POSITION_ATTRIBUTE], 3, GL_FLOAT, false, 0, 0); glVertexAttribPointer(locationID[TEXTURE_COORD_ATTRIBUTE], 2, GL_FLOAT, false, 0, (void*)sizeof(cubeVertexPosition)); glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, vboId[1]); //SET TEXTURE glActiveTexture(GL_TEXTURE0); glBindTexture(GL_TEXTURE_2D, neheTexture.getTextureReference().getTextureData().textureID); shader.setUniformVariable1i((char*)"uSampler", 0); setMatrixUniforms(); glDrawElements(GL_TRIANGLES, sizeof(cubeVertexIndices), GL_UNSIGNED_BYTE,0); glBindBuffer(GL_ARRAY_BUFFER, 0); shader.setShaderActive(false); ofSetupScreen(); ofSetColor(0xFFFFFF); verdana.drawString("* Page Up/Page Down to zoom out/in\n* Cursor keys: make the cube rotate\n* F to toggle through three different\n kinds of texture filters", 5,15); }