Horde3D

Next-Generation Graphics Engine
It is currently 25.10.2021, 15:14

All times are UTC + 1 hour




Post new topic Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 23.12.2011, 18:00 
Offline

Joined: 23.12.2011, 17:21
Posts: 1
Hello everyone,

I've been interested in evaluating Horde3D for a while now, and with a new project spooling up I thought it would be the perfect time to see if it suited my needs. After two days of experimenting, I've come to the conclusion that it is one fantastic piece of software. I find the API super clean and consistent, and I really like how slim, lightweight, and straight forward it is to integrate your library; especially how it doesn't require 500,000 external prebuilt dependencies (read: Ogre3D). However, I have run into one significant stumbling block.

Ubuntu is one of our target platforms; more specifically we would like to support non-proprietary drivers (since moving forward it appears as if the non-proprietary drivers are going to be seeing more support than the vendor built ones anyway). With the recent addition of DXT format support (SOIL?) via the EXT_texture_compression_s3tc OpenGL extension, it is no longer possible for environments running open source drivers to run games developed using Horde3D (see: http://en.swpat.org/wiki/OpenGL)

Basically, there are patents being held on the proprietary formats that are required in order to use those particular texture compressions.

Now, that leaves me with two options (maybe 3, with your help) for proposing to the team.

1 - I can offer to manually disable the requirement. This would take me a small but non-trivial amount of time, and would require us to continually apply our patch and test against every release of Horde3D during our (projected many year) development cycle. I know that the extension is a relatively new addition and I can create a diffpatch between the two versions specifically calling out the areas that will need to get rolled back - hopefully making the maintenance not as terrible in the long term. Even so this is overhead we'd like to avoid. (We don't have a graphics programmer on the team, and boy do we dislike doing graphics =] )

2 - We can roll back the version of Horde3D we use, and lock into that version. Our product isn't particularly necessarily graphics intensive, so this is a viable (but unsavory) option. I am not a fan of this.

3 - With your help, we could integrate a cmake option to disable the extension by: not including source files that require it, and adding a compiler define to prevent it's use. I could probably hack it out for myself, but in order to integrate it into the trunk source tree, I'd like some community oversight (or, even better, if any of you knows how to do it quickly, that would save me some time! I'll buy you a cookie!)

So that's a LOT of text to say "Is there a way to be able to easily disable EXT_texture_compression_s3tc requirements from Horde3D, and in a way that will make it easy to continue to apply version updates from the Horde community? And hey, maybe I'm not the only one interested in targeting OSes with non-proprietary drivers!"

Thanks for your time and thanks for your efforts on this great graphics engine~
-Howard


Top
 Profile  
Reply with quote  
PostPosted: 09.01.2012, 04:31 
Offline

Joined: 08.11.2006, 03:10
Posts: 384
Location: Australia
As far as I know, you can disable the use of DXT (aka S3TC) at runtime by disabling the 'TexCompression' option via H3DOptions (before loading any assets!). This should force Horde to use regular OpenGL texture formats in all circumstances.

If the engine fails to launch / crashes because support for this extension is lacking, it should be fairly simple to fix that behaviour (so that if the extension is missing, TexCompression is forced to false and the extension is not attempted to be used). If you submit a patch to the project maintainer, they'll probably merge it into trunk.


Top
 Profile  
Reply with quote  
PostPosted: 02.03.2013, 12:11 
Offline

Joined: 01.03.2013, 10:59
Posts: 2
You aren't the only one hsmith! Did anyone submit a patch for it? I'm guessing not since I'm using the latest trunk..

h3dInit fails, so disabling the option at runtime wont work. Here's the error log from the demos:
Code:
Horde3D Log

Horde3D 1.0.0 Beta5

0.000   
Initializing GL2 backend using OpenGL driver '3.0 Mesa 8.0.4' by 'Tungsten Graphics, Inc' on 'Mesa DRI Intel(R) Sandybridge Mobile '
0.001   
Extension EXT_texture_compression_s3tc not supported
0.001   
Failed to init renderer backend, debug info following
0.001   
Supported extensions: 'GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_polygon_offset GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_3DFX_texture_compression_FXT1 GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_NV_vertex_program GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_envmap_bumpmap GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_depth_clamp GL_NV_vertex_program1_1 GL_APPLE_packed_pixels GL_APPLE_vertex_array_object GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_MESA_ycbcr_texture GL_ARB_depth_clamp GL_ARB_fragment_program_shadow G


I'm not very familiar with Horde3D yet, so there's probably someone who'd be more qualified to fix this in a fraction of the time.


Top
 Profile  
Reply with quote  
PostPosted: 13.03.2013, 10:45 
Offline

Joined: 13.03.2013, 06:29
Posts: 2
zoomulator

add this option to ~/.drirc

Code:
            <option name="force_s3tc_enable" value="true" />


Top
 Profile  
Reply with quote  
PostPosted: 10.04.2013, 22:33 
Offline

Joined: 01.03.2013, 10:59
Posts: 2
Thanks a lot john! Worked like a charm.


Top
 Profile  
Reply with quote  
PostPosted: 12.04.2013, 18:28 
Offline

Joined: 21.08.2008, 11:44
Posts: 354
You should install libtxc_dxtn in case you need support for that extension.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group