PDA

View Full Version : Would anyone care to test my shadow program on their GF6/7?


Pages : [1] 2

Pasquinel
08-12-06, 09:48 AM
Hi,

Sorry if this topic seems as if it belongs in the wrong forum but I'm planning on demoing a program I've written which demonstrates various shadow mapping algorithms on one of the university's computers. However, before doing so, I'd like to make sure I don't run into any sort of compatibility issues with the hardware on campus. I've posted my program over at GameDev.net and it seems that most of the issues are coming from those running NVIDIA cards, which is entirely understandable since I've programmed this on an ATI X1900XTX (Ack! Heathen!!!).

Anyway, I thought I might give a shot at posting my program on this forum for additional feedback since most of you own an NVIDIA GeForce 6/7 (this was written with OpenGL Shading Language (GLSL) and Frame Buffer Objects (FBOs) in mind, which those cards support). There are 4 executables included in the zipped file below, two for ATI cards with and without FBOs enabled and two for NVIDIA cards with and without FBOs enabled (FBOs allow you to specify a shadow map resolution of 1Kx1K or greater). If you're able to get the program to run on any of the executables, please give me a general assessment on things like performance (there's a built-in framerate counter you can access on the menu bar) and, if possible, screenshots. If you can't get any of the executables to run (i.e. it crashes), please provide me with the last message that appears in the "DebugLog.txt". Thanks for your time, I greatly appreciate it.

Notes:
*Those with access only to GeForce5s/Radeon9800s could possibly get the program to run, you just won't be able to assess the shaders since these cards are only Shader Model 2.0 compliant and thus don't support the GLSL loops I've written in the fragment shaders.
*To move the viewer or light, just specify which one you'd like to adjust in the options tab then use the left/right mouse buttons.
*Spotlights-only applicable to Normal, PCF, and VSM
Directional-can be used in all the shadow mapping techniques
Omnidirectional-only applicable to PCF and VSM

http://www.yousendit.com/transfer.php?action=download&ufid=B631FB647993D0D1

Rayman1968
08-12-06, 11:43 AM
The only problem on my system seemed to be the FPS counter. I couldn't get it to work. Specs in sig.

Pasquinel
08-12-06, 12:12 PM
The only problem on my system seemed to be the FPS counter. I couldn't get it to work. Specs in sig.

I'm glad it worked on your system (ecstatic actually, after being dismayed by how so few were able to run it at GameDev.net); were you able to run all 4 executables?

About the FPS counter, did it just not show up at all? It's supposed to appear in the upper-right corner in green text. You'll know it's enabled when you see the water animating.

Rayman1968
08-12-06, 01:16 PM
I could run all 4 executables. All the shadow options worked in all 4. The fps counter doesn't show up on-screen, but it DOES show up in screen-shots.

Also, selecting 'Shadow Map' puts a large white box in the upper right hand corner. Here's a pic:

ViN86
08-12-06, 01:39 PM
its not working for me. no message in debuglog.

error with ntdll.dll

i can take a screenshot of the error msg if you want it

Pasquinel
08-12-06, 02:26 PM
I could run all 4 executables. All the shadow options worked in all 4. The fps counter doesn't show up on-screen, but it DOES show up in screen-shots.

Also, selecting 'Shadow Map' puts a large white box in the upper right hand corner. Here's a pic:

Rayman1968,

