Author Topic: Radeon Drivers and Shine Mapping... That Old Chestnut  (Read 8802 times)

0 Members and 1 Guest are viewing this topic.

Offline Fineus

  • ...But you *have* heard of me.
  • Administrator
  • 212
    • Hard Light Productions
Radeon Drivers and Shine Mapping... That Old Chestnut
Hey guys...

I've not really been keeping close tabs on the SCP for a while now - and I should very much like to "get back into it". However one thing always annoyed me and that was the problem regarding Radeon drivers not displaying shine mapping (I believe it was?) correctly.

Has this been corrected, if not which driver build should I use to see the SCP in all its glory (that is - with everything functioning as it should)?

Cheers :)

 

Offline Rott3

  • 26
Re: Radeon Drivers and Shine Mapping... That Old C
No, it hasn't been corrected. You have to use OpenGl to see shinies.

And if i remember correctly, then you have to use Catalyst 4.3
But it is easier to run it in OGL. At least thats what i do.
Bet ya can't stick it

 

Offline Fineus

  • ...But you *have* heard of me.
  • Administrator
  • 212
    • Hard Light Productions
Re: Radeon Drivers and Shine Mapping... That Old C
Is that:

You have to run it in OGL and with Cats 4.3?
Or you can just run it in OGL (and it doesn't matter if you're using the 4.3 drivers or not).

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Radeon Drivers and Shine Mapping... That Old Chestnut
OGL needs newer than Cats 4.3 to work properly (otherwise there are some driver bugs).  One or two random versions since then had minor problems as well I believe.

Of course then you can't get spec with D3D so it's a trade-off for spec or env mapping since OGL still doesn't have proper (or public) envmap support yet.  OGL offers more than D3D in other areas now though: more speed and memory usage improvements, anisotropic filtering, bilinear and trilinear filtering, full support for mipmaps, etc.  Just no envmapping, yet.

 

Offline Fineus

  • ...But you *have* heard of me.
  • Administrator
  • 212
    • Hard Light Productions
Re: Radeon Drivers and Shine Mapping... That Old C
Fair enough...

In that case - does anyone know approximately how less efficient the 4.3 Cat Drivers are? I really do want to try the game out again with the new SCP spiffyness but seeing as I'm also trying to run Need for Speed Most Wanted I don't especially want to find everything else stops working.

 
Re: Radeon Drivers and Shine Mapping... That Old Chestnut
Errg I hate OpenGL though it's so crappy. Why can't you fix it so that the Radeon drivers can read the shine and glow maps? They really make a huge difference graphically, and I hate missing out on them.

 

Offline DaBrain

  • Screensniper
  • 212
    • Shadows of Lylat board
Re: Radeon Drivers and Shine Mapping... That Old Chestnut
Errg I hate OpenGL though it's so crappy.

Well, looks like you don't know much about APIs and FS2_open. Right now OpenGL has only one drawback compared to D3D. The Envirounment mapping.
Appart from that it's faster and a lot more stable.

D3D is for maximum image quality, but on the other hand it's not as optimized as OpenGL.


FS2_open does not use any 'crappy' API atm.
--------------------------------------------------
SoL is looking for a sound effect artist
Please PM me in case you want to apply
---------------------------------
Shadows of Lylat - A Freespace 2 total conversion
(hosted by Game-Warden)
----------------------------------

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
Re: Radeon Drivers and Shine Mapping... That Old C
The environmental mapping doesn't seem to work at all in newer builds anyway. You have to go back a few months to get a build with that feature functional. D3D does currently have somewhat better lighting and launcher support though.

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Radeon Drivers and Shine Mapping... That Old C
D3D does currently have somewhat better lighting
I personally don't think so.  But there is the -ogl_spec cmdline option to change specular lighting in OpenGL to try and match D3D values.  It was added so that someone would tell me what value should be used as default, but so far no one has.

 

Offline Fineus

  • ...But you *have* heard of me.
  • Administrator
  • 212
    • Hard Light Productions
Re: Radeon Drivers and Shine Mapping... That Old C
Not to demand anything (and I realise that's exactly what it looks like I'm doing) but it'd be really nice if there was generally the exact same features in both APIs... I know part of it is entirely a driver issue but when that's sorted out it'll be a lot easier all around.

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
Re: Radeon Drivers and Shine Mapping... That Old C
[q]I personally don't think so.  But there is the -ogl_spec cmdline option to change specular lighting in OpenGL to try and match D3D values.  It was added so that someone would tell me what value should be used as default, but so far no one has.[/q]

