Please fix bbAntialias

Archives Forums/Blitz3D SDK Programming/Please fix bbAntialias

Robert Cummings(Posted 2007) [#1]
Hi,

Only Nvidia and Ati cards matter in this respect. Please insert some code to allow us to choose between 2x, 4x and 8x antialiasing.

All games now do this from the game. Its preferred as each game has different performances and different levels of quality are desired by end users.

This means making "profiles" and setting it at the driver level is unwelcome and certainly frowned upon by the professional development community.

Please rework the bbAntialias command so it a) works and b) works well!

Thank you Simon.


big10p(Posted 2007) [#2]
Heh - ppl have been asking this to be fixed in Blitz3D for yonks. Good luck! :)


Robert Cummings(Posted 2007) [#3]
Can I hack it or something so it works? its ridiculous to the extreme having ugly pixels when everyone uses amazing graphics cards these days.

The command simply does not work at all.

Can I pay someone to do it?


big10p(Posted 2007) [#4]
I'm not sure what can be done, TBH. It seems to work sometimes and not others. It used to work fine on my old GeForce2 GTS, until I updated the drivers one day and it simply stopped working.


skidracer(Posted 2007) [#5]
All cards I've tested with have never even suggested they can perform any of the three dx7 antialiasing methods in their caps. They are all forms of edge based AA which I don't think made it to DX8 hence the lack of support in modern drivers.


Robert Cummings(Posted 2007) [#6]
DX7 apps can AA just fine, when set from the drivers, -- so its probably just a call to the driver.

I have just tested my game by setting Antialiasing in the driver options and it looks gorgeous.

Are you able to set these caps in a later DX if a later than 7 dx is installed? sorry I dont understand the fine details. I have been googling for almost an hour now without many good finds.


skidracer(Posted 2007) [#7]
I did some research and no, there doesn't seem to be anyway for a DX7 app to request modern AA modes similar to the way the enduser can from driver control panels.


Robert Cummings(Posted 2007) [#8]
I think if possible, its available from DX8, which if I understand, can run DX7 framework?

http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dx81_c/directx_cpp/Graphics/ProgrammersGuide/AdvancedTopics/Antialias/FullSceneAntialiasing.asp


Dreamora(Posted 2007) [#9]
No, DX7 is not compatible to DX8 that are different APIs.
An engine is either DX7 or DX8

The link you refer to is DX8 and thus not applicable to DX7 (which is what B3D is basing on).

One thing thought that would be possible and would make a hell of a difference (as Toms DLLs have shown) would be allowing: Trilinear and Anisotropic filtering on textures instead of just washing out filtering aka Bilinear.


Robert Cummings(Posted 2007) [#10]
OK WE'VE DONE IT... a good friend of mine managed to reliably get it antialising all the time. Here's what he said:



surfaceDesc.dwFlags = DDSD_CAPS|DDSD_BACKBUFFERCOUNT;

surfaceDesc.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX | DDSCAPS_3DDEVICE;

surfaceDesc.ddsCaps.dwCaps2 = DDSCAPS2_HINTANTIALIASING;




This works every time on old and modern hardware, can we have a B3D SDK update? :)


Dreamora(Posted 2007) [#11]
There is one thing missing: the device has to be created with D3DRENDERSTATE_ANTIALIAS flag set, otherwise it won't work and the AA won't work with anything 2D based (textures, images), just polygons.

Problem with this "antialias" is that it isn't like the new one. It only has an on and off state, you can not set it to anything more specific, thats DX8+ only.

So if the drivers aren't set accordingly it will still fail


Robert Cummings(Posted 2007) [#12]
Dreamora, it works perfectly, we've done it, the on/off state is fine :)


Robert Cummings(Posted 2007) [#13]
Btw, I dont think its possible to get it working AFTER setting 3D graphics, in fact I dont know any games which DO work this way in any dX

The only way this can and should work is for it to be a parameter of Graphics3D.

I would love you to get this working Simon! how many beers do I owe you?


Dreamora(Posted 2007) [#14]
On higher end a lot of stuff works but B3D was targeted around crap card with some optimation for higher end not around higher end with some fallback for crap cards ...
For that reason it took 4 years of talking in until DDS support has been added (or better until Toms extension hack DLL code for this purpose was adapted and implemented)

Nearly as many request have gone in the "please fix antialias" since GeForce 5 / Radeon 9 series where the DX7 AA was finally broken.


Robert Cummings(Posted 2007) [#15]
Thanks dream.

DX7 AA works on my high end DX9 card just fine. This command should be removed or repaired.

I would love it repaired as in this day and age all games tend to employ AA.

I would suggest it be initialised only in Graphics3D, as an extra parameter as you cannot actually "toggle" FSAA, as that indeed is broken. For FSAA to work on DX7 you need to create the surfaces with it in mind.