Further boost stk by writing 1 less framebuffer attachment
Now we can get determine the background color by depth, so the alpha tricks in diffuse color fbo is not necessary And using rgba8 to pack normal doesn't seem to cause visual glitches.
This commit is contained in:
parent
777435fb35
commit
0e5b7b532c
@ -1,7 +1,7 @@
|
|||||||
uniform sampler2D diffuse_map;
|
uniform sampler2D diffuse_map;
|
||||||
uniform sampler2D specular_map;
|
uniform sampler2D specular_map;
|
||||||
uniform sampler2D ssao_tex;
|
uniform sampler2D ssao_tex;
|
||||||
uniform sampler2D gloss_map;
|
uniform sampler2D normal_color;
|
||||||
uniform sampler2D diffuse_color;
|
uniform sampler2D diffuse_color;
|
||||||
uniform sampler2D depth_stencil;
|
uniform sampler2D depth_stencil;
|
||||||
uniform sampler2D light_scatter;
|
uniform sampler2D light_scatter;
|
||||||
@ -17,10 +17,11 @@ void main()
|
|||||||
vec2 tc = gl_FragCoord.xy / u_screen;
|
vec2 tc = gl_FragCoord.xy / u_screen;
|
||||||
vec4 diffuseMatColor = texture(diffuse_color, tc);
|
vec4 diffuseMatColor = texture(diffuse_color, tc);
|
||||||
|
|
||||||
// Gloss map here is stored in red and green for metallic and emit map
|
// Polish map is stored in normal color framebuffer .z
|
||||||
// Real gloss channel is stored in normal and depth framebuffer .z
|
// Metallic map is stored in normal color framebuffer .w
|
||||||
float metallicMapValue = texture(gloss_map, tc).x;
|
// Emit map is stored in diffuse color framebuffer.w
|
||||||
float emitMapValue = texture(gloss_map, tc).y;
|
float metallicMapValue = texture(normal_color, tc).w;
|
||||||
|
float emitMapValue = diffuseMatColor.w;
|
||||||
|
|
||||||
float ao = texture(ssao_tex, tc).x;
|
float ao = texture(ssao_tex, tc).x;
|
||||||
vec3 DiffuseComponent = texture(diffuse_map, tc).xyz;
|
vec3 DiffuseComponent = texture(diffuse_map, tc).xyz;
|
||||||
@ -30,8 +31,8 @@ void main()
|
|||||||
vec3 metallicMatColor = mix(vec3(0.04), diffuse_color_for_mix, metallicMapValue);
|
vec3 metallicMatColor = mix(vec3(0.04), diffuse_color_for_mix, metallicMapValue);
|
||||||
vec3 tmp = DiffuseComponent * mix(diffuseMatColor.xyz, vec3(0.0), metallicMapValue) + (metallicMatColor * SpecularComponent);
|
vec3 tmp = DiffuseComponent * mix(diffuseMatColor.xyz, vec3(0.0), metallicMapValue) + (metallicMatColor * SpecularComponent);
|
||||||
|
|
||||||
vec3 emitCol = diffuseMatColor.xyz + (diffuseMatColor.xyz * diffuseMatColor.xyz * pow(emitMapValue, 2.) * 10.);
|
vec3 emitCol = diffuseMatColor.xyz + (diffuseMatColor.xyz * diffuseMatColor.xyz * emitMapValue * emitMapValue * 10.0);
|
||||||
vec4 color_1 = vec4(tmp * ao + (emitMapValue * emitCol), diffuseMatColor.a);
|
vec4 color_1 = vec4(tmp * ao + (emitMapValue * emitCol), 1.0);
|
||||||
|
|
||||||
// Fog
|
// Fog
|
||||||
float depth = texture(depth_stencil, tc).x;
|
float depth = texture(depth_stencil, tc).x;
|
||||||
|
@ -5,8 +5,7 @@ in vec3 normal;
|
|||||||
in vec2 uv;
|
in vec2 uv;
|
||||||
|
|
||||||
layout(location = 0) out vec4 o_diffuse_color;
|
layout(location = 0) out vec4 o_diffuse_color;
|
||||||
layout(location = 1) out vec3 o_normal_depth;
|
layout(location = 1) out vec4 o_normal_color;
|
||||||
layout(location = 2) out vec2 o_gloss_map;
|
|
||||||
|
|
||||||
#stk_include "utils/encode_normal.frag"
|
#stk_include "utils/encode_normal.frag"
|
||||||
#stk_include "utils/rgb_conversion.frag"
|
#stk_include "utils/rgb_conversion.frag"
|
||||||
@ -28,12 +27,15 @@ void main(void)
|
|||||||
vec3 new_color = hsvToRgb(vec3(new_xy.x, new_xy.y, old_hsv.z));
|
vec3 new_color = hsvToRgb(vec3(new_xy.x, new_xy.y, old_hsv.z));
|
||||||
col = vec4(new_color.r, new_color.g, new_color.b, col.a);
|
col = vec4(new_color.r, new_color.g, new_color.b, col.a);
|
||||||
}
|
}
|
||||||
o_diffuse_color = vec4(col.xyz, 1.0);
|
|
||||||
|
|
||||||
#if defined(Advanced_Lighting_Enabled)
|
#if defined(Advanced_Lighting_Enabled)
|
||||||
vec4 layer_2 = sampleTextureLayer2(uv);
|
vec4 layer_2 = sampleTextureLayer2(uv);
|
||||||
o_normal_depth.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
o_diffuse_color = vec4(col.xyz, layer_2.z);
|
||||||
o_normal_depth.z = layer_2.x;
|
|
||||||
o_gloss_map = layer_2.yz;
|
o_normal_color.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
||||||
|
o_normal_color.zw = layer_2.xy;
|
||||||
|
#else
|
||||||
|
o_diffuse_color = vec4(col.xyz, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,7 @@ in vec2 uv;
|
|||||||
in vec2 uv_two;
|
in vec2 uv_two;
|
||||||
|
|
||||||
layout(location = 0) out vec4 o_diffuse_color;
|
layout(location = 0) out vec4 o_diffuse_color;
|
||||||
layout(location = 1) out vec3 o_normal_depth;
|
layout(location = 1) out vec4 o_normal_color;
|
||||||
layout(location = 2) out vec2 o_gloss_map;
|
|
||||||
|
|
||||||
#stk_include "utils/encode_normal.frag"
|
#stk_include "utils/encode_normal.frag"
|
||||||
#stk_include "utils/sp_texture_sampling.frag"
|
#stk_include "utils/sp_texture_sampling.frag"
|
||||||
@ -16,12 +15,15 @@ void main(void)
|
|||||||
layer_two_tex.rgb = layer_two_tex.a * layer_two_tex.rgb;
|
layer_two_tex.rgb = layer_two_tex.a * layer_two_tex.rgb;
|
||||||
|
|
||||||
vec3 final_color = layer_two_tex.rgb + color.rgb * (1.0 - layer_two_tex.a);
|
vec3 final_color = layer_two_tex.rgb + color.rgb * (1.0 - layer_two_tex.a);
|
||||||
o_diffuse_color = vec4(final_color, 1.0);
|
|
||||||
|
|
||||||
#if defined(Advanced_Lighting_Enabled)
|
#if defined(Advanced_Lighting_Enabled)
|
||||||
vec4 layer_2 = sampleTextureLayer2(uv);
|
vec4 layer_2 = sampleTextureLayer2(uv);
|
||||||
o_normal_depth.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
o_diffuse_color = vec4(final_color, layer_2.z);
|
||||||
o_normal_depth.z = layer_2.x;
|
|
||||||
o_gloss_map = layer_2.yz;
|
o_normal_color.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
||||||
|
o_normal_color.zw = layer_2.xy;
|
||||||
|
#else
|
||||||
|
o_diffuse_color = vec4(final_color, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,7 @@ in vec3 normal;
|
|||||||
in vec2 uv;
|
in vec2 uv;
|
||||||
|
|
||||||
layout(location = 0) out vec4 o_diffuse_color;
|
layout(location = 0) out vec4 o_diffuse_color;
|
||||||
layout(location = 1) out vec3 o_normal_depth;
|
layout(location = 1) out vec4 o_normal_color;
|
||||||
layout(location = 2) out vec2 o_gloss_map;
|
|
||||||
|
|
||||||
#stk_include "utils/encode_normal.frag"
|
#stk_include "utils/encode_normal.frag"
|
||||||
#stk_include "utils/rgb_conversion.frag"
|
#stk_include "utils/rgb_conversion.frag"
|
||||||
@ -30,8 +29,12 @@ void main(void)
|
|||||||
|
|
||||||
#if defined(Advanced_Lighting_Enabled)
|
#if defined(Advanced_Lighting_Enabled)
|
||||||
vec4 layer_2 = sampleTextureLayer2(uv);
|
vec4 layer_2 = sampleTextureLayer2(uv);
|
||||||
o_normal_depth.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
o_diffuse_color = vec4(col.xyz, layer_2.z);
|
||||||
o_normal_depth.z = layer_2.x;
|
|
||||||
o_gloss_map = 0.1 * layer_2.yz;
|
o_normal_color.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
||||||
|
o_normal_color.zw = layer_2.xy;
|
||||||
|
#else
|
||||||
|
o_diffuse_color = vec4(col.xyz, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
in float hue_change;
|
in vec3 bitangent;
|
||||||
|
|
||||||
in vec4 color;
|
in vec4 color;
|
||||||
|
in float hue_change;
|
||||||
|
in vec3 normal;
|
||||||
|
in vec3 tangent;
|
||||||
in vec2 uv;
|
in vec2 uv;
|
||||||
|
|
||||||
layout(location = 0) out vec4 o_diffuse_color;
|
layout(location = 0) out vec4 o_diffuse_color;
|
||||||
layout(location = 1) out vec3 o_normal_depth;
|
layout(location = 1) out vec4 o_normal_color;
|
||||||
layout(location = 2) out vec2 o_gloss_map;
|
|
||||||
|
|
||||||
#stk_include "utils/encode_normal.frag"
|
#stk_include "utils/encode_normal.frag"
|
||||||
#stk_include "utils/rgb_conversion.frag"
|
#stk_include "utils/rgb_conversion.frag"
|
||||||
#stk_include "utils/sp_texture_sampling.frag"
|
#stk_include "utils/sp_texture_sampling.frag"
|
||||||
#stk_include "utils/sp_normalMapOutput.frag"
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
@ -33,11 +33,23 @@ void main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
vec3 final_color = col.xyz * color.xyz;
|
vec3 final_color = col.xyz * color.xyz;
|
||||||
o_diffuse_color = vec4(final_color, 1.0);
|
|
||||||
|
|
||||||
#if defined(Advanced_Lighting_Enabled)
|
#if defined(Advanced_Lighting_Enabled)
|
||||||
vec4 layer_3 = sampleTextureLayer3(uv);
|
|
||||||
vec4 layer_2 = sampleTextureLayer2(uv);
|
vec4 layer_2 = sampleTextureLayer2(uv);
|
||||||
outputNormalMapPbrData(layer_3.rgb, layer_2.rgb);
|
vec4 layer_3 = sampleTextureLayer3(uv);
|
||||||
|
o_diffuse_color = vec4(final_color, layer_2.z);
|
||||||
|
|
||||||
|
vec3 tangent_space_normal = 2.0 * layer_3.xyz - 1.0;
|
||||||
|
vec3 frag_tangent = normalize(tangent);
|
||||||
|
vec3 frag_bitangent = normalize(bitangent);
|
||||||
|
vec3 frag_normal = normalize(normal);
|
||||||
|
mat3 t_b_n = mat3(frag_tangent, frag_bitangent, frag_normal);
|
||||||
|
|
||||||
|
vec3 world_normal = t_b_n * tangent_space_normal;
|
||||||
|
|
||||||
|
o_normal_color.xy = 0.5 * EncodeNormal(normalize(world_normal)) + 0.5;
|
||||||
|
o_normal_color.zw = layer_2.xy;
|
||||||
|
#else
|
||||||
|
o_diffuse_color = vec4(final_color, 1.0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,7 @@ in vec3 normal;
|
|||||||
in vec2 uv;
|
in vec2 uv;
|
||||||
|
|
||||||
layout(location = 0) out vec4 o_diffuse_color;
|
layout(location = 0) out vec4 o_diffuse_color;
|
||||||
layout(location = 1) out vec3 o_normal_depth;
|
layout(location = 1) out vec4 o_normal_color;
|
||||||
layout(location = 2) out vec2 o_gloss_map;
|
|
||||||
|
|
||||||
#stk_include "utils/encode_normal.frag"
|
#stk_include "utils/encode_normal.frag"
|
||||||
#stk_include "utils/rgb_conversion.frag"
|
#stk_include "utils/rgb_conversion.frag"
|
||||||
@ -33,12 +32,15 @@ void main(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
vec3 final_color = col.xyz * color.xyz;
|
vec3 final_color = col.xyz * color.xyz;
|
||||||
o_diffuse_color = vec4(final_color, 1.0);
|
|
||||||
|
|
||||||
#if defined(Advanced_Lighting_Enabled)
|
#if defined(Advanced_Lighting_Enabled)
|
||||||
vec4 layer_2 = sampleTextureLayer2(uv);
|
vec4 layer_2 = sampleTextureLayer2(uv);
|
||||||
o_normal_depth.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
o_diffuse_color = vec4(final_color, layer_2.z);
|
||||||
o_normal_depth.z = layer_2.x;
|
|
||||||
o_gloss_map = layer_2.yz;
|
o_normal_color.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
||||||
|
o_normal_color.zw = layer_2.xy;
|
||||||
|
#else
|
||||||
|
o_diffuse_color = vec4(final_color, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -3,8 +3,7 @@ in vec3 normal;
|
|||||||
in vec2 uv;
|
in vec2 uv;
|
||||||
|
|
||||||
layout(location = 0) out vec4 o_diffuse_color;
|
layout(location = 0) out vec4 o_diffuse_color;
|
||||||
layout(location = 1) out vec3 o_normal_depth;
|
layout(location = 1) out vec4 o_normal_color;
|
||||||
layout(location = 2) out vec2 o_gloss_map;
|
|
||||||
|
|
||||||
#stk_include "utils/encode_normal.frag"
|
#stk_include "utils/encode_normal.frag"
|
||||||
#stk_include "utils/sp_texture_sampling.frag"
|
#stk_include "utils/sp_texture_sampling.frag"
|
||||||
@ -21,8 +20,12 @@ void main(void)
|
|||||||
o_diffuse_color = vec4(final_color, 1.0);
|
o_diffuse_color = vec4(final_color, 1.0);
|
||||||
|
|
||||||
#if defined(Advanced_Lighting_Enabled)
|
#if defined(Advanced_Lighting_Enabled)
|
||||||
o_normal_depth.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
o_diffuse_color = vec4(final_color, 0.4);
|
||||||
o_normal_depth.z = 0.0;
|
|
||||||
o_gloss_map = vec2(0.0, 0.1);
|
o_normal_color.xy = 0.5 * EncodeNormal(normalize(normal)) + 0.5;
|
||||||
|
o_normal_color.zw = vec2(0.0);
|
||||||
|
#else
|
||||||
|
o_diffuse_color = vec4(final_color, 1.0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
// This function encapsulate the computation of normal maps
|
|
||||||
in vec3 tangent;
|
|
||||||
in vec3 bitangent;
|
|
||||||
in vec3 normal;
|
|
||||||
|
|
||||||
void outputNormalMapPbrData(vec3 layer_3, vec3 layer_2)
|
|
||||||
{
|
|
||||||
vec3 tangent_space_normal = 2.0 * layer_3.xyz - 1.0;
|
|
||||||
vec3 frag_tangent = normalize(tangent);
|
|
||||||
vec3 frag_bitangent = normalize(bitangent);
|
|
||||||
vec3 frag_normal = normalize(normal);
|
|
||||||
mat3 t_b_n = mat3(frag_tangent, frag_bitangent, frag_normal);
|
|
||||||
|
|
||||||
vec3 world_normal = t_b_n * tangent_space_normal;
|
|
||||||
|
|
||||||
o_normal_depth.xy = 0.5 * EncodeNormal(normalize(world_normal)) + 0.5;
|
|
||||||
o_normal_depth.z = layer_2.x;
|
|
||||||
o_gloss_map = layer_2.yz;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -118,8 +118,7 @@ RTT::RTT(unsigned int width, unsigned int height, float rtt_scale,
|
|||||||
}
|
}
|
||||||
if (CVS->isDeferredEnabled())
|
if (CVS->isDeferredEnabled())
|
||||||
{
|
{
|
||||||
m_render_target_textures[RTT_NORMAL_AND_DEPTH] = generateRTT(res, GL_RGB10_A2, GL_RGBA, GL_UNSIGNED_INT_2_10_10_10_REV);
|
m_render_target_textures[RTT_NORMAL_AND_DEPTH] = generateRTT(res, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
|
||||||
m_render_target_textures[RTT_SP_GLOSS] = generateRTT(res, GL_RG8, GL_RG, GL_UNSIGNED_BYTE);
|
|
||||||
m_render_target_textures[RTT_SP_DIFF_COLOR] = generateRTT(res, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
|
m_render_target_textures[RTT_SP_DIFF_COLOR] = generateRTT(res, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
|
||||||
m_render_target_textures[RTT_RGBA_2] = generateRTT(res, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
|
m_render_target_textures[RTT_RGBA_2] = generateRTT(res, GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE);
|
||||||
m_render_target_textures[RTT_DIFFUSE] = generateRTT(res, diffuse_specular_internal_format, rgb_format, type);
|
m_render_target_textures[RTT_DIFFUSE] = generateRTT(res, diffuse_specular_internal_format, rgb_format, type);
|
||||||
@ -181,7 +180,6 @@ RTT::RTT(unsigned int width, unsigned int height, float rtt_scale,
|
|||||||
somevector.clear();
|
somevector.clear();
|
||||||
somevector.push_back(m_render_target_textures[RTT_SP_DIFF_COLOR]);
|
somevector.push_back(m_render_target_textures[RTT_SP_DIFF_COLOR]);
|
||||||
somevector.push_back(m_render_target_textures[RTT_NORMAL_AND_DEPTH]);
|
somevector.push_back(m_render_target_textures[RTT_NORMAL_AND_DEPTH]);
|
||||||
somevector.push_back(m_render_target_textures[RTT_SP_GLOSS]);
|
|
||||||
m_frame_buffers[FBO_SP] = new FrameBuffer(somevector, m_depth_stencil_tex, res.Width, res.Height);
|
m_frame_buffers[FBO_SP] = new FrameBuffer(somevector, m_depth_stencil_tex, res.Width, res.Height);
|
||||||
|
|
||||||
somevector.clear();
|
somevector.clear();
|
||||||
|
@ -65,7 +65,6 @@ enum TypeRTT : unsigned int
|
|||||||
{
|
{
|
||||||
RTT_COLOR = 0,
|
RTT_COLOR = 0,
|
||||||
RTT_NORMAL_AND_DEPTH,
|
RTT_NORMAL_AND_DEPTH,
|
||||||
RTT_SP_GLOSS,
|
|
||||||
RTT_SP_DIFF_COLOR, // RGBA
|
RTT_SP_DIFF_COLOR, // RGBA
|
||||||
RTT_RGBA_2,
|
RTT_RGBA_2,
|
||||||
RTT_DIFFUSE,
|
RTT_DIFFUSE,
|
||||||
|
@ -207,16 +207,16 @@ public:
|
|||||||
assignSamplerNames(0, "diffuse_map", ST_NEAREST_FILTERED,
|
assignSamplerNames(0, "diffuse_map", ST_NEAREST_FILTERED,
|
||||||
1, "specular_map", ST_NEAREST_FILTERED,
|
1, "specular_map", ST_NEAREST_FILTERED,
|
||||||
2, "ssao_tex", ST_NEAREST_FILTERED,
|
2, "ssao_tex", ST_NEAREST_FILTERED,
|
||||||
3, "gloss_map", ST_NEAREST_FILTERED,
|
3, "normal_color", ST_NEAREST_FILTERED,
|
||||||
4, "diffuse_color", ST_NEAREST_FILTERED,
|
4, "diffuse_color", ST_NEAREST_FILTERED,
|
||||||
5, "depth_stencil", ST_NEAREST_FILTERED,
|
5, "depth_stencil", ST_NEAREST_FILTERED,
|
||||||
6, "light_scatter", ST_NEAREST_FILTERED);
|
6, "light_scatter", ST_NEAREST_FILTERED);
|
||||||
} // CombineDiffuseColor
|
} // CombineDiffuseColor
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
void render(GLuint dm, GLuint sm, GLuint st, GLuint gm, GLuint dc,
|
void render(GLuint dm, GLuint sm, GLuint st, GLuint nt, GLuint dc,
|
||||||
GLuint ds, GLuint lt, const std::array<float, 4> & bg_color)
|
GLuint ds, GLuint lt, const std::array<float, 4> & bg_color)
|
||||||
{
|
{
|
||||||
setTextureUnits(dm, sm, st, gm, dc, ds, lt);
|
setTextureUnits(dm, sm, st, nt, dc, ds, lt);
|
||||||
drawFullScreenEffect(bg_color);
|
drawFullScreenEffect(bg_color);
|
||||||
} // render
|
} // render
|
||||||
}; // CombineDiffuseColor
|
}; // CombineDiffuseColor
|
||||||
@ -259,10 +259,8 @@ void ShaderBasedRenderer::renderSceneDeferred(scene::ICameraSceneNode * const ca
|
|||||||
{
|
{
|
||||||
m_rtts->getFBO(FBO_SP).bind();
|
m_rtts->getFBO(FBO_SP).bind();
|
||||||
float clear_color_empty[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
float clear_color_empty[4] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||||
float clear_color_gloss[4] = { 0.1f, 0.1f, 0.0f, 0.0f };
|
|
||||||
glClearBufferfv(GL_COLOR, 0, clear_color_empty);
|
glClearBufferfv(GL_COLOR, 0, clear_color_empty);
|
||||||
glClearBufferfv(GL_COLOR, 1, clear_color_empty);
|
glClearBufferfv(GL_COLOR, 1, clear_color_empty);
|
||||||
glClearBufferfv(GL_COLOR, 2, clear_color_gloss);
|
|
||||||
glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0f, 0);
|
glClearBufferfi(GL_DEPTH_STENCIL, 0, 1.0f, 0);
|
||||||
ScopedGPUTimer Timer(irr_driver->getGPUTimer(Q_SOLID_PASS));
|
ScopedGPUTimer Timer(irr_driver->getGPUTimer(Q_SOLID_PASS));
|
||||||
SP::draw(SP::RP_1ST, SP::DCT_NORMAL);
|
SP::draw(SP::RP_1ST, SP::DCT_NORMAL);
|
||||||
@ -352,7 +350,7 @@ void ShaderBasedRenderer::renderSceneDeferred(scene::ICameraSceneNode * const ca
|
|||||||
m_rtts->getRenderTarget(RTT_DIFFUSE),
|
m_rtts->getRenderTarget(RTT_DIFFUSE),
|
||||||
m_rtts->getRenderTarget(RTT_SPECULAR),
|
m_rtts->getRenderTarget(RTT_SPECULAR),
|
||||||
m_rtts->getRenderTarget(RTT_HALF1_R),
|
m_rtts->getRenderTarget(RTT_HALF1_R),
|
||||||
m_rtts->getRenderTarget(RTT_SP_GLOSS),
|
m_rtts->getRenderTarget(RTT_NORMAL_AND_DEPTH),
|
||||||
m_rtts->getRenderTarget(RTT_SP_DIFF_COLOR),
|
m_rtts->getRenderTarget(RTT_SP_DIFF_COLOR),
|
||||||
m_rtts->getDepthStencilTexture(),
|
m_rtts->getDepthStencilTexture(),
|
||||||
m_rtts->getRenderTarget(RTT_HALF1), !m_skybox ?
|
m_rtts->getRenderTarget(RTT_HALF1), !m_skybox ?
|
||||||
|
Loading…
Reference in New Issue
Block a user