//--------------------------------------------------------------
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);

	
}
Exemple #2
0
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);
		

	
}