HDR rendering - Feedback needed

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
Finished a first rough draft of the forthcoming HDR rendering support and some blooming filter. Works quite well without hitting the FPS too much. Ups the OpenGL version to 3.0 though – otherwise we'll have to rely on some customer specific extensions. Might need to introduce an alternative rendering path here without all those post-processing effects.

I'll need some feedback here if it is running okay, how well the auto-exposure works in different situations (moving from dark spots to bright spots, overall look of lava, leaving a dark cave and moving into the open, forests, ...). Thanks! :D
 

Attachments

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Nice.

I generally like it, with the following thoughts:
- Things seem to get too bright from just standing in the shade of a tree.
- Would be nice if snow was a little more glary
- Underground, pulling out a candle when standing over a placed candle seems very bloomy, might be more the specular settings on the surrounding blocks though.
- When holding a candle and looking at waving grass in the shade or at night, I get these weird block blobs appearing:

 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Neat :D

It does get a little over-bloomy in places, especially if you're under a tree as Immortius points out, possibly also at a distant horizon under some conditions. Caves seem too bright now, even without any sort of light source the blocks easily stand out, and with a torch out they seem outright over-exposed. Torch + Lava also pretty bloomy. Not sure if that's new with HDR or not :)

I too get those weird black puffs under some circumstances. Neat to see the fancy new metrics! Performance was good up to max view distance and flying around, where I lagged just a tad (probably while the terrain was catching up)

Also, we need to do something about the water sometime :laugh:
 

Attachments

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
First things first: I'm happy that it works on both of your setups. :D And I Will look into both of your suggestions. Might need to add some tricks to fix those over-bloomy sections though.

Yeah - water can get scary if it runs down one of those immense mountains. There was a time when water blocks could spread above other water blocks. Now imagine the floods this caused. :twisted:
 

metouto

Active Member
Contributor
Art
It is working nicely in Google Chrome with windows 7 ;)



Now the black spots I was getting were moving in the wind
so I thought it might have to do with the grass in some way :?




After I got the 1st picture I went back to terasology and
clicked respawn and this is what the picture look like and it
is daytime ... I am guessing that is a little to much light .... :)




This is what it look like at night in a 10 blocks hole going
down inside of a mountain and I am looking up at the stars ... ;)




Again this is a hole in a mountain going down (not sure how far down)
but it is daytime and I am looking up at the sky .... :)


Hope these help you ....



and just as a side note I don't have a computer that handles game graphics well the best FPS was only 8 something and most of the time it was around 5 & 6
 

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
Thank you metouto. Those black spots sure are strange... Can not reproduce them using OS X. Will check using Windows later! :D
 

metouto

Active Member
Contributor
Art
begla have you tried walking around at night with a torch in your hand :?: :?: :?:

that is what I was doing in the 1st picture ;)
 

Immortius

Lead Software Architect
Contributor
Architecture
GUI
The torch was definately necessary to produce the spots, and it only happened if the grass wasn't fully lit.
 

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
Still not sure about the funny looking spots, but I've added some tweaks that should make the effect less dazzling. Snow, for example, is no longer too bright and caves should be a lot darker.

I've also introduced a depth of field effect which is not based on some physical lens (which I've implemented before in some other context). The intensity of the blur is linearly correlated to the distance to the player's eye. This allows us to use the effect in a more stylized manner. Let me know what you think!
 

Attachments

Immortius

Lead Software Architect
Contributor
Architecture
GUI
Nice effect, the blur is perhap a touch too strong for my tastes.

I think the black spots are gone with this build, but I'm suffering an issue where the world goes black if you walk around with the torch, and then won't reappear even after putting the torch away (or even starting a new world). Just the world - the UI is unaffected.
 

metouto

Active Member
Contributor
Art
Yes Immortius, that is happening to me also .... but with me it is when I walk into the shade of a tree and then hold the torch ... and sometimes if your in the water the screen will do the same and you don't have to be holding a torch :(
 

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
Will look into this soon – but SSAO comes first! ;) Might be doable this evening – I've just returned from work. Three hours before bedtime – Go! :D

I'll add parametrize the post-processing effects soon. So making the game less blurry will be very easy and can be added to the options screen later on. It is a bit blurry! True! :geek:

EDIT: Okay... I'm falling asleep on the desk. ;) I'll call it a day.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Initial thought - it might have broken something else :D



Edit: Looks like it is the first commit to develop after updating master :)

https://github.com/MovingBlocks/Terasol ... f8dfba71a0

On the other hand it looks pretty darn psychedelic, maybe it should be a special game mode :D
 

Attachments

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
Ah! Damn all those different hardware configurations and GPUs and GPU manufacturers. :( Could you post the shader output during startup? Seems like a lot of shaders are not compiling correctly.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Here you go! Today the world was a nice orange with visible (but flat squares) of grass and the sky worked for some reason :)

