Well, well, I couldn’t manage to start until now, since we have massive work to do here (e.g. a working implementation of OpenSteer.net which IS working now YAY!!!).
However, I would be really happy if the community (and certainly the guys at OTEE) could provide me their thoughts on the topic.
Problem 1:
Water wave generation, which is vertex displaced. This implies, that I use vertex shaders. What can I do if the user doesn’t have a graphics card which supports shaders? Are such vertex operations doable on CPU performance-wise (we have quite a large water plane to calculate, 2 nm to be exactly)?
Problem is, we can’t just drop those who don’t have shader-capable cards.
Maybe the best solution would be a CPU-only system for vertex displacement and a scalable system for pixel shading?
The ideal way would be a depth-dependant vertex displacement. That would require Shader model 3, which is even worse for us. Would something like that be doable on CPU with reads of the depth-texture(which is basically the heightmap of our terrain)?
Problem 2:
Foam rendering. It would be nice, especially for high waves.
Problem 3:
Ship wake rendering. Should I do this in a seperate pass with a decal renderer? How do I pass the positions. Will their number be reduced by distance to the camera?
Please let me know your thoughts on that?
You can contact me over PM if you would like to develop something like that (we’d pay you for that, certainly!).
[EDIT]
I just came across the aquatica engine, which seems to do exactly what I am looking for.
Can anyone please have a look if that could be used in Unity?
See http://www.magicindie.com/aquatica.htm
Vertex shaders will most likely be run on the CPU if the hardware can’t support them. This is doable (and some cards, like Intel GMA950, don’t have hardware vertex units anyway, so both vertex shaders and fixed function run on the CPU).
Software fallback for vertex shaders is guaranteed to exist on Windows/Direct3D9. On Mac/OpenGL it varies; I think OS X Panther did not have support for that, but both OS X Tiger and Leopard do. Don’t take my word for it though; my memory could be playing tricks on me.
If you don’t actually do texture reading, but instead lookup from a nice 2D array of heights, then maybe it is doable (on the CPU). Not sure, depends on the complexity of the calculations, water mesh density, your CPU target and so on.
I’ve just bought the Indie version and I’m getting this same error message just using the simple daylight water. I can’t figure it out. I just added the shader and scaled it to the size I wanted. Moving the Wave Scale slider does nothing. It looks awful too. I’m very disheartened.