Page 1 of 1

Rings display problem on ATI1950Pro

Posted: 06.08.2008, 21:53
by Blobchaser
I have just joined the list, so apologies if this is a known issue -- I couldn't find it mentioned anywhere.

On my home PC (XP Home, SP2, P4 3.4GHz 3GByte RAM) with ATI1950 Pro (512Mbyte RAM), display card (latest drivers) I see artefacts on the rings of Saturn. I get rogue pixels corresponding to the edges between quads. This effect appears in all render paths (basic, multitexture, OpenGL Vertex Program and OpenGL 2.0).

See: http://myweb.tiscali.co.uk/blobchaser/CelestiaSaturn.jpg to see what I mean.

I have built a local version of Celestia and tried many things (control panel settings, disable blending and depth buffering, triangles rather than quads ...) to no avail.

Finally, I found something that removed the artefacts, but sadly it's not really a fix. If I disable mip-mapping (by setting the texture parameter to linear), the problem goes away, but of course, the rings then look aliased. I even tried generating my own mipmaps rather than using GLU, but the effect stays the same.

I am inclined to think that this isn't a Celestia bug, but a problem with my graphics card. Has anyone else seen this problem? Does anyone else have this card and do you see the same artefacts?

Cheers,

Steve.

Code: Select all

Vendor: ATI Technologies Inc.
Renderer: Radeon X1950 Pro
Version: 2.1.7769 Release
GLSL version: 1.20
Max simultaneous textures: 8
Max texture size: 4096
Max cube map size: 4096
Point size range: 1.000000 - 63.000000

Supported Extensions:
GL_AMD_performance_monitor
GL_ARB_depth_texture
GL_ARB_draw_buffers
GL_ARB_fragment_program
GL_ARB_fragment_shader
GL_ARB_multisample
GL_ARB_multitexture
GL_ARB_occlusion_query
GL_ARB_pixel_buffer_object
GL_ARB_point_parameters
GL_ARB_point_sprite
GL_ARB_shader_objects
GL_ARB_shading_language_100
GL_ARB_shadow
GL_ARB_shadow_ambient
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_crossbar
GL_ARB_texture_env_dot3
GL_ARB_texture_float
GL_ARB_texture_mirrored_repeat
GL_ARB_texture_rectangle
GL_ARB_transpose_matrix
GL_ARB_vertex_buffer_object
GL_ARB_vertex_program
GL_ARB_vertex_shader
GL_ARB_window_pos
GL_ATI_draw_buffers
GL_ATI_envmap_bumpmap
GL_ATI_fragment_shader
GL_ATI_meminfo
GL_ATI_separate_stencil
GL_ATI_shader_texture_lod
GL_ATI_texture_compression_3dc
GL_ATI_texture_env_combine3
GL_ATI_texture_float
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_compiled_vertex_array
GL_EXT_copy_texture
GL_EXT_draw_range_elements
GL_EXT_fog_coord
GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample
GL_EXT_framebuffer_object
GL_EXT_gpu_program_parameters
GL_EXT_multi_draw_arrays
GL_EXT_packed_depth_stencil
GL_EXT_packed_pixels
GL_EXT_point_parameters
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_shadow_funcs
GL_EXT_stencil_wrap
GL_EXT_subtexture
GL_EXT_texgen_reflection
GL_EXT_texture3D
GL_EXT_texture_compression_s3tc
GL_EXT_texture_cube_map
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_env_dot3
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_lod_bias
GL_EXT_texture_mirror_clamp
GL_EXT_texture_object
GL_EXT_texture_rectangle
GL_EXT_texture_sRGB
GL_EXT_vertex_array
GL_KTX_buffer_region
GL_NV_blend_square
GL_NV_texgen_reflection
GL_SGIS_generate_mipmap
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
GL_WIN_swap_hint
WGL_EXT_swap_control

Re: Rings display problem on ATI1950Pro

Posted: 07.08.2008, 02:17
by chris
That's strange . . . I do think that something is up with your driver. It looks like the texture address mode isn't being set correctly. Or, there's some problem with mipmap generation.

I do see one issue in the Celestia code that's making the problem worse than it should be: the ring texture is being repeated in each ring section. Ordinarily, that doesn't matter because the ring texture is effectively one dimensional. But, when there's a problem with the texture address mode, the 'seam' will show at the edges of each quad used for the ring geometry instead of just in a single place.

--Chris

Re: Rings display problem on ATI1950Pro

Posted: 08.08.2008, 18:22
by Blobchaser
Chris,

Many thanks for thinking about this. I'm not sure I quite understand your concern about the Celestia code. I tried various wrap modes which didn't make any difference, and I don't think its the mipmap generation either, as my own downsampler gave exactly the same results. I even tried converting the Saturn texture to a 1k x 1k image with no joy.

Anyhoo, I don't think Celestia is to blame. Time to investigate a new graphics card (36 shaders is looking a bit underpowered now!)

Cheers,

Steve.

Re: Rings display problem on ATI1950Pro

Posted: 14.08.2008, 20:56
by Reiko
I have had similar problems like this before and in my case it was my graphics driver. I use an ATI X800XL and found that older drivers work better.

Re: Rings display problem on ATI1950Pro

Posted: 15.08.2008, 15:47
by Blobchaser
Reiko wrote:I have had similar problems like this before and in my case it was my graphics driver. I use an ATI X800XL and found that older drivers work better.

Hi,

Thanks for sharing your experience. Maybe I'll try some older drivers to see what will happen.