what's the best use of VS_3_0

991060

Regular
Hi, guys, I'm asking question again :LOL:

After the release of NV40/R420, VS_3_0 will no longer be a dream for us.
One of its advantage above its predecessor is the ability to use vertex texturing. I'm wondering what can we do with such ability. The first thought came into my mind is implementing some sorts of simple BRDF lighting on a per-vertex level. We don't use it not because it's too expensive to implement through PS,right ?

What do you think is the best use of VS_3_0 or vertex texturing ? Enlight me,please :oops:
 
I recall a similar topic recently.

However, most obvious is displacement mapping. It will also be useful for vertex skinning since you can replicate models by writing the data out to a texture.
 
Vertex texturing will be useful for mutipass, IMO. You could keep geometrical data structures that are updated each frame by a combination of vertex shader and pixel shader.
 
Forget about BEST use of these features, how many YEARS before these features are even starting to get used period? :) We still have barely anything using DX8 features, much less DX9 2.0, and then we'll have the market fragmented yet again with 3.0 in six months or so...! (Touch wood, as it's still not confirmed the chips mentioned have 3.0 support.)

It doesn't exactly help we have DX10 looming just beyond the horizon either...


*G*
 
Grall said:
Forget about BEST use of these features, how many YEARS before these features are even starting to get used period? :) We still have barely anything using DX8 features, much less DX9 2.0, and then we'll have the market fragmented yet again with 3.0 in six months or so...! (Touch wood, as it's still not confirmed the chips mentioned have 3.0 support.)

It doesn't exactly help we have DX10 looming just beyond the horizon either...


*G*

DX10 is a long ways away yet.
 
2005/2006 is very close by. Not far.

zsouthboy said:
Grall said:
Forget about BEST use of these features, how many YEARS before these features are even starting to get used period? :) We still have barely anything using DX8 features, much less DX9 2.0, and then we'll have the market fragmented yet again with 3.0 in six months or so...! (Touch wood, as it's still not confirmed the chips mentioned have 3.0 support.)

It doesn't exactly help we have DX10 looming just beyond the horizon either...


*G*

DX10 is a long ways away yet.
 
I think the best use will be physics simulations. Have you seen the water simulation NVidia has on their development site promoting NV2x? They do a little neighborhood sampling around each pixel and simulate a heightmap, then convert it to a normal map, and you can have objects moving around in water that create ripples, without any burden on the CPU.

You can now do that with vertices. The water will actually move and down, not just the lighting and reflection. Furthermore, you can do things like cloth simulation on the GPU. This will add a whole new dimension to lifelike animation. Vertex data can actually be modified via textures and changes will persist on a frame to frame basis, and you can get data from other vertices.

Before, when you had ouput of the pixel shader, it could only go to the screen or to a texture, and that data could only go back into another pixel shader via a texture. Now, you can have output from the pixel shader, and then go full circle back to the vertex shader. This is where the real power of VS 3.0 kicks in, not in things like looping and longer instruction counts.
 
The water will actually move and down, not just the lighting and reflection. Furthermore, you can do things like cloth simulation on the GPU.

You'll get Kristof started if you're not careful!!!
 
Mintmaster said:
and you can have objects moving around in water that create ripples, without any burden on the CPU.

You can now do that with vertices. The water will actually move and down, not just the lighting and reflection. Furthermore, you can do things like cloth simulation on the GPU.

Except, all this is just more or less useless eye candy in a real gaming situation. How do you get object interaction when your water physics is done on the GPU? There is no feedback from the vertex shaders to the CPU's physics engine in this scenario (is it even possible?), so the actual use for this seems horribly limited to me unless you just want some shit that sits in a pond of water bobbing about and looking nice, or flags rippling aimlessly in the breeze or such.


*G*
 
Everything doesn't need direct interaction, like waving flags, and small geometric bumps on the water etc. And even if you need interaction with your physics engine you'll still likely want to use approximations on the CPU anyway, rather than evaluting the whole ocean surface on the CPU just to calc the interaction with your boat or whatever.
 
What if you shoot an arrow at the flag or wear loose-fitting clothes on a person walking/jumping about, or steer a dinghy with a sail on it across rough water, or lots of similar other stuff?

Doesn't seem to be very useful to me unless you just want it to look pretty but have no effect on the world itself.

*G*
 
What restricts you from having an influence on the GPU-processed physics, Grall? You have full access to the textures. In many situations in a game it is important that you have an influence on your surroundings, but the feedback is negligible. That's where GPU processing is useful.
 
Grall said:
What if you shoot an arrow at the flag or wear loose-fitting clothes on a person walking/jumping about, or steer a dinghy with a sail on it across rough water, or lots of similar other stuff?

Doesn't seem to be very useful to me unless you just want it to look pretty but have no effect on the world itself.

*G*

This is actually very easy to accomplish. Even the current bumpmap method of water simulation can get feedback from the CPU by drawing a primitive into the textures, perturbing the simulation. When an object moves in the water, raise the water infront of the object and lower it behind it, all with an ordinary 3D drawing operation. The same can be done with cloth simulation, where you draw strategically into the texture, or change some constants in the vertex shader to indicate a new collision object for the arrow, depending on how you're doing it.

Besides, you wouldn't want to do all physics on the GPU, just relatively independent things things. Now, if you had a ripple travelling down a carpet and wanted a ball laying on it to fly upwards, yes, you would have some trouble. But at least we can get a one way communication to the object simulated on the GPU. It's the little things that make a virtual world seem realistic, and there are so many such things that we would be able to hand off to the GPU with VS 3.0.
 
I think some additional complexity in that type of effect is something that higher bandwidth interfaces might allow, as per my extrapolation of some of Tim Sweeney's commentary, and the questions I pester about in some of the IHV interviews over at DH.
Not that I've gotten answers that seem to confirm my extrapolations yet, though. :(

Anyways, this reminds me of the discussions I read back around the "Shadow Thread" time period. Does this interoperability between pixel and vertex shading offer any new possibilties there? Like using pixel shading for some sort of refining of vertex processing output for shadow softening more efficiently, and more "realistically", or some other approach?
 
Grall said:
Mintmaster said:
and you can have objects moving around in water that create ripples, without any burden on the CPU.

You can now do that with vertices. The water will actually move and down, not just the lighting and reflection. Furthermore, you can do things like cloth simulation on the GPU.

Except, all this is just more or less useless eye candy in a real gaming situation. How do you get object interaction when your water physics is done on the GPU? There is no feedback from the vertex shaders to the CPU's physics engine in this scenario (is it even possible?), so the actual use for this seems horribly limited to me unless you just want some shit that sits in a pond of water bobbing about and looking nice, or flags rippling aimlessly in the breeze or such.


*G*
one game that would benefit from all of these is a golf game. flag waving, water needed without much interaction. alot of games have water in the background of the scene that does not need (much) interaction. a game like rtcw would benefit from flag waving and things like that.
 
Back
Top