small refactoring

This commit is contained in:
2021-05-31 12:47:46 +03:00
parent 5eaa20202b
commit a9f7408e71
44 changed files with 86 additions and 595 deletions

View File

@@ -51,22 +51,6 @@ Renderer::Renderer(QGLView * view_): RendererBase(view_),
shader_files[srFinalPass ] = "ds_final.glsl";
shader_files[srTonemapPass ] = "ds_tonemap.glsl";
/*shaders << ShaderPair("FXAA", &shader_fxaa)
<< ShaderPair("dsl_pass_0", &shader_ds_0)
<< ShaderPair("dsl_pass_1", &shader_ds_1)
<< ShaderPair("hdr", &shader_hdr)
<< ShaderPair("downscale", &shader_small)
<< ShaderPair("bloom_pass_0", &shader_bloom_0)
<< ShaderPair("bloom_pass_1", &shader_bloom_1)
<< ShaderPair("fbo_add", &shader_fbo_add)
<< ShaderPair("motion_blur", &shader_motion_blur)
<< ShaderPair("shadow", &shader_shadow)
<< ShaderPair("ssr", &shader_ssr)
<< ShaderPair("ssr_blur", &shader_ssr_blur)
<< ShaderPair("ssr_merge", &shader_ssr_merge)
<< ShaderPair("ssao_blur", &shader_ssao_blur)
<< ShaderPair("ssao_merge", &shader_ssao_merge)
<< ShaderPair("dof", &shader_dof);*/
shader_fxaa = 0;
gamma_ = 1.;
edit_mode = need_init_shaders = true;
@@ -159,7 +143,6 @@ void Renderer::initShaders() {
for (int i = 0; i < 5; ++i)
prog->setUniformValue(QString("tex_%1").arg(i).toLatin1().constData(), i);
prog->setUniformValue("tex_coeffs[0]", (int)Renderer::dbrBuffersCount);
//prog->setUniformValue("tex_coeffs[1]", (int)Renderer::dbrBuffersCount+1);
prog->setUniformValue("tex_env", (int)Renderer::dbrBuffersCount+1);
}
if (bindShader(srFinalPass, &prog)) {
@@ -194,9 +177,9 @@ void Renderer::fillObjectsBuffer(const ObjectBaseList & ol, RenderPass pass) {
so.color = QVector4D(1,1,1,1);
} else {
so.material = 0;
so.color = QColor2QVector(o->color_);
so.color = QColor2QVector(o->color());
}
so.object_id = o->id_;
so.object_id = o->id();
o->worldTransform().transposed().copyDataTo(so.modelmatrix);
//qDebug() << "load obj" << o->name() << o->worldTransform();
}
@@ -242,11 +225,10 @@ void Renderer::renderLight(int first_wr_buff, bool clear_only) {
fbo_ds.bindColorTextures();
fbo_out.bind();
tex_env.bind((int)Renderer::dbrBuffersCount+1);
//int ri = 1, wi = 0;
typedef QPair<Renderer::ShaderRole, Light::Type> PassPair;
QVector<PassPair> passes;
passes << PassPair(srLightOmniPass, Light::Omni) << PassPair(srLightSpotPass, Light::Cone);
QColor back = view->fogColor_;
QColor back = view->fogColor();
back.setAlpha(0);
foreach (PassPair pass, passes) {
if (bindShader(pass.first, &prog)) {
@@ -257,9 +239,9 @@ void Renderer::renderLight(int first_wr_buff, bool clear_only) {
setUniformViewCorners(prog, cam);
prog->setUniformValue("lights_start", lights_start[pass.second]);
prog->setUniformValue("lights_count", cur_lights[pass.second].size());
prog->setUniformValue("fog_color", view->fogColor_);
prog->setUniformValue("fog_decay", qMax(view->fogDecay_, 0.001f));
prog->setUniformValue("fog_density", view->fogDensity_);
prog->setUniformValue("fog_color", view->fogColor());
prog->setUniformValue("fog_decay", qMax(view->fogDecay(), 0.001f));
prog->setUniformValue("fog_density", view->fogDensity());
prog->setUniformValue("view_mat", cam->viewMatrix().inverted().toGenericMatrix<3,3>());
renderQuad(prog, quad, cam);
}
@@ -271,7 +253,7 @@ void Renderer::renderScene() {
initShaders();
tex_env.load();
QOpenGLExtraFunctions * f = view;
Scene & scene(*(view->scene_));
Scene & scene(*(view->scene()));
Camera * cam = view->camera();
QOpenGLShaderProgram * prog = 0;
bool scene_changed = scene.prepare();
@@ -279,8 +261,6 @@ void Renderer::renderScene() {
/// reload materials on change
if (scene_changed || scene.need_reload_materials) {
//if (scene.need_reload_materials)
// maps_hash = 0;
rend_selection.generateObjectsID(scene);
reloadMaterials(scene);
if (edit_mode)
@@ -342,7 +322,6 @@ void Renderer::renderScene() {
/// blending layers
if (bindShader(srFinalPass, &prog)) {
//fbo_ds .bindColorTexture(dbrNormalZ , 0);
fbo_out.bindColorTexture(obrSolidOmni , 1);
fbo_out.bindColorTexture(obrSolidSpot , 2);
fbo_out.bindColorTexture(obrTransparentOmni, 3);
@@ -371,8 +350,6 @@ void Renderer::renderScene() {
} else {
fbo_out.blit(obrTonemap, 0, 0, fbo_out.rect(), QRect(QPoint(), view->size()));
}
//fbo_small_16.blit(0, 0, 0, fbo_small_16.rect(), fbo_small_16.rect(), GL_COLOR_BUFFER_BIT, GL_LINEAR);
}