We're sorry, but this discussion has just been closed to further replies.
Tags:

Yes, excellent project Fab. I know alot of people are curious if this can really work as a dynamic solution to shadows. The uneven terrain aspect is the on that I am curious about.
Also I am curious is this something that Bitmanagement has set up just for avatars or is this something a builder can attach to all outdoor objects in a world as well? If the ability to have dynamic shadows that react to light source is possible then truly vrml is going to get a jump start.
I'm stuck on one problem at the moment, all the examples seem to use localized lights, and hence apply perspective to the shadow texture mapping. It is done by a block of code involved Matrix operations, hence rather hard to understand, much less alter to my liking.
Some horrible artefacts from the perspective texturing, hence why it needs to be removed.
I had once considered trying to create a shadow PROTO that used the blaxxun collision detection extensions to generate a grey, semitransparent IFS that would be rendered just 1 or two millimeters above and below the surface on which the shadow should appear. My idea was to use the compute_rayhit extension (I forget its exact name) of blaxxun to cast rays from a single light source through all verticies of the avatar to construct a sort of prism from the avatar that represented its silouette (many rays would have to be somehow eliminated from all the ray casts to only leave the outside edges of the prism (huge amount of calculations already). The prism would then be intersected with the world geometry using the compute_collision extension (or some name like that) to retrieve the set of polygons of the world geometry that were inside the prism (even more intensive calculations). These returned polygons would then be used as the basis for two indexed face sets that hovered immediately above the world geometry and immediately below. In theory, if the processing speed was fast enough, one could update these shadow indexed-face-sets in real time and it would look like a shadow that followed the avatar.
Needless to say, I realized quite quickly that this would be way too computationally expensive, and since I could not come up with enough simplifications to the process I abandoned the idea.
I now think that one might be able to store within the avatar definition a set of precalculated profiles of the avatar (as would be seen from a variety of directions). The profiles could be projected down from the avatar onto an IFS (or other shape) in the world geometry using linear algebra transformations, rather than rayhit computations, thus avoiding most of the compute_rayhit and compute_collision calculations.
Such a system would be significantly faster than the first method that I mentioned, but the shadows would not always look exactly right (e.g. they would not follow a gesture made by a stationary avatar).
Still, the fact that any kind of shadow would appear in the right place on the ground below an avatar would do wonders for being able to judge the position and size of an avatar.
I am still unsure about how the shadow should actually be introduced into the scene (i.e. as the grey semitransparent IFS that slithered over the ground and objects below the avatar, or as a modification to the textures of the world geometry involved).
I would be interested in hearing the details of how it works in the bitmanagement extensions.
© 2009 Created by Bruce Lehmann on Ning. Create a Ning Network!