Jump to content
  • Advertisement
Sign in to follow this  
edwinnie

R2VB questions

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

jus wanna ask if anyone knows how fast is this functionality? lets say a full screen quad of 512 x 512? thx! Edwin [Edited by - edwinnie on April 19, 2006 8:08:07 PM]

Share this post


Link to post
Share on other sites
Advertisement
Your question is a little too vague to be answers [smile]

R2VB is supported on a wide range of hardware - and is therefore going to be very dependent on the GPU being used. It uses the PS units from my understanding, and the X1k series are monsters by comparison to the ageing 9x00 series.

This recent thread contains some information you might be interested in. Probably worth digging up the ATI samples from their developer site.

hth
Jack

Share this post


Link to post
Share on other sites
Check out the ATI SDK for some sample R2VB programs. There you can see some speed results.

My X1800XT makes 5FPS in the animation demo (50.000 models).

Share this post


Link to post
Share on other sites
i'm also intersted in that topic. If i understood everything right then R2VB is somehow like letting vertices run through the pixel processing pipeline. So a speed comparison the usual vertex rendering would be cool.

regards,
m4gnus

Share this post


Link to post
Share on other sites
What R2VB does is allow you to create textures which are formatted linearly in card RAM, and can then be accessed as vertex streams. You can then render, for example, to a RGBA32F render target texture, with each pixel representing some 4 float value (say, a one float height and 3 float normal) and read this as part of a vertex buffer on your next drawing call.

Share this post


Link to post
Share on other sites
Quote:
Original post by edwinnie
qnother question:
is there a way to select a subset of pixels to be swizzled into the vertex stream?

thx!


You mean is there a way to have, like, part of the VBRT (vertex buffer render target) be one model (e.g. for indices 0-150) and then have another part of the VBRT be another model (e.g. indices 151-210)? Well, one way is that instead of rendering a quad to the VBRT that covers the entire RT (remember that before you use the RT as a VBRT that it still is a normal render target and you can specify what parts of the RT get written to or updated) you could have a quad that covers the scanlines of what you need, and then a small pixel-high quad/tri that does the rest.

For example, let's say that the VBRT is laid out like this:

######
######
#$$$$$
$$$$$$
$$$$$$

and the #'s are pieces of data for the first model and the $'s for the second.
Anyways, you first draw a quad that covers the first two rows of #'s. Then, you draw a little bit more to get the one # on the third row.

Share this post


Link to post
Share on other sites
something like that, but theres more to it.

lets say the subset RT looks like this:

00000
00100
01010
10010
00001

where all the 1's need to be in a coherent vertex stream during output.
eg 111111

there are six 1's. I dont mind how the 1's are ordered in the vertex stream right now. Then again, I suppose instead using a fullscreen quad, I should use a subset quad that rough covers all the 1's? And I might have to leave with some redundancy as all the 1's are not initially in a coherent region?

thx!

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.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!