Make OpenGL terrain rendering less demanding on hardware
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
widelands |
Fix Released
|
Wishlist
|
Nicolai Hähnle |
Bug Description
Currently the OpenGL rendering of the terrain in Widelands works with 6 Multitextures via OpenGL 1.3 standard.
Only very potent 1.3 chipsets are able to do more than 4 textures with multitextures.
Many currect graphic chipsets have no higher limit, because they support GLSL and multitexturing is done via shaders. Using the old fixed pipeline is obsolete since OpenGL 2.0.
Desirable would be the following:
- software rendering for hardware without OpenGL support (already implemented)
- OpenGL fixed pipeline rendering for 1.3 supporting chipsets with GL_MAX_
- only fog of war for chipsets with GL_MAX_
- Dithering edges and fog of ware via GLSL/shaders for chipsets which support OpenGL >= 2.0 to make use of modern hardware
Related branches
- SirVer: Approve
-
Diff: 4139 lines (+1650/-1730)34 files modified.bzrignore (+2/-0)
src/graphic/graphic.cc (+1/-15)
src/graphic/graphic.h (+3/-4)
src/graphic/igraphic.h (+4/-2)
src/graphic/image_loader.h (+0/-1)
src/graphic/render/gamerenderer.cc (+286/-0)
src/graphic/render/gamerenderer.h (+97/-0)
src/graphic/render/gamerenderer_gl.cc (+669/-0)
src/graphic/render/gamerenderer_gl.h (+132/-0)
src/graphic/render/gamerenderer_sdl.cc (+279/-0)
src/graphic/render/gamerenderer_sdl.h (+55/-0)
src/graphic/render/gameview_opengl.cc (+0/-104)
src/graphic/render/gameview_opengl.h (+0/-56)
src/graphic/render/gameview_sdl.cc (+0/-105)
src/graphic/render/gameview_sdl.h (+0/-50)
src/graphic/render/gl_surface_texture.cc (+2/-2)
src/graphic/render/gl_surface_texture.h (+1/-1)
src/graphic/render/minimaprenderer.cc (+5/-970)
src/graphic/render/minimaprenderer.h (+10/-69)
src/graphic/render/terrain_opengl.h (+0/-327)
src/graphic/rendertarget.h (+3/-1)
src/logic/instances.h (+1/-1)
src/logic/tribe.h (+1/-1)
src/logic/world.cc (+3/-0)
src/logic/world.h (+3/-1)
src/point.h (+4/-1)
src/rect.h (+1/-1)
src/wui/mapview.cc (+17/-14)
src/wui/mapview.h (+3/-0)
src/wui/minimap.cc (+3/-3)
worlds/blackland/terrainconf (+17/-1)
worlds/desert/terrainconf (+16/-0)
worlds/greenland/terrainconf (+16/-0)
worlds/winterland/terrainconf (+16/-0)
tags: | added: opengl |
Changed in widelands: | |
status: | New → Confirmed |
I've linked nhas current opengl branch. I am not sure if he does use GLSL, but i can confirm that the terrain multitexturing is working with his code on win32.
It looks very good and promising...