View Single Post
Old Sep 20, 2003, 09:38 PM   #1
Advertisement (Guests Only)

Login or Register to remove this ad
Faceless Rebel
Rage3D Veteran
 
Join Date: Oct 2001
Posts: 1,313
Faceless Rebel can beat 'Minesweeper' on any difficultyFaceless Rebel can beat 'Minesweeper' on any difficulty


Exclamation How to make Splinter Cell's Shadow Buffer (NV2x/3x) mode work on R9800??

Hi there.

I just replaced my Nvidia GF4 Ti4200 card with a brand new, very shiny, Radeon 9800 Pro. The problem I have is this. Splinter Cell for PC, for those of you who are unaware, has 2 totally different shadowing engines. The 'good' shadowing engine, which uses Shadow Buffers, works on with NV2x/3x cards (such as XGPU, which is what it was originally made for). The 'crappy' shadowing mode, which uses Shadow Projectors, is what all other cards use. I assure you, as an owner of both GF4 Ti4200 and Radeon 9800, that the Shadow Projector mode looks like s**t compared to the Shadow Buffer mode. There's just no comparison.

So the question is this. We know that Radeon 9x00 (R3xx) cards are perfectly capable of supporting Shadow Buffer mode, since that is a DX8.1/PS1.1 system. Is there a hack, or patch, to force Shadow Buffer mode on my Radeon 9800 card?

Note that I tried the trick in the splintercell.ini file where I forced Shadow Buffer mode, all that does is make the game crash. Presumably, it is looking for an Nvidia device ID before it runs in Shadow Buffer mode.

Please help!

Quote:
For those unaware, I have copied/pasted the relevant info from the Splinter Cell Patch 1.2 readme file:

Splinter Cell has 3 different rendering pipes:

Class 2 Graphic Adaptors:
NV2x/NV3x chips
Dynamic Lighting system = Shadow Buffer
Vertex position modifiers = Yes
Light beams stopped by depth texturing = Yes
Pixel Shader effects/filters/water = Yes
Reflection/Details texturing/Specular = Yes

Class 1 Graphic Adaptors:
R2xx/R3xx/Parhelia/Xabre 200/Xabre 400/Xabre 600/chips/Creative P9
Dynamic Lighting system = Shadow Projector
Vertex position modifiers = No
Light beams stopped by depth texturing = No
Pixel Shader effects/filters/water = Yes
Reflection/Details texturing/Specular = Yes

Class 0 Graphic Adaptors:
R1xx/NV1x chips
Dynamic Lighting system = Shadow Projector
Vertex position modifiers = No
Light beams stopped by depth texturing = No
Pixel Shader effects/filters/water = No
Reflection/Details texturing/Specular = No

Class 2 adaptors can run as Class 2, Class 1 or Class 0 adaptors while Class 1 adaptors can run as Class 1 or Class 0 adaptors. Class 0 adaptors are only able to run Splinter Cell as Class 0 adaptors.
You can force a class 1 or class 2 adaptor to run as a different class by editing the splintercell.ini file in the \system directory. Uncomment “ForceShadowMode = 0” to force the card to run as class 1 adaptor (if able to) or change “EmulateGF2Mode=0” to “EmulateGF2Mode=1” to run as a class 0 adaptor.

Why does Splinter Cell have a special mode for NV2x/NV3x graphic chips?

Splinter Cell was originally developed on XBOXTM. Features only available on NV2x chips were used and it was decided to port them to the PC version even if these chips would be the only one able to support them. Considering the lighting system of XBOXTM was well validated, it was easy to keep that system intact.

Splinter Cell Dynamic lighting system

Splinter Cell shadow system is a major part of the game. On NV2x/NV3x hardware, it runs using a technique called Shadow Buffers. This technique is rendering the scene from every shadow casting light and store a depth buffer that represent each pixel viewed by this light source. Each pixel has an X, Y, Z coordinate in the light system and these coordinates can be transformed, per pixel, in the viewer coordinate system. It’s then easy to compare with the actual depth stored in the Z buffer to figure out if the pixel viewed by the camera is the same or is occluded by the pixel viewed by the light. If they are the same, it means the pixel is lighted, if the light pixel is in front of the viewer pixel, it means the pixel is in the shadow. On all other current hardware, the game is using another technique called projected shadows (shadow projectors). The technique is somewhat similar, we render the scene from the light point of view but instead of storing the depth, we are storing the color intensity in a texture. That texture is then mapped per vertex on each object that is going to receive the shadow. To be able to have objects casting shadows on other objects that are themselves casting shadows, Splinter Cell is using a 3-depth levels shadow casting algorithm. In general, the first level is used to compute the shadow to be used on the dynamic actors like Sam. The second level is used to compute the shadow used by the static meshes like a table or boxes. The final level is used for the projection on the BSP. This system is allowing Sam to receive the shadow of a gate on him, then Sam and the gate can cast on a box and finally all three objects can cast on the BSP (ground). This system also has a distance check algorithm to determine if Sam’s shadow should be projected on a static mesh (like a box) or if it shouldn’t base on their relative position. Both systems have their own strength/weaknesses. The main advantage of the Shadow Buffer algorithm is how easy it is to work with. Shadow Projectors are tricky and difficult to use.
Finally, for the mods, if you feel this thread is in the wrong forum go ahead and move it.

Last edited by Faceless Rebel : Sep 20, 2003 at 09:42 PM.
Faceless Rebel is offline   Reply With Quote