Archived

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

wolfeinstein

Undocumented multitexture

Recommended Posts

Sorry, wrong subject, of cause it documented, JUST DOCUMENTED!!! I''m worked with mirror implementation and find interesting argument for texture stage - D3DTA_TEMP. All info that i find about it, is what it exist. How helpfull it could be? Can i avoid with it multi-pass rendering???

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I''m worked with mirror implementation and find interesting argument for texture stage - D3DTA_TEMP. All info that i find about it, is what it exist.

How helpfull it could be? Can i avoid with it multi-pass rendering???

***********************************************************

I have been working with mirror rendering implementations and have found an interesting arguement for the texture stage: D3DTA_TEMP. The only information I have found on it is that it exists!

How Helpful could it be? Can I use it to avoid multi-pass rendering?.

Answer: From what I have read about your flag, it''s a setting you can switch your texture to a read/write temporary buffer.

As for using it for mirroring, the only mirroring effect I know is done with stencils.

Share this post


Link to post
Share on other sites
>As for using it for mirroring, the only mirroring effect I >know is done with stencils.
That''s not right - Render-To-Texture is one of others.

>you can switch your texture to a read/write temporary buffer
This was in SDK Docs!

I wish to know, how to work with it, where to store, And! How helpfull could it be???

Share this post


Link to post
Share on other sites
In Texture blending, you have up to 8 stages (SetTextureStageState) of operations (multiply, add, select, etc.), the values you work with are stored in registers.
The default output register is the "CURRENT" register, and on the last blending stage, this MUST be set to the "CURRENT" register, as the result is the value of the pixel that gets drawn on the screen.
The other registers, DIFFUSE, SPECULAR, TEXTURE, TFACTOR, are all read-only, so you can''t write the result of, say, a multiplication into them.
This is where the TEMP register comes in - you can use it as the output register of your operation, then do some other operations using CURRENT, and then, at the end, combine with the TEMP register again.

The problem is: it''s basically useless. You can apparently only use two texture blending stages on most graphics cards, so writing to the TEMP register makes no sense at all, as you can just use CURRENT from getting the result of stage 0 to stage 1.

- JQ
Full Speed Games. Coming soon.

Share this post


Link to post
Share on other sites
So useless... Very,very bad.

Another question: To avoid 2 stage I could use multi-pass texturing. How it works? It looks like rendering became super-slow! (it''s nessecary to rerender 7 time parts of mesh for 7th stage rendering)
Is i right? So solution to lower graphic features?

Share this post


Link to post
Share on other sites
Well you could render 4 passes with 2 textures each, that would give you 8 textures, which is pretty reasonable if you ask me
(well, OK, I personally am using even more in my current research but that''s beside the point )

- JQ
Full Speed Games. Coming soon.

Share this post


Link to post
Share on other sites