I do see errors in the output now that I look closely:

Code:
"C:\Program Files\Java\jdk1.6.0_23\bin\java" -Didea.launcher.port=7532 -Didea.launcher.bin.path=E:\Dev\IntelliJ\bin -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.6.0_23\jre\lib\alt-rt.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\alt-string.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.6.0_23\jre\lib\ext\sunjce_provider.jar;E:\Dev\GitProjects\Terasology\out\production\Terasology;E:\Dev\GitProjects\Terasology\libs\annotations.jar;E:\Dev\GitProjects\Terasology\libs\AppleJavaExtensions.jar;E:\Dev\GitProjects\Terasology\libs\groovy-all-1.8.2.jar;E:\Dev\GitProjects\Terasology\libs\jbullet.jar;E:\Dev\GitProjects\Terasology\libs\jdom.jar;E:\Dev\GitProjects\Terasology\libs\jinput.jar;E:\Dev\GitProjects\Terasology\libs\jogg-0.0.7.jar;E:\Dev\GitProjects\Terasology\libs\jorbis-0.0.15.jar;E:\Dev\GitProjects\Terasology\libs\lwjgl.jar;E:\Dev\GitProjects\Terasology\libs\lwjgl_util.jar;E:\Dev\GitProjects\Terasology\libs\lzma.jar;E:\Dev\GitProjects\Terasology\libs\slick-util.jar;E:\Dev\GitProjects\Terasology\libs\slick.jar;E:\Dev\GitProjects\Terasology\libs\trove-3.0.0.jar;E:\Dev\GitProjects\Terasology\libs\vecmath.jar;E:\Dev\GitProjects\Terasology\libs\junit-4.10.jar;E:\Dev\IntelliJ\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.terasology.game.Terasology
Feb 12, 2012 10:25:38 AM org.terasology.game.Terasology main
INFO: Welcome to Terasology | Pre Alpha!
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager <init>
INFO: Loading Terasology shader manager...
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager <init>
INFO: GL_VERSION: 3.3.0
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager <init>
INFO: SHADING_LANGUAGE VERSION: 3.30 NVIDIA via Cg compiler
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager <init>
INFO: EXTENSIONS: GL_ARB_base_instance GL_ARB_blend_func_extended GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_robustness GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_objects GL_ARB_shading_language_100 GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback_instanced GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_texture_type_2_10_10_10_REV GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KTX_buffer_region GL_NV_alpha_test GL_NV_blend_minmax GL_NV_blend_square GL_NV_complex_primitives GL_NV_conditional_render GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_explicit_multisample GL_NV_fbo_color_attachments GL_NV_fence GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragdepth GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_gpu_program4 GL_NV_half_float GL_NV_light_max_exponent GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_shader_buffer_load GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_expand_normal GL_NV_texture_lod_clamp GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NVX_conditional_render GL_NVX_gpu_memory_info GL_OES_depth24 GL_OES_depth32 GL_OES_depth_texture GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_get_program_binary GL_OES_mapbuffer GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_array_object GL_OES_vertex_half_float GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL_SGIX_depth_texture GL_SGIX_shadow GL_SUN_slice_accum GL_WIN_swap_hint WGL_EXT_swap_control 
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader highp (highp_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader highp (highp_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader blur (blur_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader blur (blur_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader down (down_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader down (down_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader post (post_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader post (post_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader sky (sky_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader sky (sky_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader chunk (chunk_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader chunk (chunk_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager printLogInfo
INFO: 0(97) : error C1105: cannot call a non-function

Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader particle (particle_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader particle (particle_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager printLogInfo
INFO: 0(48) : error C1105: cannot call a non-function

Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader block (block_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader block (block_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager printLogInfo
INFO: 0(53) : error C1105: cannot call a non-function

Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader gelatinousCube (gelatinousCube_vert.glsl, type = 35633)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader gelatinousCube (gelatinousCube_frag.glsl, type = 35632)
Feb 12, 2012 10:25:38 AM org.terasology.logic.manager.ShaderManager printLogInfo
INFO: 0(45) : error C1105: cannot call a non-function

Feb 12, 2012 10:25:39 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader clouds (clouds_vert.glsl, type = 35633)
Feb 12, 2012 10:25:39 AM org.terasology.logic.manager.ShaderManager createShader
INFO: Loading shader clouds (clouds_frag.glsl, type = 35632)
Sun Feb 12 10:25:39 EST 2012 INFO:Use Java PNG Loader = true
Feb 12, 2012 10:25:39 AM java_util_logging_Logger$info call
INFO: We're not running inside a jar file, so we don't need any references to jar resources
 

begla

Project Founder and Lead Developer
Contributor
Architecture
Logistics
Seems to be NVIDIA related. Only got ATI and Intel here at the moment – at least with those it works using different OSs. Now I have to guess where the error lies. :)
 
Top