git-svn-id: svn://db.shs.com.ru/libs@666 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -68,7 +68,7 @@ Renderer::Renderer(QGLView * view_): RendererBase(view_),
|
||||
<< ShaderPair("ssao_merge", &shader_ssao_merge)
|
||||
<< ShaderPair("dof", &shader_dof);*/
|
||||
shader_fxaa = 0;
|
||||
exposure_ = 1.;
|
||||
gamma_ = 1.;
|
||||
edit_mode = need_init_shaders = is_camera_light = true;
|
||||
}
|
||||
|
||||
@@ -160,6 +160,9 @@ void Renderer::initShaders() {
|
||||
for (int i = 0; i < 5; ++i)
|
||||
prog->setUniformValue(QString("tex_%1").arg(i).toLatin1().constData(), i);
|
||||
}
|
||||
if (bindShader(srGeometryPass, &prog)) {
|
||||
setUniformMaps(prog);
|
||||
}
|
||||
if (bindShader(srTonemapPass, &prog)) {
|
||||
prog->setUniformValue("tex_0", 0);
|
||||
prog->setUniformValue("tex_sum", 1);
|
||||
@@ -266,17 +269,16 @@ void Renderer::renderScene() {
|
||||
glEnableDepth();
|
||||
glClearFramebuffer();
|
||||
if (bindShader(srGeometryPass, &prog)) {
|
||||
setUniformMaps(prog);
|
||||
setUniformCamera(prog, cam);
|
||||
textures_empty.bind(f, tarEmpty);
|
||||
textures_maps .bind(f, tarMaps );
|
||||
renderObjects(scene, rpSolid);
|
||||
renderObjects(scene, rpTransparent);
|
||||
}
|
||||
fbo_ds.release();
|
||||
|
||||
/// lighting passes
|
||||
fbo_ds.bindColorTextures();
|
||||
fbo_ds.bindDepthTexture(5);
|
||||
fbo_out.bind();
|
||||
//int ri = 1, wi = 0;
|
||||
typedef QPair<Renderer::ShaderRole, Light::Type> PassPair;
|
||||
@@ -293,6 +295,8 @@ void Renderer::renderScene() {
|
||||
renderQuad(prog, quad, cam);
|
||||
}
|
||||
}
|
||||
|
||||
/// blending layers
|
||||
if (bindShader(srFinalPass, &prog)) {
|
||||
fbo_out.bindColorTexture(obrSolidOmni, 0);
|
||||
fbo_out.bindColorTexture(obrSolidSpot, 1);
|
||||
@@ -302,7 +306,7 @@ void Renderer::renderScene() {
|
||||
if (tone_proc.process())
|
||||
fbo_out.bind();
|
||||
if (bindShader(srTonemapPass, &prog)) {
|
||||
prog->setUniformValue("exposure", exposure_);
|
||||
prog->setUniformValue("gamma", gamma_);
|
||||
prog->setUniformValue("frame_max", tone_proc.frameMax());
|
||||
//fbo_1x1.bindColorTexture(0, 1);
|
||||
fbo_out.bindColorTexture(obrSum, 0);
|
||||
|
||||
Reference in New Issue
Block a user