Revert "Attempt to disable multisampling (glTexImage2D instead of glTexImage2DMultisample), but nothing shows up"
This reverts commit 5b972cb3ec
.
This commit is contained in:
parent
03f7a4f880
commit
7342c28e6b
|
@ -41,6 +41,9 @@ use std::thread;
|
||||||
|
|
||||||
const ATLAS_SIZE: usize = 1024;
|
const ATLAS_SIZE: usize = 1024;
|
||||||
|
|
||||||
|
// TEMP
|
||||||
|
const NUM_SAMPLES: i32 = 2;
|
||||||
|
|
||||||
pub struct Camera {
|
pub struct Camera {
|
||||||
pub pos: cgmath::Point3<f64>,
|
pub pos: cgmath::Point3<f64>,
|
||||||
pub yaw: f64,
|
pub yaw: f64,
|
||||||
|
@ -774,6 +777,7 @@ init_shader! {
|
||||||
required accum => "taccum",
|
required accum => "taccum",
|
||||||
required revealage => "trevealage",
|
required revealage => "trevealage",
|
||||||
required color => "tcolor",
|
required color => "tcolor",
|
||||||
|
required samples => "samples",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -846,30 +850,38 @@ impl TransInfo {
|
||||||
main.bind();
|
main.bind();
|
||||||
|
|
||||||
let fb_color = gl::Texture::new();
|
let fb_color = gl::Texture::new();
|
||||||
fb_color.bind(gl::TEXTURE_2D);
|
fb_color.bind(gl::TEXTURE_2D_MULTISAMPLE);
|
||||||
fb_color.image_2d(
|
fb_color.image_2d_sample(
|
||||||
gl::TEXTURE_2D,
|
gl::TEXTURE_2D_MULTISAMPLE,
|
||||||
0,
|
NUM_SAMPLES,
|
||||||
width,
|
width,
|
||||||
height,
|
height,
|
||||||
gl::RGBA,
|
gl::RGBA8,
|
||||||
gl::UNSIGNED_BYTE,
|
false,
|
||||||
None,
|
);
|
||||||
|
main.texture_2d(
|
||||||
|
gl::COLOR_ATTACHMENT_0,
|
||||||
|
gl::TEXTURE_2D_MULTISAMPLE,
|
||||||
|
&fb_color,
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
main.texture_2d(gl::COLOR_ATTACHMENT_0, gl::TEXTURE_2D, &fb_color, 0);
|
|
||||||
|
|
||||||
let fb_depth = gl::Texture::new();
|
let fb_depth = gl::Texture::new();
|
||||||
fb_depth.bind(gl::TEXTURE_2D);
|
fb_depth.bind(gl::TEXTURE_2D_MULTISAMPLE);
|
||||||
fb_depth.image_2d(
|
fb_depth.image_2d_sample(
|
||||||
gl::TEXTURE_2D,
|
gl::TEXTURE_2D_MULTISAMPLE,
|
||||||
0,
|
NUM_SAMPLES,
|
||||||
width,
|
width,
|
||||||
height,
|
height,
|
||||||
gl::DEPTH_COMPONENT,
|
gl::DEPTH_COMPONENT24,
|
||||||
gl::UNSIGNED_BYTE,
|
false,
|
||||||
None,
|
);
|
||||||
|
main.texture_2d(
|
||||||
|
gl::DEPTH_ATTACHMENT,
|
||||||
|
gl::TEXTURE_2D_MULTISAMPLE,
|
||||||
|
&fb_depth,
|
||||||
|
0,
|
||||||
);
|
);
|
||||||
main.texture_2d(gl::DEPTH_ATTACHMENT, gl::TEXTURE_2D, &fb_depth, 0);
|
|
||||||
gl::check_framebuffer_status();
|
gl::check_framebuffer_status();
|
||||||
|
|
||||||
gl::unbind_framebuffer();
|
gl::unbind_framebuffer();
|
||||||
|
@ -913,12 +925,13 @@ impl TransInfo {
|
||||||
gl::active_texture(1);
|
gl::active_texture(1);
|
||||||
self.revealage.bind(gl::TEXTURE_2D);
|
self.revealage.bind(gl::TEXTURE_2D);
|
||||||
gl::active_texture(2);
|
gl::active_texture(2);
|
||||||
self.fb_color.bind(gl::TEXTURE_2D);
|
self.fb_color.bind(gl::TEXTURE_2D_MULTISAMPLE);
|
||||||
|
|
||||||
shader.program.use_program();
|
shader.program.use_program();
|
||||||
shader.accum.set_int(0);
|
shader.accum.set_int(0);
|
||||||
shader.revealage.set_int(1);
|
shader.revealage.set_int(1);
|
||||||
shader.color.set_int(2);
|
shader.color.set_int(2);
|
||||||
|
shader.samples.set_int(NUM_SAMPLES);
|
||||||
self.array.bind();
|
self.array.bind();
|
||||||
gl::draw_arrays(gl::TRIANGLES, 0, 6);
|
gl::draw_arrays(gl::TRIANGLES, 0, 6);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
uniform sampler2D taccum;
|
uniform sampler2D taccum;
|
||||||
uniform sampler2D trevealage;
|
uniform sampler2D trevealage;
|
||||||
uniform sampler2D tcolor;
|
uniform sampler2DMS tcolor;
|
||||||
|
|
||||||
|
uniform int samples;
|
||||||
|
|
||||||
out vec4 fragColor;
|
out vec4 fragColor;
|
||||||
|
|
||||||
|
@ -10,6 +12,11 @@ void main() {
|
||||||
float aa = texelFetch(trevealage, C, 0).r;
|
float aa = texelFetch(trevealage, C, 0).r;
|
||||||
vec4 col = texelFetch(tcolor, C, 0);
|
vec4 col = texelFetch(tcolor, C, 0);
|
||||||
|
|
||||||
|
for (int i = 1; i < samples; i++) {
|
||||||
|
col += texelFetch(tcolor, C, i);
|
||||||
|
}
|
||||||
|
col /= float(samples);
|
||||||
|
|
||||||
float r = accum.a;
|
float r = accum.a;
|
||||||
accum.a = aa;
|
accum.a = aa;
|
||||||
if (r >= 1.0) {
|
if (r >= 1.0) {
|
||||||
|
@ -18,5 +25,4 @@ void main() {
|
||||||
vec3 alp = clamp(accum.rgb / clamp(accum.a, 1e-4, 5e4), 0.0, 1.0);
|
vec3 alp = clamp(accum.rgb / clamp(accum.a, 1e-4, 5e4), 0.0, 1.0);
|
||||||
fragColor = vec4(col.rgb * r + alp * (1.0 - r), 0.0);
|
fragColor = vec4(col.rgb * r + alp * (1.0 - r), 0.0);
|
||||||
}
|
}
|
||||||
//fragColor = vec4(0.0, 1.0, 0.0, 0.0); // green test - fragment shader
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue