Jump to content
  • Advertisement
Sign in to follow this  
Alex Red

nVidia and DX compatibility...?

This topic is 4804 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi Guys... always working on that...a DX7 Engine... improving it from BSP to make it more 'near' to DX...before jumping to DX9... the engine is quite done... but... found a problem I dunno how to behave... ok... let explain... I got many objects...made of various featured vertices... so... I decided... best implementation was to have FVF vertices with both Color1 , Color 2 and 2 Coords Textures... all works fine... Colour 2 is used for specularity with D3DRENDERSTATE_SPECULARMATERIALSOURCE=COLOR2 D3DRENDERSTATE_EMISSIVEMATERIALSOURCE=MATERIAL for lite surfaces... it is used instead as an emissive source color with non lite surfaces, D3DRENDERSTATE_SPECULARMATERIALSOURCE=MATERIAL D3DRENDERSTATE_EMISSIVEMATERIALSOURCE=COLOR2 of course, Material is all 'zero'... this works fine on ATI Cards, I found that on nVidia old VCArds as the GeF2 the 2nd colour seems to be completely ignored...so... for example...'emissive' surfaces are completely Black, and specularity is always at max level for any surface...this has been confirmed to me from some ppl, older nVidia seems r ignoring colour 2... I bought then a 'new' nVidia Chipset VCard... ( he...he... 'new' is too much...but I mean...declared as DX8 compatible VCard... I am working with DX7 ), it's an MX400 from ASUS, I dnt want latest chipsets, the game is a spread community game, it's free, but I dnt want to cut off some ppl having older VCards... Well... I found... same problem...!!! Colour 2 seems to be completely ignored...!!! I know it is not on newer nVidia as we got some BetaTesters using the game on such VCards, and having no problem... but then... can any1 explain me... I am doing a wrong way with nVidia chipset ( at least older ones)...? There is something more I have to do...? Is nVidia really DX compatible on all DX aspects...if not... from which Chipset...? any help would be appreciated... tnx [R]ed

Share this post


Link to post
Share on other sites
Advertisement
Is lighting enabled? Material and xMATERIALOURCE options only work with lighting enabled... as it's working on ATI, you probably do have lighting.

Is COLOR1 referenced anywhere (as DIFFUSEMATERIALSOURCE perhaps)? It shouldn't technically matter, but perhaps a driver bug ignores COLOR2 if COLOR1 is never used.

COLOR2 is meant for specular. Do you have D3DRS_SPECULARENABLE set to true? While you can tell emissive to use color2, again, a driver bug assuming it's only used for specular could disable color2 if you don't set the specular renderstate.

You said your material was all 0. When specular color and power are both 0, specular may be disabled (I seem to remember reading something about it, a long time ago). Again, perhaps a driver bug ignores COLOR2 when this is the case. Try changing the material color and/or power.

Have you tried the reference rasterizer? It'll be slow, but it will produce standard results. If your app and the reference rasterizer differ, you can see if nVidia is interested in fixing their driver.

GeForce4MX cards are actually GeForce2 cards with some minor tweaks. They fake vertex shader support, with emulation in the driver (poorly done emulation at that, according to many reports). They're popular because they are cheap, but they aren't really DX8 cards. A Geforce3 or non-MX GeForce4 would be a DX8 card.

Hope something in here helps you out.

Share this post


Link to post
Share on other sites
Original post by Namethatnobodyelsetook
Quote:
Is lighting enabled? Material and xMATERIALOURCE options only work with lighting enabled... as it's working on ATI, you probably do have lighting.

Of course... u answered urself... ;)

Quote:
Is COLOR1 referenced anywhere (as DIFFUSEMATERIALSOURCE perhaps)? It shouldn't technically matter, but perhaps a driver bug ignores COLOR2 if COLOR1 is never used.

Both colours are always used... COLOR1 is the default DIFFUSE colour, COLOR2 are SPECULAR/EMISSIVE... COLOR1 is made Black (0x00000000) in case of EMISSIVE vertex, as it would be affected by overall lighting, but it is ALWAYS Enabled...changes affects only COLOR2...

Quote:
COLOR2 is meant for specular. Do you have D3DRS_SPECULARENABLE set to true? While you can tell emissive to use color2, again, a driver bug assuming it's only used for specular could disable color2 if you don't set the specular renderstate.

Yep... SPECULARENABLE Enabled for specularity, Disabled for emissive...

Quote:
You said your material was all 0. When specular color and power are both 0, specular may be disabled (I seem to remember reading something about it, a long time ago). Again, perhaps a driver bug ignores COLOR2 when this is the case. Try changing the material color and/or power.

Nice Idea... I will try... but I have previously forced the Emissive color to COLOR1 instead of COLOR2, in this case EMISSIVE COLOR WORKS...so...seems a matter of referenced colour...not material...

Quote:
Have you tried the reference rasterizer? It'll be slow, but it will produce standard results. If your app and the reference rasterizer differ, you can see if nVidia is interested in fixing their driver.

No...not tried... have to see how to do... I am deriving from a previous old DX7 engine... mantained the most settings...so may be not easy...
However... all seems working fine on a cheap SiS650...!!!

Quote:
GeForce4MX cards are actually GeForce2 cards with some minor tweaks. They fake vertex shader support, with emulation in the driver (poorly done emulation at that, according to many reports). They're popular because they are cheap, but they aren't really DX8 cards. A Geforce3 or non-MX GeForce4 would be a DX8 card.

He...He... nVidia cheaters...!!!


Quote:
Hope something in here helps you out.

Sure...

Tnx for ur Advices UnNamed...!!!

I will make some more tries looking at ur Ideas...

[R]ed

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!