Exemplo n.º 1
0
void render()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	glm::mat4 view = glm::lookAt(glm::vec3(10.0f, 10.0f, 10.f),
								 glm::vec3(0.0f, 0.0f, 0.0f),
								 glm::vec3(0.0f, 1.0f, 0.0f));
	eff.begin();

	// Create light direction from lightAngle
	spot_light_data spot = dynamic.data.spots[0];
	spot.lightDir = glm::vec4(lightAim, 1.0f) - spot.lightPos;
	spot.lightDir = glm::normalize(spot.lightDir);
	spot.power = power;
	// Set the light
	dynamic.setSpot(0, spot); //here the buffer is 0 so spotlight doesnt get set......

	dynamic.bind(&eff);
	light.bind(&eff);

	glUniform3fv(eff.getUniformIndex("eyePos"), 1, glm::value_ptr(glm::vec3(10.0f, 10.0f, 10.0f)));

	render(&eff, view, projection, plane);
	render(&eff, view, projection, sphere);
	for (int i = 0; i < 4; ++i)
		render(&eff, view, projection, box[i]);

	glUseProgram(0);
	glfwSwapBuffers();
}
Exemplo n.º 2
0
void render()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    eff.begin();

    // Create light direction from lightAngle
    spot_light_data spot = scene->dynamic.data.spots[0];
    spot.lightDir = glm::vec4(lightAim, 1.0f) - spot.lightPos;
    spot.lightDir = glm::normalize(spot.lightDir);
    spot.power = power;
    // Set the light
    scene->dynamic.setSpot(0, spot); //here the buffer is 0 so spotlight doesnt get set......

    scene->dynamic.bind(&eff);
    scene->light.bind(&eff);

    glUniform3fv(eff.getUniformIndex("eyePos"), 1, glm::value_ptr(currentCam->getPosition()));

    std::hash_map<std::string, render_object*>::const_iterator iter = scene->objects.begin();
    for (; iter != scene->objects.end(); ++iter)
        render(&eff, currentCam->getView(), currentCam->getProjecion(), iter->second);

    glUseProgram(0);
    glfwSwapBuffers();
}
void skybox::render(const camera* camera)
{
	CHECK_GL_ERROR
	glm::mat4 model = glm::translate(glm::mat4(1.0f), camera->getPosition());
	model = glm::scale(model, glm::vec3(10.0f, 10.0f, 10.0f));
	glm::mat4 mvp = camera->getProjection() * camera->getView() * model;

	glDisable(GL_DEPTH_TEST);
	glDepthMask(false);

	skybox_effect.begin();
	glUniformMatrix4fv(skybox_effect.getUniformIndex("modelViewProjection"), 1, GL_FALSE, glm::value_ptr(mvp));
	CHECK_GL_ERROR

	glActiveTexture(GL_TEXTURE0);
	glBindTexture(GL_TEXTURE_CUBE_MAP, _cubemap->getImageID());
	glUniform1i(skybox_effect.getUniformIndex("cubemap"), 0);
	CHECK_GL_ERROR

	glBindVertexArray(skybox_geom->vao);
	CHECK_GL_ERROR
	glDrawArrays(GL_TRIANGLES, 0, skybox_geom->vertices.size());
	CHECK_GL_ERROR
	glBindVertexArray(0);
	CHECK_GL_ERROR

	glDepthMask(true);
	glEnable(GL_DEPTH_TEST);
	skybox_effect.end();
	CHECK_GL_ERROR
}
Exemplo n.º 4
0
void render()
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	
	eff.begin();

	scene->dynamic.bind(&eff);
	scene->light.bind(&eff);

	glUniform3fv(eff.getUniformIndex("eyePos"), 1, glm::value_ptr(cam->getPosition()));
	
	std::hash_map<std::string, render_object*>::const_iterator iter = scene->objects.begin();
	for (; iter != scene->objects.end(); ++iter)
		render(&eff, cam->getView(), cam->getProjecion(), iter->second);

	eff.end();
	glUseProgram(0);
	glfwSwapBuffers();
}
Exemplo n.º 5
0
void render()
{
	
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	
	CHECK_GL_ERROR
	
	eff.begin();

	float t = tim * 100.0f;
	t = fmod(t, 999.0f);
	glUniform1f(eff.getUniformIndex("time"), t);

	points->render(&eff, cam);
	
	eff.end();
	CHECK_GL_ERROR
	glfwSwapBuffers();
		
}