View Full Version : Where is OpenGL 1.2 for VC6 to solve Specular lighting on Texture mapping

09-10-2002, 06:46 PM
I find that OpenGL 1.2 has implement specular lighting on Texture mapping. But I can not find OpenGL 1.2 SDK for Win32.

Where is it?

It OpenGL for Win32 is not implmented yet, any way base on OpenGL 1.1 can be use to solve this problem instead?

09-10-2002, 11:18 PM
You can still access functions in OpenGL 1.2 and up on windows using the same technique as you access extensions. Create a function pointer to the function you want, and load it manually directly from the driver. You need to get the latest glext.h for function poitre prototypes though. You can find it here (http://oss.sgi.com/projects/ogl-sample/registry/) .

If all you need is a few constants, then just plug them in to the function call just like any other constant. After all, what you can do is limited to the driver version, not the version of MS software implementation.

09-11-2002, 05:33 PM
I don't want to limit that to drivers. In case user may have no OpenGL drivers.
So I expect Software&Harware implement just like MS-OpenGL.

Is that SGI-OpenGL 1.2 software implement available? I can not find it.

Who know when MS will release OpenGL 1.2? Is that never happen?

09-12-2002, 10:26 AM
That will never happen. If you want a software implementation of OpenGL, you'll pretty much have to write your own. :

09-12-2002, 10:39 AM
If you want to "solve Specular lighting on Texture mapping" then you need the EXT_separate_specular_color extension for OpenGL1.1 (which is the current version you seems to have with VC++)

If you want to know if this extension is supported, call glGetString(GL_EXTENSIONS) and look if the string "EXT_separate_specular_color" is in it. A quick, pretty dirty yet very simple, way to look for it is calling :
strstr((char*)glGetString(GL_EXTENSIONS) , "EXT_separate_specular_color")
and test if the returned value is NULL or not.
NULL means that the extension was NOT found, otherwise it means that the extension was found.

Also, be careful to call glGetString when the GL is initialized. If you call it "offline" then you will experience problems (and that's normal).

[This message has been edited by vincoof (edited 09-12-2002).]

09-12-2002, 07:08 PM
If you want to do this in a way that will be supported by all drivers, you can do it in two passes. On the first pass, render as usual but with specular off. Then enable additive blending and render again with everything off except specular (no texture either). This is the only way you can be sure it will work on every implementation. Microsoft's release date for OpenGL 1.2 is "When Hell freezes over".