|
Submitted by , posted on 28 October 2001
|
|
Image Description, by
I've gone and completely rewritten the Solace rendering pipeline to support
shaders, rather than having a few hardcoded operations.
(Sorry about the lack of texture filtering, but these particular
screenshots were taken on a software OpenGL implementation and I didn't
want it to be even slower than usual.)
Every object is split up into three parts - "base" (for opaque things which
don't rely on lighting such as reflectionmapping), "light" (for opaque
things which do rely on lighting), and "blend" (for transparent effects,
which are deferred until later). Each shader pass contains a mesh, a
texture, a lighting material, an operation (solid, wireframe, or outline,
where wireframe and outline can also have a thickness specified), an alpha
test function, and a blend function.
As has always been the case, the engine can scale back the rendering
quality to try to maintain a constant framerate. At the displayed quality
on a Duron 850 with G400 I get about 30fps, though at 60fps it's passable
and with quality turned down all the way it actually peaks at 500fps
(though the shapes look pretty basic at that point). For slower machines,
options can be further disabled (for example, limiting the number of shader
passes).
As usual, I have a whole bunch left to implement on this. For example,
mesh functors (my generic mechanism for modifying mesh data for things like
environment mapping, morphing, and other fun stuff to follow), coming up
with and implementing a mechanism for representing physics engine stuff,
putting shadows back in, and working more on the network transport so I can
actually make the game I've been planning all along for this engine. :)
(It's an MMORPG which I've been planning etc. since long before the term
'MMORPG' existed.)
In any case, if you're running Linux on an x86 processor and have a working
OpenGL installed, you can actually check it out for yourself at
http://www.cs.nmsu.edu/~joshagam/Solace/Solace-test-20011018.tar.gz (about
1.7 MB).
Enjoy. :)
|
|