git-svn-id: svn://db.shs.com.ru/libs@45 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -45,6 +45,12 @@ void RendererDeferredShading::renderScene() {
|
||||
glBindTexture(GL_TEXTURE_2D, white_image_id);
|
||||
glActiveTextureChannel(0);
|
||||
}
|
||||
if (violent_image_id == 0) {
|
||||
glActiveTextureChannel(7);
|
||||
violent_image_id = ((GLTextureManagerBase*)currentGLTextureManager)->loadTexture(violent_image, false);
|
||||
glBindTexture(GL_TEXTURE_2D, violent_image_id);
|
||||
glActiveTextureChannel(0);
|
||||
}
|
||||
glClearFramebuffer(QColor(0, 0, 0, 0));
|
||||
//glEnable(GL_TEXTURE_2D);
|
||||
glEnableDepth();
|
||||
@@ -127,12 +133,14 @@ void RendererDeferredShading::reloadShaders() {
|
||||
|
||||
void RendererDeferredShading::setupShadersTextures(GLObjectBase & object, GLRendererBase::RenderingParameters & rp) {
|
||||
shader_ds_0->setUniformValue("has_diffuse", object.material().map_diffuse.bitmap_id != 0);
|
||||
shader_ds_0->setUniformValue("has_bump", object.material().map_bump.bitmap_id != 0);
|
||||
shader_ds_0->setUniformValue("has_bump", object.material().map_normal.bitmap_id != 0);
|
||||
shader_ds_0->setUniformValue("has_height", object.material().map_relief.bitmap_id != 0);
|
||||
shader_ds_0->setUniformValue("bump_scale", object.material().map_bump.color_amount);
|
||||
shader_ds_0->setUniformValue("bump_scale", object.material().map_normal.color_amount);
|
||||
shader_ds_0->setUniformValue("height_scale", object.material().map_relief.color_amount);
|
||||
glActiveTextureChannel(6);
|
||||
glBindTexture(GL_TEXTURE_2D, white_image_id);
|
||||
glActiveTextureChannel(7);
|
||||
glBindTexture(GL_TEXTURE_2D, violent_image_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -144,7 +152,7 @@ void RendererDeferredShading::setupDSLights(int pass, int lights_per_pass, const
|
||||
amb_light.intensity = (pass == 0 ? 1. : 0.);
|
||||
amb_light.setColor(pass == 0 ? view.ambientColor() : Qt::black);
|
||||
amb_light.setName("ambient");
|
||||
setUniformLight(shader_ds_1, &amb_light, "qgl_AmbientLight", QMatrix4x4());
|
||||
setUniformLight(shader_ds_1, &amb_light, "qgl_AmbientLight");
|
||||
amb_light.intensity = 0.;
|
||||
QVector<Light*> lv;
|
||||
for (int i = light_start; i < light_end; ++i)
|
||||
@@ -152,7 +160,7 @@ void RendererDeferredShading::setupDSLights(int pass, int lights_per_pass, const
|
||||
amb_light.setName("null");
|
||||
for (int i = light_end; i < lmax; ++i)
|
||||
lv << &amb_light;
|
||||
setUniformLights(shader_ds_1, lv, view_matrix);
|
||||
setUniformLights(shader_ds_1, lv, view_matrix, view.camera().pos());
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user