Cool, I didn't know you had added that. I'll try playing around with it and see if I can get it to look the same as it does in D3D.

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Radeon Drivers and Shine Mapping... That Old C
Not to demand anything (and I realise that's exactly what it looks like I'm doing) but it'd be really nice if there was generally the exact same features in both APIs... I know part of it is entirely a driver issue but when that's sorted out it'll be a lot easier all around.
You'll get no objection from me one that, but in practice it's rather impossible.  D3D doesn't really have anyone working on it at the moment so it's missing some of OpenGL's features and optimizations.  I don't use Windows so I can't use D3D which means that if I add something to OGL I'm unlikely to also add it to D3D since I can't test it.

That also brings up the cross-platform aspect.  D3D works only on Windows so you don't really have anything to think about there.  OGL has to work on 3 different platforms though, all with different capabilities.  A feature that may be simple to add on one platform may prove more difficult or less optimal on another, and the other platform may not support that feature at all.  That's basically the holdup on envmapping support in OGL, letting all of the various platforms catch up to each other so that nothing platform specific has to be done to support it.  OGL does have basic envmap support now (in private builds) but actually creating those envmaps is the current issue.  It's possible to do, I have the code for it, but if it's not properly handled for all platforms then it's just more work for me and more problems for everyone else.

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Re: Radeon Drivers and Shine Mapping... That Old Chestnut
Is there some way to separate features like that into the OS-specific defines? It's kind of annoying to hear "Yes, this works fine under Windows and Linux, but it doesn't work under OS X so it's not going in." I don't know if that's actually the case for anything, but regardless of the OS, it's hard to know that you could actually use the feature, except for those other people that use OS X (or Windows :D).

Not to mention that some kind of public release lets you work out the unlikely bugs and various hardware conflicts that work themselves in, before you add another platform or platforms that could each have their own individual sets of driver problems.
-C

 

Offline Fineus

  • ...But you *have* heard of me.
  • Administrator
  • 212
    • Hard Light Productions
Re: Radeon Drivers and Shine Mapping... That Old C
It does have to be said that (and I may be going out on a limb here) - most of us are still using Windows to run this thing, right?

Not that cross-platform development should be dropped or crippled. Just that maybe features for platforms that only a handful use could be prioritised below those that everyone would get something out of.

(Again, this is me "thinking out loud" so to speak - not actually wanting to tell you guys to do what I want over what you want :))

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Radeon Drivers and Shine Mapping... That Old Chestnut
Is there some way to separate features like that into the OS-specific defines? It's kind of annoying to hear "Yes, this works fine under Windows and Linux, but it doesn't work under OS X so it's not going in." I don't know if that's actually the case for anything, but regardless of the OS, it's hard to know that you could actually use the feature, except for those other people that use OS X (or Windows :D)
The point is to not release OS-specific code and in most cases OGL allows for that (since OGL itself is cross-platform).  In small peices perhaps it can be specific but not in large chuncks.  The problem in the envmapping case is that there is an old method, which is OS specific and would require large chuncks of code to be #ifdef'd, and a new method that works much better but which, because of the way the code is set up, would be problematic to support properly on all platforms (due to linking issues, etc.).  I'm changing the code to allow for this, not only for the envmapping stuff but for all future OGL code, but it's not high priority for me.

Not to mention that some kind of public release lets you work out the unlikely bugs and various hardware conflicts that work themselves in, before you add another platform or platforms that could each have their own individual sets of driver problems.
I don't release anything unless I'm happy with it.  It doesn't have to be 100% done before I put it in CVS but the basic form and functionality does have to be complete.  And if you half-ass something and assume that it would be eaiser to just get it working now and fix for other platforms later then that hits the first adage of stupid-porting-mistakes 101.  If there was more active support for both Linux and OS X on the developers side then I wouldn't be so anal about it.  But as it stands I'm the one that has to support all 3 platforms.  If I stopped working on Windows bugs and issues then I'd have more time to do all that I want, but I don't think that most people would like that very much.

It does have to be said that (and I may be going out on a limb here) - most of us are still using Windows to run this thing, right?

Not that cross-platform development should be dropped or crippled. Just that maybe features for platforms that only a handful use could be prioritised below those that everyone would get something out of.
You'd be surprised just how popular the OS X version is becoming, not to mention the fact that most FS2_Open bugs (even ones specific to Windows) are tracked down and fixed using Linux or OS X machines.  But it really doesn't matter what most people use, I don't use it, and I am writing the code.  Any time I put something in CVS it has to be ready for multi-platform support and that's not optional.  If it's not going to support multiple platforms then I don't support it.  I'm part of SCP really only for Linux and OS X so if those two things are sacrificed for better Windows support then I get sacrified too.  :)

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Radeon Drivers and Shine Mapping... That Old C
OGL does have basic envmap support now (in private builds) but actually creating those envmaps is the current issue.

