I don't consider the problem (as far as rendering is concerned) that complex
of a problem.

Consider the most-likely complex case (rendering wise) of an entrance portal
in front of the player, and the exit portal behind the player. First, this
would seem like an "infinite loop" problem, while I beg to differ. One, you
probably know the rough block of the "portal", which can be seen as a decal
(for shits and giggles, we'll just say it's a "64x64 block"). Now this block
can consist of a texture that is color keyed (magenta, for example), so then
you can just see a huge ol' magenta 64x64 block on the wall. Now you setup
different render targets, in this case rendering to textures with a camera
and view matrix setup to properly catch everything that it'd "see". You'd
render this to texture, and do the same for the other portal. You'd then
pass these two textures into a shader that would allow for certain effects
depending on the color key it encounters.  As you would keep running into
areas (in the nested case) of there being more magenta pixels, you could
keep looping/scaling/mip-mapping these pixels into oblivion. Eventually, no
magenta pixels would remain.

There are also more elaborate methods that could be used (such as a
dependency graph
[http://www.gamasutra.com/features/20030829/vanderbeek_01.shtml] described
in GDMag). Worst-case you run into a circular dependency, and there are an
infinite number of solutions for solving such a case. The fact that the
circular dependency is rendered only adds a minor amount of complexity...
remember, games aren't all that special. 99.999999% of the time your
"unique" problem has already been solved. I assure you, your graphics card
will not blow up if it encountered this situation.

For those of you that don't have a subscription, I strongly implore you to
pick up GDMag. I've been a subscriber since 1998 and it is worth its weight
in gold.


_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please 
visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to