Page 1 of 1

Response from Intel re multicoloured moon in Celestia

Posted: 13.06.2005, 10:39
by Minkus
Hi,

Thought you guys might be interested to know that I've been in correspondence with Intel regarding the fact that on certain Intel chipsets (notably the 82845 chipset included in lots of Dell computers), you end up with a multicoloured moon inside recent versions of Celestia.

Here is a (slightly abridged) copy of my correspondence:

I work for a school and we use the freeware Open Source space simulator Celestia for teaching purposes.
You can download a copy here:
http://www.celestiaproject.net/celestia/

With the latest Intel drivers a new OpenGL render path has become available in Celestia, 'OpenGL Vertex Program'. However, when this render path is enabled (use Ctrl-V inside Celestia to switch between the paths), and Earth's moon is visible, the moon becomes rainbow coloured instead of the normal grey colours.

In the Celestia forum it was indicated that this was a problem with the Intel drivers. From memory, the problem was with the bumpmapping support, but I may be wrong. Could you look into this please and fix the problem if it is in the drivers.

Intel replied after quite a long while with the following:

Hello,

Thank you for contacting Intel(R) Technical Support.

The following is the response from our engineering department:

Thank you for your patience while we investigated this issue. We have duplicated the problem that you are experiencing and have identified a fix for the issue. The fix will be included in a future driver release that will be posted on support.intel.com.

As a general corporate policy, the technical support staff does not comment on unannounced Intel(R) products, future technologies, or driver releases. We at Intel appreciate your feedback in this matter.

Please do not hesitate to contact us again if you need further assistance.

Sincerely,

Otto JK.
Intel Technical Support

I replied with a general 'thank you' (to which I did not expect a response). They replied with a message saying that actually, they were no longer releasing drivers for the 82845 chipset, but subsequent driver releases would fix the problem for later Intel chipsets. I thought that was all, but recently they sent me another response:

Hello Chris,

Thank you for contacting Intel(R) Technical Support.

This issue was isolated to the fact that the Celestia* application is using an extension that the Intel(R) graphics driver does not support. A newer version (ARB version) exists and that is what our drivers support. This application is using EXT_texture_env_dot3 while Intel supports only ARB_texture_env_dot3.

Unfortunately, there are no plans to include support for the older extension, EXT_texture_env_dot3, in the Intel(R) graphics drivers. To correct this issue, it is recommended that the application use the newer ARB_texture_env_dot3 extension.

Please do not hesitate to contact us again if you need further assistance.

Sincerely,

Caleb M.
Intel(R) Technical Support


Are they right, and if so, is there any reason why this can't be changed in Celestia?

Thanks!

Chris

Posted: 13.06.2005, 10:54
by selden
An Intel engineer sent me a patch for Celestia which I forwarded to the Celestia developer's mailing list. Unfortunately, nobody on the mailing list has an Intel graphics chipset, so there's no way to test it, and it hasn't been applied to the source on SourceForge.

Here's the message that I received:

Code: Select all

Hello-

I apologize in advance if I'm sending this to the wrong person.  I'm an
OpenGL driver developer for Intel's integrated graphics and I'm
investigating a bug that was reported against Celestia.  The same
problem has also been mentioned in Celestia's forums.  See:

        http://www.shatters.net/forum/viewtopic.php?t=4359

I believe I have the problem root-caused to the way Celestia is
programming the dot3 texture environment mode for the bump mapping pass.
Specifically, Celestia uses the EXT_texture_env_dot3 tokens which our
driver doesn't support (or claim to support).  I suspect that Celestia
is intended to use the ARB_texture_env_dot3 tokens instead, which our
driver does support, and which Celestia does check for.

The fix for this problem is relatively straightforward.  Two changes are
required, in two files:

In src/celengine/glext.h, add around line 683:

        /* ARB_texture_env_dot3 */
        #ifndef GL_ARB_texture_env_dot3
        #define GL_ARB_texture_env_dot3
        #define GL_DOT3_RGB_ARB         0x86AE
        #define GL_DOT3_RGBA_ARB                0x86AF
        #endif

In src/celengine/render.cpp, change line 2508 from:

        glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_DOT3_RGB_EXT);

to:

        glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT, GL_DOT3_RGB_ARB);

With this change Celestia seems to be running great -- it's a pretty
neat app!  Is this a change you guys would be interested in making?

Thanks,

Posted: 13.06.2005, 12:24
by Rassilon
Since chris is the only one out of the dev team that knows that changing those extentions will not affect the look of bumpmaps Im willing to bet thier afraid to add it in in case of breaking Celestia....I can assure you however that will not be the case as Ive done some extensive combiner work over the past few months to find the right combos to use and be cross platform comatible....And I have to say that ARB is your best bet over using EXT combiners....Thier actually better....Code for the ATI Ive notice uses them...
as does most games...Now what I cannot assure you to the fact is that other cards might or might not support them....There of course is the underlying reason why chris may have preffered to use them considering the Intel chipset users were in the minority....

