Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

d000hg

Graphics card capabilities confusion

This topic is 5956 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

My Hercules Prophet GF2-MX reports the following under DirectX8.1 (HAL) MaxTextureBlendStages : 8 MaxSimultaneousTextures : 2 MaxStreams : 0 What exactly do these mean? I''m most worried that apparently I can''t use any streams, but since I''ve writen something that uses the first stream this is obviously wrong. What about the other two - do they mean I can do 8 blend ops and 2 texture ops in a single pass, or is that the most it could do with enough streams? Like if I had4 available streams, I could still only multitexture with 2 textures in a single pass? Additionally, what types of things require more than one stream as opposed to running slower without?

Share this post


Link to post
Share on other sites
Advertisement
MAxStreams i am pretty sure refers to the number of hardware TnL streams supported at once. geforce2 dont got hardware TnL, therefore 0 are supported. in other words, you can use as many streams as you want, but everything will be done in software.

the only things that need more then one stream are things like weighted vertex blending using multiple matrices applied to the vertices. streams have nothing to do with textures, they merely deal with vertex stuff.

MaxTextureBlendStages refers to the maxium number of blend ops you can do simultanously. you are restricted to using only 2 different textures though. basically you can have tex1, tex2.

you can then do:
SetTextureStage(0, tex1);
SetTextureStage(1, tex1);
SetTextureStage(2, tex2);
SetTextureStage(3, tex1);
SetTextureStage(4, tex2);
SetTextureStage(5, tex1);
SetTextureStage(6, tex1);
SetTextureStage(7, tex2);

which will set the texture stages. then you need to setup the blend ops the stages will use.



[edited by - a person on June 28, 2002 7:28:14 PM]

Share this post


Link to post
Share on other sites
While it supports 8 stages, that doesn''t mean it supports a wide variety of those combinations. In fact if I remember there are very few combinations with more than 3 stages that will work. You have to use ValidateDevice to test your set ups.

The GeForce2 definitely supports HW TnL, GeForce was the first commercial card to do so. I don''t recall, but I think MaxStreams is Vertex Shader related, but I may be wrong about that.

Also, most cards are limited in the number of times they can read from the same texture, so I don''t think reading from each 4 times would work.


Stay Casual,

Ken
Drunken Hyena

Share this post


Link to post
Share on other sites
seems, i was slightly mistaken. MaxStreams refers to the maxium number of streams usable and a value of 0 indicates the driver being used is not a dx8.0 or higher driver. guess someone should have checked the sdk docs a bit better.

update your driver.

i fixed my previous post to avoide confusion.

Share this post


Link to post
Share on other sites
I downloaded latest drivers for my card, now get the following values:
MaxTextureBlendStages : 8
MaxSimultaneousTextures : 2
MaxStreams : 16

That''s obviously better, but still confused. To give an example, I want to do 2-texture multi-texturing (normal opaque ground texture and some transparent overlay texture), and use dot3 bumpmapping. How many of each thing does this require, and is there any reason why this could not be done in multiple passes on a single-texture/stream card?

Share this post


Link to post
Share on other sites
the texturing thing is quite simple

the MaxTextureStages indicates how many slots you can select textures for... if it''s 8, you can use 0 to 7 (all of them). if it were 4 then you could use 0 to 3 (but get an error if you SetTexture''d 4,5,6,7)...

follow?

Simultaneous Textures indicates how many per-pass will be used, or at least from my experience this is how it has worked.

you''re card supports 2, therefore you can only render geometry with 2 texture stages blending properly, if you wanted to do 3,4,5,6 passes you''d have to render the geometry 2-4x to get the same effect...

for example, you have 4 stages configured, but can only do 2 at a time... you need to do 2 passes. first pass you disable stages 2 & 3, then render. second pass you enable 2 & 3, but disable 0 & 1...

or at least, from my experience that works

Jack;

DirectX 4 VB: All you need for multimedia programming in Visual Basic
Formula 1 Championship Manager, My Game Project.

Share this post


Link to post
Share on other sites
well you could render your bump mapping and opaque texture. then rerender the landscape with only the translucent texture (turn of zwrites). you could do the opaque and translucent texture rendering together, then draw the dot3 seperatly (since it require a bumpmap only since you really dont need the texture for the calculations. or you could draw the opqaue texture, then draw the translcent texture with the bump map. it depends on whether you want the translucent texture, the opqaue texture, or both to be affected by the bumpmap.

remeber the bumpmap is just a lightmap when drawn to the screen.


do a search online for rendering dot3 bump mapping using multiple passes. most of the time you just render the scene multiple times changing the blending ops (ie use multiplicive or additve blending, etc). it can get expensive though. i think the d3d sdk ahs an example of this, as well as nvidias web site. ALL effects that are achieved via single pass suing multitexturing can be mimiced using multi pass rendering. though it requires more work and you have to becareful of the order you render things.

Share this post


Link to post
Share on other sites

  • 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!