you mean creating an env map from the mission background setup (not the one in the shine map)? is it posible to set it up so that you could use a user defined bitmap for the environment under opengl, rather than have them generated automatically from the background?
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline Fineus

  • ...But you *have* heard of me.
  • Administrator
  • 212
    • Hard Light Productions
Re: Radeon Drivers and Shine Mapping... That Old C
taylor - that's totally fair enough. As I said you're the guy/s who're working on this not me - do what you feel is best.

That said.. would I be correct in assuming that the best way of being able to access all the major graphical ability of the current build is to have the 4.3Cats in use? Be that as it may, where can I find a copy of them?

 

Offline DaBrain

  • Screensniper
  • 212
    • Shadows of Lylat board
Re: Radeon Drivers and Shine Mapping... That Old C
[...]
 OGL does have basic envmap support now (in private builds) but actually creating those envmaps is the current issue.  It's possible to do, I have the code for it, but if it's not properly handled for all platforms then it's just more work for me and more problems for everyone else.

Very interesting. Will it work just as the D3D using the alpha channel?

And do you have any vague idea when the env mapping reaches the public release state?

I do like the env mapping a lot, but it's just too slow in D3D, or maybe due to D3D.
--------------------------------------------------
SoL is looking for a sound effect artist
Please PM me in case you want to apply
---------------------------------
Shadows of Lylat - A Freespace 2 total conversion
(hosted by Game-Warden)
----------------------------------

 

Offline taylor

  • Super SCP/Linux Guru
  • Moderator
  • 212
    • http://www.icculus.org/~taylor
Re: Radeon Drivers and Shine Mapping... That Old C
you mean creating an env map from the mission background setup (not the one in the shine map)? is it posible to set it up so that you could use a user defined bitmap for the environment under opengl, rather than have them generated automatically from the background?
Yes, that's how I've been testing it recently (easier than actually starting a mission).  The feature needed (or what I'm going to use) to automatically generate the envmap isn't supported by all video drivers, but the ability to actually use an envmap should be.  So I want to be able to let people who can't automatically generate a mipmap still use one.  I'll probably set up some sort of cmdline option which will allow someone to generate an envmap for a mission and then have it automatically save to a file so that others could make use of it.  That would also allow easier use of nice envmaps in the techroom and the lab.

The problem with the current code (on non-Windows systems at least) is that it links to the OGL libs at build time.  That means that if the build computer has the required features, and someone using that build doesn't, it wouldn't run for them.  The OGL commands (anything beyond the 1.2 feature set) really need to be properly virtualized basically so that they can not exist and it will still work for everyone.  I'm also adding error checking into those commands so that it's easier to find problems, since we only report errors once per frame and it only says what the error is and not where it came from.  This really should have been done a long time ago but it wasn't a concern for anyone using Windows and most of my time has just been spent trying to get OGL more feature complete as well as to get the Linux and OS X versions up to speed.

That said.. would I be correct in assuming that the best way of being able to access all the major graphical ability of the current build is to have the 4.3Cats in use? Be that as it may, where can I find a copy of them?
Not sure actually.  You should be able to get older Cat versions from ATI's website.  The main problem now is that with current builds envmapping in D3D appears to be causing crashes so env may not work for you.  Specmaps would work in D3D with the older Cats though.  But you need to use current Cats in order to run OGL so it's a trade-off and you'll have to decide for yourself which you want to use.

Very interesting. Will it work just as the D3D using the alpha channel?

And do you have any vague idea when the env mapping reaches the public release state?

I do like the env mapping a lot, but it's just too slow in D3D, or maybe due to D3D.
1) It will end up doing whatever D3D does so though it's not perfect now it will eventually do whatever is wanted
2) Nope.  Just when I have time to do it and I have had very little time lately.  The little time that I have had has been mostly spent on fixing bugs and not working on the rather massive amount of new features that I've started.
3) Maybe due in part to D3D.  In OGL at least it shouldn't be too much slower than using specmaps.  It will certainly be slower than not using envmaps though, more work needs to be done by the video card to handle environment mapping.

 

Offline Taristin

  • Snipes
  • 213
  • BlueScalie
    • Skelkwank Shipyards
Re: Radeon Drivers and Shine Mapping... That Old C
Kal; Just use OGL. If the shines look too off, just drop the ambience down to .75 and it looks remarkably like D3D used to.
Freelance Modeler | Amateur Artist