This is only a guess however...

Posted: 13.06.2005, 17:23
by Minkus
If it's a question of wanting to test the changes on an Intel chipset, I have 200-odd computers at work all with Intel chipsets in them ;)

I'm not a developer so can't really compile in the changes myself, but if someone can make the changes, compile a modified Celestia.exe (I presume that's all that needs to change), and then email it to me, I'd be glad to try it out at work and let you know if it helps.

Let me know.

Posted: 13.06.2005, 20:35
by dirkpitt
The problem has long been fixed - in Celestia version 1.4.0. Perhaps you could try using that version?

Posted: 16.06.2005, 17:24
by Minkus
Sure! I'll download it and give it a go.

Posted: 17.06.2005, 09:54
by Minkus
Hi,

I tried installing the 1.4.0pre6 release (using the following link: http://www.shatters.net/~claurel/celestia/files/celestia-win32-1.4.0pre6.exe) but it still has a multicoloured moon when I use the 'OpenGL Vertex Program' (can't remember what it's called).

(I even tried Ctrl-V to see if I could use the brand new render path, but of course the Intel drivers don't support it).

Strangely enough, when I installed the above program, the About dialog box still had the old version number in it (1.3.2 IIRC), but the CHANGELOG in the Celestia directory was the new version, and the sun was called 'Sol (Sun)' instead of just 'Sol', so I guess that part only gets changed when the 'full' release comes out.

(And yes, I uninstalled the old version first, so it wasn't just a dodgy upgrade).

So 1.4.0 doesn't seem to fix it, unless it's been fixed since 1.4.0pre6...?

FYI, here's the information from About / OpenGL info when running Celestia 1.3.2:

Vendor: Intel
Renderer: Intel 865G
Version: 1.3.0 - Build 4.14.10.3889
Max simultaneous textures: 4
Max texture size: 2048

Supported Extensions:
GL_ARB_multitexture
GL_ARB_point_parameters
GL_ARB_texture_border_clamp
GL_ARB_texture_compression
GL_ARB_texture_cube_map
GL_ARB_texture_env_add
GL_ARB_texture_env_combine
GL_ARB_texture_env_dot3
GL_ARB_texture_env_crossbar
GL_ARB_transpose_matrix
GL_ARB_vertex_program
GL_ARB_window_pos
GL_EXT_abgr
GL_EXT_bgra
GL_EXT_blend_color
GL_EXT_blend_func_separate
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_clip_volume_hint
GL_EXT_compiled_vertex_array
GL_EXT_cull_vertex
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_multi_draw_arrays
GL_EXT_packed_pixels
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_stencil_wrap
GL_EXT_texture_compression_s3tc
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_filter_anisotropic
GL_3DFX_texture_compression_FXT1
GL_IBM_texture_mirrored_repeat
GL_NV_blend_square
GL_NV_texgen_reflection
GL_SGIS_generate_mipmap
GL_WIN_swap_hint

Posted: 17.06.2005, 10:58
by Vincent
I confirm the Bump and Specular maps don't work with an Intel chipset...

Posted: 18.06.2005, 11:18
by symaski62
Vendor: Intel
Renderer: Intel 865G
Version: 1.3.0 - Build 4.14.10.3889
Max simultaneous textures: 4
Max texture size: 2048

Minkus windows et linux :?:

bye

Posted: 18.06.2005, 20:49
by Minkus
Hi,

This is from the Windows version of Celestia. Don't have Linux installed.

Chris

Posted: 26.06.2005, 23:28
by bashbaug
I can confirm that 1.4.0pre6 has the same problem. That makes sense though: the date stamp on the executable is Nov. 11 and the fix wasn't added until Nov. 12.

-- Ben

Posted: 04.07.2005, 21:22
by Minkus
Would it be too much to ask for a helpful developer to do a build of the latest version for Windows, so that it can be tested on this chipset?

Or is there a later build available somewhere else?

Thanks!

Posted: 06.07.2005, 16:55
by bashbaug
Try this:

http://pages.sbcglobal.net/bashbaug/celestia/celestia.zip

I built from the 1.3.2 source tree (the latest that's posted on the downloads page), but I think I got all of my build issues worked out so it shouldn't be a huge deal to build a different version if necessary.

Simply replace (or rename) the "official" celestia.exe with the one in the zip file. I've included the necessary "quick and dirty" changes to render.cpp also, in case somebody wants to build their own version.

I'll keep this up for at least week, but no promises after that...

-- Ben

Posted: 08.07.2005, 10:31
by Minkus


I've just tried this version and it fixes the multicoloured moon perfectly on an Intel 865G chipset.

Thank you very much!