Change render target to 16bit

This commit is contained in:
Julian
2020-01-27 01:39:10 +01:00
parent 03467fc70b
commit a6526c28e4
2 changed files with 7 additions and 6 deletions

View File

@@ -145,7 +145,7 @@
//gl_FragColor = vec4(mix(waterColor, vec3(1.,1.,1.),fresnel).xyz, 1.); //gl_FragColor = vec4(mix(waterColor, vec3(1.,1.,1.),fresnel).xyz, 1.);
//gl_FragColor = vec4(result,1.0); //gl_FragColor = vec4(result,1.0);
//gl_FragColor = vec4(normal,1.0); //gl_FragColor = vec4(normal,1.0);
gl_FragColor = vec4(displace.xyz,1.0); //Show Perlin Noise texture deactivate vertex distrotion before gl_FragColor = vec4(displace.x,displace.x,displace.x,1.0); //Show Perlin Noise texture deactivate vertex distrotion before
} }
</script> </script>
<script id="default-vs" type="x-shader/x-vertex"> <script id="default-vs" type="x-shader/x-vertex">

View File

@@ -24,10 +24,11 @@ function initGL(canvas: HTMLCanvasElement) {
alert("Unable to initialize WebGL. Your browser or machine may not support it."); alert("Unable to initialize WebGL. Your browser or machine may not support it.");
} }
gl = <WebGL2RenderingContext>gltemp; gl = <WebGL2RenderingContext>gltemp;
//WebGL2 supports floating point textures by default but it does not support filtering them or rendering to them by default. //WebGL2 supports floating point textures by default but it does not support filtering them or rendering to them by default. Note: 16bit filtering is included
gl.getExtension( 'EXT_color_buffer_float' ); //allow 32bit texture as framebuffer target if (!gl.getExtension('EXT_color_buffer_float')) {
gl.getExtension( 'OES_texture_float_linear' ); //allow linear filtering console.log("32Bit render Buffers not available.")
} //allow 32bit texture as framebuffer target
gl.enable(gl.DEPTH_TEST); gl.enable(gl.DEPTH_TEST);
} }
@@ -220,7 +221,7 @@ function initFBO() {
// Add attachments // Add attachments
textureFBO = gl.createTexture(); textureFBO = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, textureFBO); //last 3 parameter not intertesting becuase we are not supplying data gl.bindTexture(gl.TEXTURE_2D, textureFBO); //last 3 parameter not intertesting becuase we are not supplying data
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA32F, perlinNoiseFBOWidth, ferlinNoiseFBOHeight, 0, gl.RGBA, gl.FLOAT, null); gl.texImage2D(gl.TEXTURE_2D, 0, gl.R16F, perlinNoiseFBOWidth, ferlinNoiseFBOHeight, 0, gl.RED, gl.HALF_FLOAT, null);
// set the filtering so we don't need mips // set the filtering so we don't need mips
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);