void drawObject(){ shaderProgram->use(); glBindVertexArray(vao); //assignVBOtoAttribute("color", pColors, 4); lightsOn(); mat4 matM1=scale(matM, vec3(2.0,2.0,2.0)); vecZ=vec3(-globalEngine->X,-globalEngine->Y,-globalEngine->Z); matM1=translate(matM1, vecZ); vecZ=vec3(0.42,-0.57,0);//globalEngine->X, globalEngine->Y, globalEngine->Z matM1=translate(matM1, vecZ); glUniformMatrix4fv(shaderProgram->getUniformLocation("P"), 1, false, value_ptr(matP)); glUniformMatrix4fv(shaderProgram->getUniformLocation("V"), 1, false, value_ptr(matV)); glUniformMatrix4fv(shaderProgram->getUniformLocation("M"), 1, false, value_ptr(matM1)); //mat4 matV1 = lookAt(vec3(globalCamera->X+globalEngine->X-4, globalCamera->Y+globalEngine->Y+7, -5.0f), // vec3(0.0f, 0.0f, 60.0f), vec3(0.0f, 1.0f, 0.0f)); //glUniformMatrix4fv(shaderProgram->getUniformLocation("V"), 1, false, value_ptr(matV1)); drawMesh(loaded); matM = rotate(matM, globalEngine->angle, vec3(0, 1, 0)); matM=scale(matM, vec3(0.08,0.08,0.08)); //vecZ=vec3(-5,8,0);//globalEngine->X, globalEngine->Y, globalEngine->Z //matM=translate(matM, vecZ); glUniformMatrix4fv(shaderProgram->getUniformLocation("M"), 1, false, value_ptr(matM)); drawMesh(model); glBindVertexArray(0); }
void Model::draw() { if (!ok) return; if (!animated) { glCallList(dlist); } else { if (ind) animate(0); else { if (!animcalc) { animate(0); animcalc = true; } } lightsOn(GL_LIGHT4); drawModel(); lightsOff(GL_LIGHT4); // effects are unfogged..? glDisable(GL_FOG); // draw particle systems for (size_t i=0; i<header.nParticleEmitters; i++) { particleSystems[i].draw(); } // draw ribbons for (size_t i=0; i<header.nRibbonEmitters; i++) { ribbons[i].draw(); } if (gWorld && gWorld->drawfog) glEnable(GL_FOG); } }