New demo

Humus said:
I suppose it's more feasible to do stuff like this on the CPU on consoles where you don't have an AGP bottleneck to pass with texture uploads.

I don't think so. The PS2 has only a bandwidth of 1.2GB/sec between the EE and the GS. Together with the rather small eDRAM Framebuffer of only 4MB the bandwidth is rather more restricted then on an PC. The only advantage could be that an vertex on the PS2 seems to be only 18byte big ( 1200MB/sec / 18byte = 66.66Mio vertex/sec which is the highest spec rating of the PS2 ).
 
I believe the PS2 is very flexible when it comes to processing Vertices and therefore developers are finding some crazy tricks they can emply to emulate PS style effects.
 
That's how water should be done in games. Clean and not overdone and the with he right amount of relection.

How hard would it be to have waves as though a wind was blowing across the water instead of the ripples?
 
I also noticed that you can acheive a similar effect in Beyond3Ds Splinter Cell Oilrig demo when you overclock too far and get rendering artifacts. The artifacts themselves create very similar splashes and ripples in the Pixel Shaded water.
 
Ratchet said:
How hard would it be to have waves as though a wind was blowing across the water instead of the ripples?

Hmm, not sure. The model I'm using here only takes vertical forces into account, but I'm guessing that by weighting the samples differently I might get the waves to distribute more in the direction of the wind. Alternatively I think it should be possible to get a reasonable such effect by simply creating ripples at one edge of the water only.
 
AFAIK, wind-on-water effects are in general very hard to model - wind strength will vary at different heights, affecting different parts of a wave differently, and there will be turbulence both above and below the water surface due to wind-water friction, making for a complex, chaotic system. Just applying a sideways force equally at all points of the water surface will give you no wave at all exept at the edges of the water, which gives completely incorrect-looking results. Using perlin noise for the wave heights looks better, but still not really convincing.
 
I don't know. It might not be that bad. Water waves are a circular motion. A constant force might produce waves, but it is more likely that a force that is higher at the top of the wave would produce waves (which would be hard to construct).

I think the problem would simply be that it's way too hard to actually compute how this force would effect the water in realtime. It'd be much more prudent to pre-compute a realistic-looking wave function. One way to do it might be to actually calculate the dispersion relation of the waves (which is not that hard to do by hand), and then model the waves as a Fourier series. By using a fourier series with the proper dispersion relation, you should be able to get quite nice-looking waves, and, perhaps, even waves crashing on a shore realistically (You'd need to have some sort of breaking condition that would cause them to crash).
 
As suggested in another thread, I added support for drawing the mouse pointer across the water to create waves.
 
Oh yeah now i see whats so great about this! Its nice to make those waves :)

Its painful to get the cursor on though, i have to switch between full screen mode on and back to off and then press esc to get the cursor. If i left click, I will have to do it again. Right clicking doesnt give me the cursor back.

One question though. Should i be seeing something dropping to the water when autodrips are on? Well i don't. I got a r9700 and cat 3.9 with battlefield 1942 menu corruption fix. Windows xp. P4 2200 and asus p4b533.

btw, I have dreamed about a software that would allow me to make waves with height and physics too so i could make huge waves and destroy stuff with them. First maybe sand castles... then destroy buildings, bridges and big cities with huge waves (bridges and buildings would need physics like in some games (for example silent storm, bridge builder/construction set/pontifex) But I bet i will have to wait few years for something like that to happen.
 
Indeed the water in BG:DA for PS2 is made up of "quite a lot" of polygons with only a specular map on them.
It moves very well (I spent long enough just playing around with it), but, for one, it doesn't reflect anything. I'm sure it refracts the bottom but it doesn't reflect anything. And of course no per-pixel effects are employed, it's all done on a per-vertex level.
 
Mendel said:
One question though. Should i be seeing something dropping to the water when autodrips are on? Well i don't.

You shouldn't see actual drops, but you should see ripples on the water as if there were drops falling into it.
 
bump.gif


The demo has been updated to use fixed point render targets instead, plus some rewrite of the shader to move the sobel filter to the physics shader. This should first of all make it possible for the GFFX to run it. Secondly, it offers significantly better performance.
Credits to Basic for doing the majority of the work on the new shaders.
 
Humus said:
bump.gif


The demo has been updated to use fixed point render targets instead, plus some rewrite of the shader to move the sobel filter to the physics shader. This should first of all make it possible for the GFFX to run it. Secondly, it offers significantly better performance.
Credits to Basic for doing the majority of the work on the new shaders.

no worky here :cry:
 
Humus said:
The demo has been updated to use fixed point render targets instead, plus some rewrite of the shader to move the sobel filter to the physics shader. This should first of all make it possible for the GFFX to run it.

I assume you use D3DFMT_G16R16.
FX supports that - but it can't be a rendertarget... :rolleyes:
 
Really? I took for granted that it supported 16bit fixed point render targets. It's not RG16 though, it's RGBA16, all four channels are needed now with the sobel filter moved to the physics shader.
 
Can anyone say why GFFX still doesn't support floating point buffers? Isn't that a non-optional part of DX9? If so, how come NV gets WHQL certification for their drivers if they're not DX9 compliant?


*G*
 
Basically everything in DX is optional. You sure can get WHQL certification for DX7 hardware.

GFFX doesn't support float buffers because the conditional FP16 format isn't in DX9 yet.
 
Xmas said:
Basically everything in DX is optional. You sure can get WHQL certification for DX7 hardware.

GFFX doesn't support float buffers because the conditional FP16 format isn't in DX9 yet.
But the FX does support float buffers in OpenGL, doesn't it? If anything, I think the problem is a difference in format. nVidia supports a packed buffer that supports up to 128 bits per pixel, into which you can place whatever information you desire. It may not be easy to translate this format to Microsoft's (which is obviously based on ATI's definition of a float buffer).
 
Chalnoth said:
But the FX does support float buffers in OpenGL, doesn't it? If anything, I think the problem is a difference in format. nVidia supports a packed buffer that supports up to 128 bits per pixel, into which you can place whatever information you desire. It may not be easy to translate this format to Microsoft's (which is obviously based on ATI's definition of a float buffer).
I believe that issues with exposing these buffers are actually to do with a lack of certain required texture addressing modes in the hardware when using float buffers. Our definition of float buffers is quite general and flexible - other implementations may be less flexible.
 
Back
Top