What type of light did you use? If you used 'Spot' then it would be difficult to see the shadow map (it's very light and faded) unless you position the light close to an object. Try switching back to the default 'Directional' and see if the shadow map is darker and more visible.

Thanks for mentioning about the FPS counter, I'll see if I can program it in a way to make it more visible.

its not working for me. no message in debuglog.

error with ntdll.dll

i can take a screenshot of the error msg if you want it

ViN86,

That's odd. I would've thought that ntdll.dll was included in every windows installation. Either way, here's the ntdll.dll that was included in my 'Windows\system32\' folder:

http://www.yousendit.com/transfer.php?action=download&ufid=12C8226178CE6823

Just stick it in the system32 folder or the same folder as the executables and I think that should take care of the problem.

crack
08-12-06, 02:38 PM
some issues

had to run the program under compatibility mode for it to run (ntdll.dll error)

niether OSD or FPS work, either when window is maximized or when shadows are enable

enabling shadow map draws a white square at upper right corner

exiting the program does not terminate it correctly. remains in task manager's list


hardware: 6800u

CaptNKILL
08-12-06, 02:38 PM
ViN86,

That's odd. I would've thought that ntdll.dll was included in every windows installation. Either way, here's the ntdll.dll that was included in my 'Windows\system32\' folder:

http://www.yousendit.com/transfer.php?action=download&ufid=12C8226178CE6823

Just stick it in the system32 folder or the same folder as the executables and I think that should take care of the problem.

errr... no i wouldnt go replacing system files to get this to work.

Theres an error with the file, it isnt missing. If you go swapping ntdll files from different systems it could easily screw something up.

ViN86
08-12-06, 02:42 PM
Rayman1968,

What type of light did you use? If you used 'Spot' then it would be difficult to see the shadow map (it's very light and faded) unless you position the light close to an object. Try switching back to the default 'Directional' and see if the shadow map is darker and more visible.

Thanks for mentioning about the FPS counter, I'll see if I can program it in a way to make it more visible.



ViN86,

That's odd. I would've thought that ntdll.dll was included in every windows installation. Either way, here's the ntdll.dll that was included in my 'Windows\system32\' folder:

http://www.yousendit.com/transfer.php?action=download&ufid=12C8226178CE6823

Just stick it in the system32 folder or the same folder as the executables and I think that should take care of the problem.
i have the file. i just think i need a restart. steam fubar'd this session of windows :mad:

errr... no i wouldnt go replacing system files to get this to work.

Theres an error with the file, it isnt missing. If you go swapping ntdll files from different systems it could easily screw something up.
i know ;)
any ways, windows would never allow such an operation. id have to do it in safe mode or outside of windows to force the file into place.

nV`andrew
08-12-06, 03:17 PM
though i havent tried it, it seems like a cool little program u made. keep workin with em. u seem to know what u r doing. maybe you can work on a new world wide-known benchmark test :D

badboy64
08-12-06, 04:40 PM
I get a error saying GL_ARB_Shader not supported. I am using the 91.45 on my 7950GX2.

Pasquinel
08-12-06, 04:44 PM
some issues

had to run the program under compatibility mode for it to run (ntdll.dll error)

niether OSD or FPS work, either when window is maximized or when shadows are enable

enabling shadow map draws a white square at upper right corner

exiting the program does not terminate it correctly. remains in task manager's list


hardware: 6800u

Yeah, the OSD and FPS pretty much use the same text draw routine so I'll look into rectifying that problem so it can be displayed on NV cards.

I'm guessing the blank white square that appears must have something to do with how NVIDIA cards handle z-depth precision. Normally, the shadow map should look like a grayscale image. I'll look more into it but provided below is a hacked .exe that, if I assume correctly, may alleviate the problem:

http://www.yousendit.com/transfer.php?action=download&ufid=B631FB647993D0D1

The program "DynamicShadows.exe" isn't deallocated from your Task Manager? It's never happened to me but has anyone else experienced this issue?

errr... no i wouldnt go replacing system files to get this to work.

Theres an error with the file, it isnt missing. If you go swapping ntdll files from different systems it could easily screw something up.

Yeah, sorry about the bad advice. I forgot about those system critical files but luckily there's always a backup that automatically replicates itself if the file is ever deleted.

though i havent tried it, it seems like a cool little program u made. keep workin with em. u seem to know what u r doing. maybe you can work on a new world wide-known benchmark test :D

Andrew,

Thanks, I really appreciate the compliment but I can't say I'll ever aim that high, not for the time being anyway.

Pasquinel
08-12-06, 04:54 PM
I get a error saying GL_ARB_Shader not supported. I am using the 91.45 on my 7950GX2.

I haven't kept up-to-date with the NVIDIA drivers but I'm almost certain that anything beyond ForceWare 60, which your system certainly meets/exceeds, should fully support GLSL. Was the exact error message "GL_ARB_shader_objects extension not supported!" ?

badboy64
08-12-06, 05:03 PM
I haven't kept up-to-date with the NVIDIA drivers but I'm almost certain that anything beyond ForceWare 60, which your system certainly meets/exceeds, should fully support GLSL. Was the exact error message "GL_ARB_shader_objects extension not supported!" ?
That is the exact message it says when I try to run it. Nothing else.

Pasquinel
08-12-06, 05:30 PM
That is the exact message it says when I try to run it. Nothing else.

Hmm, well let's see if your drivers support the extension. I've updated the .exe below with additional info for the "DebugLog.txt". If you can't find the string "GL_ARB_shader_objects" under the driver information column then there's something wrong with the drivers.

Also, since most of the folks here seem to have no trouble running all 4 executables, I might as well just substitute them with a single all-encompassing .exe:

http://www.yousendit.com/transfer.php?action=download&ufid=B631FB647993D0D1

SH64
08-12-06, 10:15 PM
First of all nice program. it gives me some good info since i'm interested in dynamic shadows & shadow-mapping techniques. :)

i didnt test it on my nvidia card yet but heres a couple of notes (ATi X800XT used) :

1) FPS counter is not showing up (screen just flickers but no counter) , however when i enable FRAPS it shwos 1-digit number until i enable FPS counter which lets FRAPS work correctly & show the correct framerate!!

2) Suggestion : how about assigning the mouse wheel to the viewers camera & the right-click for the spot light so we can view & move light at same time ??

3) On the X800XT i can go to shadow-maps of up to 2K .. 4K is not possible. whats the exact technical reason behind that ?? (is that because ATi cards including X800/X1800/X1900 series dont support 4Kx4K shadow maps ?? just a guess )

DataMatrix
08-12-06, 11:12 PM
ntdll.dll error...

snowmanwithahat
08-12-06, 11:26 PM
doesn't work, all 4 come up with an error before they even load.... sorry bud, btw, i'm running 84.21..... a fairly old revision driver, maybe people with newer ones will have better luck

nekrosoft13
08-12-06, 11:31 PM
I get a error saying GL_ARB_Shader not supported. I am using the 91.45 on my 7950GX2.


same here

Pasquinel
08-13-06, 01:30 AM
First of all nice program. it gives me some good info since i'm interested in dynamic shadows & shadow-mapping techniques. :)

i didnt test it on my nvidia card yet but heres a couple of notes (ATi X800XT used) :

1) FPS counter is not showing up (screen just flickers but no counter) , however when i enable FRAPS it shwos 1-digit number until i enable FPS counter which lets FRAPS work correctly & show the correct framerate!!

2) Suggestion : how about assigning the mouse wheel to the viewers camera & the right-click for the spot light so we can view & move light at same time ??

3) On the X800XT i can go to shadow-maps of up to 2K .. 4K is not possible. whats the exact technical reason behind that ?? (is that because ATi cards including X800/X1800/X1900 series dont support 4Kx4K shadow maps ?? just a guess )

If you're interested, here are some other very promising shadow mapping techniques I've stumbled upon:
-Perspective Shadow Maps
-Trapezoidal Shadow Maps
-Cascade Shadow Maps (aka Parallel Split Shadow Maps)
-Skewbe Shadow Maps

On the other side of the coin, you may also want take a look at stencil shadow volumes (the Doom 3 route), though I'm somewhat ambivalent of this technique. It's more precise (it doesn't have the fallbacks of aliasing that's attributed to shadow maps) but also can be very fillrate intensive, particularly in scenes with high levels of geometry, where silhouette extraction techniques can be very expensive and it's often very taxing to try and replicate soft shadowing via light jittering (shadow maps are the easiest way to go for soft shadows).

1. Yeah, I've taken care of the OSD/FPS counter problem already. It should appear now and shouldn't flicker anymore. Haven't uploaded it yet though, maybe in the morning after I get some shut eye. As for the 1FPS, that should be correct since the program won't re-render itself continuously unless you enable the FPS counter (I did this to prevent my card from unnecessarily heating up when the program is just left idle).

2. Thanks for the suggestion, I'll take it into account. I understand that the control scheme I've used can be somewhat cumbersome, but then again most professors aren't really familiar with WASD :)

3. My guess is your card just didn't have enough memory to store a shadow map of that size. I've used a 16-bit depth component to store the depth values of the light visible fragments so the amount of memory taken up is roughly resolutionxresolutionx2. Then you have to factor in the reflection/refraction maps for the water which use 32-bits (8-bits per channel). The card I use (X1900) has 512MB so it doesn't have too much trouble handling a 4096x4096 map. Of course, things take a real nosedive when enabling omnidirectional lighting since you have to store six of those maps at once (from Task Manager, I was able to witness my memory spike from ~80MB to ~400MB when going from 2K to 4K using omni).

doesn't work, all 4 come up with an error before they even load.... sorry bud, btw, i'm running 84.21..... a fairly old revision driver, maybe people with newer ones will have better luck

Have you tried looking at "DebugLog.txt" to see what the last message was before the program aborted?

same here

The latest revision of the program should output a "DebugLog.txt" that displays the extensions supported by your OpenGL drivers. If the "GL_ARB_shader_objects" substring isn't found anywhere, then it's probably an issue with NVIDIA's latest driver revision.

My eyelids are beginning to droop so I think I'll take a break for now. Anyway, thanks again for the terrific feedback guys. Much appreciated.

SH64
08-14-06, 11:51 PM
Ok tested here on 7950GX2 (91.45 drivers) & working!
QuadSLI isnt working though! :p

Pasquinel
08-15-06, 01:33 PM
Here's the latest update. A couple of minor changes:
http://www.yousendit.com/transfer.php?action=download&ufid=B631FB647993D0D1

*FPS counter and OSD should now be visible when toggled.
*Incorporated middle mouse wheel button to quickly switch from viewer to light control and vice-versa
*"DebugLog.txt" should now output driver/initialization info even if the program crashes pre-emptively
*Light near frustum set to capture even closer z-fragments (if anyone's having trouble displaying the shadow map, let me know. Below is a screenshot of what the shadow map should look like with omnidirectional)

http://img507.imageshack.us/img507/3765/shadowmaple4.jpg

ViN86
08-15-06, 02:16 PM
hey man, ill try it again when i get home. ;)

DataMatrix
08-15-06, 02:43 PM
Tried new version, still ntdll.dll error, here is the DebugLog.txt.

Pasquinel
08-15-06, 03:49 PM
Tried new version, still ntdll.dll error, here is the DebugLog.txt.

DataMatrix,

Thanks for posting the log file. It seems as if you aren't the only one experiencing trouble loading the BMP files as most people on GameDev.net are having the same problems. The BMP loader I used relied on the glaux library and since I didn't want to bother look for the dll to include, I've decided to write my own small BMP loader that doesn't rely on glaux. Hopefully, this latest revision will work:

http://www.yousendit.com/transfer.php?action=download&ufid=B631FB647993D0D1