Using OpenGL v1.2 ICD

I downloaded NVIDIA’s detonator drivers and I can now run using their OpenGL v1.2 ICD.

The problem comes when I try to use a function specific to OpenGL v1.2: I cannot compile OpenGL 1.2 functions.

For instance,

glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

produces a C2065: ‘GL_TEXTURE_3D’ : undeclared identifier

Do I need new headers? Do I need a special OpenGL32.dll?

If your driver support OpenGL 1.2 doesn’t mean you are actually using OpenGL 1.2. To do this, you need a opengl32.dll (the file holding all functionpointers) that support 1.2, which does not currently exist, it’s up to Microsoft to code one (unless someone else coded a new opengl32.dll, like the old SGI version, which I think is no longer supported). Until MS releases SP2 for Win2k, we will have to stick to OpenGL 1.1.

But this is not what’s wrong in this particluar case. You need a new headerfile and libraryfile (which is pointless to have if opengl32.dll does not use 1.2).

As long as microsoft won’t release their new header and libraries, you’ll have to use extensions even though your card support most of opengl 1.2.

Thanks. I was puzzled.

I hope to use 3D texture mapping but I can’t find an extension on my video card that will support this.

Am I out of luck? How can I use 3D texture maps?

Extensions on my video card:

GL_ARB_multitexture
GL_ARB_texture_compression
GL_ARB_texture_cube_map
GL_ARB_texture_env_add
GL_ARB_transpose_matrix
GL_EXT_abgr
GL_EXT_bgra GL_EXT_blend_color
GL_EXT_blend_minmax
GL_EXT_blend_subtract
GL_EXT_compiled_vertex_array
GL_EXT_fog_coord
GL_EXT_packed_pixels
GL_EXT_paletted_texture
GL_EXT_point_parameters
GL_EXT_rescale_normal
GL_EXT_secondary_color
GL_EXT_separate_specular_color
GL_EXT_shared_texture_palette
GL_EXT_stencil_wrap
GL_EXT_texture_compression_s3tc
GL_EXT_texture_edge_clamp
GL_EXT_texture_env_add
GL_EXT_texture_env_combine
GL_EXT_texture_cube_map
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_lod
GL_EXT_texture_lod_bias
GL_EXT_texture_object
GL_EXT_vertex_array
GL_EXT_vertex_weighting
GL_IBM_texture_mirrored_repeat
GL_KTX_buffer_region
GL_NV_blend_square
GL_NV_fence
GL_NV_fog_distance
GL_NV_light_max_exponent
GL_NV_register_combiners
GL_NV_texgen_emboss
GL_NV_texgen_reflection
GL_NV_texture_env_combine4
GL_NV_vertex_array_range
GL_S3_s3tc GL_SGIS_multitexture
GL_SGIS_texture_lod
GL_WIN_swap_hint
WGL_EXT_swap_control

Sorry to say this, but today the ATi Radeon is the only consumer level card that supports 3d textures.

Does that mean that even if Microsoft releases an opengl32.dll for OpenGL 1.2 that use of 3D textures will be painfully slow (for all cards but the Radeon)?

Yes

Doesn’t the nvidia geforce 256 II GTS support 3d textures ?

What do you mean by support? I got a TNT and OpenGL 1.2 drivers installed (I didn’t say I got 1.2 libraries/headers and 1.2 .dll from MS, only 1.2 drivers for my card ). And if nVidia wanna call it 1.2, they HAVE to support 3D textures. So yes, if you got OpenGL 1.2 or later, you have native support for 3D textures. But wether they are supported in hardware is a different question. But today, it’s only Radeon that supports HW 3D textures, in the consumer market at least.

But just how practical are 3D textures in most situations with current hardware anyway? A 256^3 3D texture occupies approx. 32MB of memory! I can understand if maybe you’re using only one 64^3 texture and pretty much nothing else, but I just don’t see 3D textures being practical for now while most cards out in people’s machines have at most 32MB, while 64MB cards are not in wide use yet.

Well, 3D textures are generally not 256x256x256 in size, but rather something like 256x256x8. This basically means that you have (in my example) eight 256x256 images. that represents some kind of volume.
They can be used for volumetic rendering, where you draw, say a cloud, as a row of 3D textured quads.

But yes, they do require quite large amounts of memory compared to how much the consumer level cards today got. I think 3D textures will remain in the high-end market for a while.

The ATI developer website has some nice other uses for 3d textures. “Detail Texturing” is a good idea if you need it
http://www.ati.com/na/pages/resource_cen…DTexturing.html

and
http://www.ati.com/na/pages/resource_cen…umeTexture.html

[This message has been edited by Pauly (edited 10-12-2000).]

3DLab’s Oxygen VX-1 also supports 3D texture maps (GL_EXT_texture_3D) with the latest driver. The ATI demo program works with the VX-1 card. The setting needs to be enabled in the OpenGL driver configuration page to get hardware acceleration.