void PointLightSource::renderSphere(const UsefulRenderData& render_data) { glm::mat4 scaled_transform = absoluteTransform(); scaled_transform[0][0] *= _sphere_scale; scaled_transform[1][1] *= _sphere_scale; scaled_transform[2][2] *= _sphere_scale; glUniformMatrix4fv( glGetUniformLocation(ShaderProgram::currentProgramId(), "M"), 1, GL_FALSE, &scaled_transform[0][0]); glUniformMatrix4fv( glGetUniformLocation(ShaderProgram::currentProgramId(), "V"), 1, GL_FALSE, &render_data.camera.viewTransform()[0][0]); glUniformMatrix4fv( glGetUniformLocation(ShaderProgram::currentProgramId(), "P"), 1, GL_FALSE, &render_data.camera.projectionTransform()[0][0]); setupLightSourceUniforms(render_data); _sphere_mesh->render(); }
//virtual bool operator==(const Shader& rhs)const; void GenericLightingUberShader::use(SubObject *so) throw (SimulatorException) { GUARD(glUseProgram(mGLProgramHandle)); //--------------------------------------------------------- setupTransformationUniforms(so); //---------------------------------------------------------- if( (mLocalShaderFeatures.shadingFeatures & SHADING_FEATURE_DIRECT_LIGHTING) !=0) { setupLightSourceUniforms(); } //---------------------------------------------------------- VisualMaterial * visMat = dynamic_cast<VisualMaterial*>(so->getMaterial()); assert(visMat); setupMaterialUniforms(visMat); //---------- uncategorized uniforms to come ------------------------------------------------ bindVector3D("eyePositionW",URE_INSTANCE->getCurrentlyActiveCamera()->getGlobalTransform().getPosition()); }
void PointLightSource::renderQuad(const UsefulRenderData& render_data) { setupLightSourceUniforms(render_data); _quad_mesh->render(); }
void DirectionalLightSource::render(const UsefulRenderData& render_data) { setupLightSourceUniforms(render_data); _quad_mesh->render(); }