git-svn-id: svn://db.shs.com.ru/libs@656 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-12-06 10:27:33 +00:00
parent edfe165f90
commit fa5c3e9b3d
13 changed files with 209 additions and 57 deletions

View File

@@ -56,6 +56,7 @@ class Renderer: public RendererBase {
srLightOmniPass,
srLightSpotPass,
srFinalPass,
srTonemapPass,
};
enum DeferredBufferRole {
dbrDiffuseRough,
@@ -64,6 +65,12 @@ class Renderer: public RendererBase {
dbrEmissionBitangX,
dbrSpeedBitangXY,
};
enum OutBufferRole {
obrTonemap,
obrSum,
obrSolidOmni,
obrSolidSpot,
};
public:
Renderer(QGLView * view_);
@@ -83,6 +90,9 @@ protected:
void fillObjectsBuffer(const QList<ObjectBase*> & ol, RenderPass pass);
void reloadObjects();
void renderObjects(Scene & scene, RenderPass pass);
void prepareSum();
void resizeSum();
void renderSum(Framebuffer & fbo_src, int index);
bool bindShader(ShaderRole role, QOpenGLShaderProgram ** ret = 0);
void initShaders();
@@ -91,7 +101,7 @@ protected:
private:
float exposure_;
bool edit_mode, need_init_shaders, is_camera_light;
Framebuffer fbo_ds, fbo_out, fbo_hsmall;
Framebuffer fbo_ds, fbo_out, fbo_small_4, fbo_small_16, fbo_1x1;
/*QOpenGLShaderProgram * shader_fxaa, * shader_ds_0, * shader_ds_1, * shader_hdr, * shader_small;
QOpenGLShaderProgram * shader_bloom_0, * shader_bloom_1, * shader_motion_blur, * shader_fbo_add;
QOpenGLShaderProgram * shader_shadow, * shader_ssr, * shader_ssr_blur, * shader_ssr_merge;
@@ -100,6 +110,10 @@ private:
QMap<ShaderRole, QStringList> shader_defines;
QMap<ShaderRole, QOpenGLShaderProgram*> shaders;
QOpenGLShaderProgram * shader_sum;
Buffer buffer_vbo;
GLenum vbo_vao;
RendererMaterial rend_mat;
RendererService rend_service;
RendererSelection rend_selection;