I’d like to make a ultra realistic
environement with a lake surrounded with
mountains. The mountains would be generated with classic fractal models, and rendered using a polygon reduction algorithm, taking advantage of the OpenGL QUAD_STRIPS.
The lake part would require environement mapped bump mapping with huge textures, combined with refraction. Obviously, using the hardware for this second operation is impossible. It would require a lot of rendering to textures, without talking of the masks that would require 64MB of texture memory. So the best solution for this, in my opinion, is to copy the back buffer to a system memory frame buffer, render the lake, and copy back to video memory.
The great problem is that I want it to run on any machine, because everyone doesn’t has the money to buy a state of the art accelerator each 6 mounths. I know people who work on 300MHz processors and who have no hardware acceleration.
Any solution/suggest ?
Is OpenGL appropriated to do this ?
The more I think about it the more I think not, but I don’t know in fact.
Your problem is not which API to use; your problem is that you want to do more than the target system will support.
Agreed. The statements “I want to do ultra realistic EMBM water” and “I want it to run on any system” are incompatible.
You have to choose which of these two statements you want to have come true and work towards that.
It sounds as though you want to render some mountains in OpenGL, copy the image from the backbuffer to RAM, do some software raytracing on top of that, and copy it back to the backbuffer, is this correct?
I’m not sure what the best API would be, but I can guarantee that it won’t run in realtime (with the ability to change the camera orientation at more than a fraction of 1 fps) on your target platform.
I think you’ll either have to accept less than realtime rendering on your target platform, or ease off on the lake realism (AND raise the system specs to a card that supports hardware multitexturing and environment mapping, etc.)
EMBM is actually possible in software. I have an EMBM demo which runs at 15FPS in 640*480 on my 1GHz processor.
check it out: http://www.firedge.net/data/heaven7w.exe
it takes 64Kbytes.
The matter is that it was released 1 year ago. So now I have to plan to do better. But you must be right, i shouldn’t use OpenGL, but software rendering, so that it runs on all win32 machines.