#Radiosity
32 messages in this thread
Mike
(or anyone else interested),
I wanted to revisit the subject of a `Molecular Blurring Attribute' again,
because I think this is one thing that could dramatically improve the quality
of renderings in Imagine. Mind you, I'm not looking for `true radiosity' (if
there is such a thing on computers). Instead, I think you might be able to
nicely FAKE radiosity by simply blurring ray-traced reflections at the object's
surface.
What radiosity means to me is simply that objects pick-up diffuse or ambient
color from other things around them. Reflections get you halfway there because
they also pick up color from surrounding objects. But Imagine's Ray-traced
reflections are currently much too sharp to simulate radiosity. All objects in
nature (except black holes) reflect light, but their reflections are not sharp
because, even though they may feel smooth to the touch, they actually have tiny
molecule-sized bumps that bounce light back in many different directions,
instead of in a uniform direction like a mirror.
I think you could simulate this effect of diffusely reflected light without any
complicated ray-casting, by merely applying a blurring algorithm to Ray-traced
reflections. I sort of envision it as a slider allowing the user to adjust
anywhere between razor sharp reflections (what you have now), to EXTREMELY
blurry reflections. This might aid in the realism of metals as well.
I have had some success in simulating this false radiosity with global
reflection maps. I take the images into an Image Processor, reduce them down in
size to, say, 50 pixels square, and then blur the heck out of them. Then I add
just a smidgeon of reflectivity to the object, usually in the form of a dark
Brush map. And render it in Scanline. The shaded areas of the object positively
come alive!
But it doesn't work perfectly because the reflections still look more detailed
in areas where there is sharp curvature in the object's surface. Furthermore,
this approach does not work with Traces because object's internal reflections,
and reflections off other objects are still razor sharp, and don't mix with the
blurry global map. And, since the technique only works in Scanline, I either
have to do without shadows, or use some fancy alpha compositing to put them
back in.
The Molecular Blurring parameter is the best thing I can think of to create the
illusion of diffuse light bouncing off a surface. I think you would be amazed
at how much more realistic renderings would look if you put such a feature in.
Perhaps this is something that could be simulated with textures. I kind of
doubt it though. My experiments with algorithmic bumps were pretty
unsuccessful. They came out looking very different depending on the resolution
of the renderings, and overall, quite grainy.
Any thoughts?
-Tim
P.S. Thanks for your explanation of the Altitude seam problem. It helps to know
more about this stuff.
Tim,
I have had the same thoughts, but in contrast to you I had no solution. I
tried putting a slight and small bump texture on the reflective surface, too,
but as you said it doesn't work they way I expected. Looks grainy.
What about the roughness slider? I haven hardly used it because it usually
produced a grainy effect, too.
-David
David,
Roughness doesn't BLUR an object's color, it RANDOMIZES it. So its unsuitable
for simulating radiosity, and makes animation shimmer unpleasantly. Also, with
radiosity, you don't want to blur the object's COLOR mapping, you just want the
reflections illuminating the object to be blurred. Roughness randomizes
everything, I believe.
The global mapping technique discussed in my earlier message is the most
successful thing I've found so far to simulate radiosity. The key to getting it
to work seems to be to use the same image for both Color and Reflectivity
Brushes (again, that's REFLECTIVITY, not Reflection, there is a difference),
only making the Reflectivity Brush much DARKER. Then the Global Reflection map
will illuminate the shadows with very nice detail. Read my earlier message and
give it a try. <g>
Reflectivity Brushes do not MAKE reflections, instead they determine what
colors an object is able to reflect, more akin to Color Brushes. The best
analogy is a Christmas ornament, you wrap a green, red and blue image on a
sphere as a Reflectivity Brush (and Color Brush), and use that in combination
with a digitized image of a room as a Global Reflection map. The Reflectivity
Brush determines what colors the ornament will reflect, and the Global
Reflection map actually creates its reflections. Clear? <G>
Tim
Tim,
I know the difference between relection and reflectivity. I will try your
method. So far I just blured the global map in a paint program before using
it. Sure it only blurs the reflection from the global map, not the real
reflection from tracing.
Do you know any renderer/tracer that does what you want? I haven't heard of
any.
-David
David,
Another solution would to use small spots tuned just right to the color
and level you want, pointed and the "Key" subject. This will geive tou the
effect you are looking for while not requiring an environmental map at all.
Lee
Lee,
I'm afraid I don't quite understand what you are saying. What kind of spots?
Spot lights with different colors? Please explain.
-David
David,
Well almost…….You can place spotlights with the right colors around a
key object and match the color of the light to the color of the light that
would normally be seen reflrcting from that direction. To get the light which
is normally round the correct shape you would apply barn doors and then by
changing the door angle focus the shape and distance in such a way that the
spot light falls only on the key object.
When used on reflective things such as glass and metal the effect is very
obvious, if you want a more subtule effect just cut down the light value….to
as dim as you like.
Lee
Lee,
>> use small spots tuned just right to the color and level you want, pointed at
the "Key" subject. This will give you the [radiosity] effect you are looking
for while not requiring an environmental map at all.<<
I've use this technique too in the past, but I'm not satisfied with it anymore.
The blurred global maps work better because they interact with with the
object's Reflectivity brushes, and tend to *heighten* detail in the shadows
rather than *washing it out* the way a fill light does, especially when there's
a lot of specularity. The global mapping technique does not create a specular
highlight in the shadowed areas, the way a fill light does. That highlight is a
dead give away that you're faking the ambient reflections with light emanting
from a single point source. The global map also adds in a wide range of hues
that give a greater sense of `realism' or `being in an environment'. However
the fill light technique you describe admittedly works a little better in 3.xx
now that Imagine's lights have a CONTROLLED FALLOFF.
Tim
David,
>>Do you know any renderer/tracer that does what you want?<<
….that blurs TRACED reflections(?),… not that I know of, off hand. But
then, I'm not really examing other programs that closely, so I may have
overlooked it somewhere. There are, however, other programs that blur cubic or
spherical reflection maps in scanline render modes, which is essentially what
I'm doing with global mapping and compositing techniques in Imagine.
If Impulse can jimmy the blurring algorithm into ray-tracing though, I think it
could be a more robust tool, in part because it would work directly with
ray-traced shadows. Nevertheless, for right now, I am fairly confident the
shadows can be added back into the Scanline renders with a few compositing
tricks.
>>I know the difference between relection and reflectivity.<<
I suspected you did. I added the explanation for the benefit of other readers
because I know many people get confused by this, myself included. Sorry, I
should have made that clear in my message.
!!!!!!!
-@-@-
( > )
"""
\__/
Tim (yes, I wear glasses and a mustache, the likeness in incredible!)
From that point of view scanline renderers have an advantage. They can just
blur the reflection map that they create to fake relfections.
Shadow mapping is one of the things I'm really missing in Imagine. Shadows
give a scene a much better 3D effect, but at the moment I have to use trace to
get shadows which is too slow for tight deadlines or large anims.
And the other thing I miss is alpha chanel. Mike, do you hear me? <g>
-David
>>From that point of view scanline renderers have an advantage. They can just
blur the reflection map that they create to fake relfections<<
Yes, mainly because some can incorporate other objects into the reflections.
But I think this could also be achieved in Imagine with a few camera tricks. By
faking the radiosity through ray-tracing, my real hope is to circumvent most of
the unpleasant manipulation that's necessary with shadow and cubic reflection
mapping. It would be a very unique feature if Impulse could implement it.
Tim
Another problem with simulating radiosity in Scanline renderers: If you want
ALL the objects in your scene to have radiosity, each of them is going to need
its own blurred cubic environment map, to be convincing. To generate these maps
the renderer would have to generate a separate rendering of the WHOLE scene for
EACH object. Consider how much time and memory this would take.
I think it would be far less painless if the fake radiosity could be handled
automatically by the ray-tracer.
Tim
>>own blurred cubic environment map
>>fake radiosity could be handled automatically by the ray-tracer PMJI,
PMJI, but I think that the new (and expensive; but hey, this is for 3ds; what
isn't expensive?) tracer Rayman supports blurred reflection, if that is what
your refering to, so it should be doable. Apologies if I've (once again) missed
the point entirely ;^).
John Stetzer
JWS
>>Rayman supports blurred reflection, if that is what your refering to, so it
should be doable. Apologies if I've (once again) missed the point entirely
;^).<<
John,
On the contrary, you hit the nail on the head. If Rayman can do it, surely the
rocket scientists at Impulse can figure it out eventually. <slyly> Now if we
only knew HOW Rayman does it… what technique they use… and how fast it is.
-Tim
P.S. John, I wish you'd put your tuppence in over on the `Shadow' thread,… I
think the rest of these Imagine guys are starting to wimp out on that subject.
>>and how fast it is.
They claim it's fast (what manufacturer doesn't :^), but I have no real basis
for comparison (much to expensive for my taste). One plus it does have is that
it can split up a rendering of a picture over a network (like Renderman, I
guess). They (the people that make it) are out of Germany, so maybe we can get
David to ask them, eh ;^).
>>Shadow thread (assuming you mean shadow maps)
They're brutal, ugly, have to be tweaked to look right a great deal of the
time…and are sometimes the only way to get something in on time. As an
example; one of last year's projects involved 3 250,000 poly. meshes used in an
animation (the total animation count ended up being 15000+frames). W/a single
traced shadow, it took more than a half hour to render a frame on a P5-60; w/a
single shadow mapped spot, it never took more than 10 minutes. The end result
was ugly (I had to keep things low so it would get done), but added definition
that wouldn't have been there w/out shadows and met the customer's needs. I
think there should at least be the option for them; it could mean the
difference 'twixt getting things done and not (assuming you have the memory to
spare).
John Stetzer
JWS
I agree, the raytrace way would definately be the better one for this problem.
I think with the faster CPUs today raytracing will become more and more
acceptable and will be more used in general.
Tim,
How can you apply Reflectivity brush in Imagine?
Andrey
>>How can you apply Reflectivity brush in Imagine?<<
It's in the Attributes/Brush requestor, like the rest of the Brush mapping
options. It works very much like Color mapping, but you won't see the
Reflectivity Image, unless there's something in the scene for the object to
reflect.
Tim
Tim
I have discussed this very matter with Zack, the head programmer, we
have beat each other over the head with the pros and cons., I think that
reflections should be blurrable, and focasable, (both words are mine, so dont
use them anywhere else, I am sure they are misspelled)
We are going to try and horn this feature into Imagine 4.0 the last
release of the COnstant Upgrade program.
MIke
Mike: Gee, I really appreciate the way you responded to your customers
request!
(this is sincere <— I have to say that because I kid around too
much <g>)
Some IM users were a little disappointed to find out that IM4.0 won't be Win95
compatible but, that a later version of Imagine will be. Although I understand
their concern, I feel *strongly* that the Impulse way of answering questions,
providing feedback on suggestions, and giving rough descriptions of forthcoming
features, is very beneficial!
One large software company has a policy of providing NO information on any
future product releases and they still make mistakes! That policy is
frustrating and pathetic. I'm not planning on being a future customer of that
software company anymore<g>.
I appreciate Impulse's unofficial product announcements and realize they aren't
promises. Your 'open forum' makes me feel more involved in your product.
Oh, and I was happy to see the Imagine review in the February 'Digital Video
magazine.'
I happily noted that only one PC 3D animation package scored higher (by just
one point) in the Features and Performance categories. And, that other program
is $$expensive$$
So, to put my money where my mouth is, next week I'm gonna subscribe to your
constant upgrade program. <big deal, g> One more thing, Imagine couldn't have
a better representative than GreG!!! I probably would have given up on
animation by now if he wasn't around!
keep plugging away
Michael B. (slow, but kinda unsure)
Mike
I appreciate you for being a customer and supporting our efforts, not
everyone like our "laid back" or less than "professional" approach, it sends a
message to some that we dont care, when nothing could be further from the
truth.
As for being a member of the Constant Upgarde, that is a very big deal,
without your support and the support of all the Imagine users we cant go on.
To some I am sure that would be good news, hopefully to others like your self
that is not what will happen.
If I can be of any help, in the future,.drop me a note or give me a
call, I answer my phone everyday and look forward to talking with users of our
products.
Mike
Mike,
I have a simple request (at least it seems simple to me<G>) and don't want to
start a whole new thread to do it. Would it be possible to set the AA setting
in the project editor? I would think leaving the old aa or new aa and level
settings in the preferences editor would be ok. Just to be able to turn it on
or off in the project editor and have it override the other settings would be
nice. There has been more than one time when I render a final project and
realize that I have forgotten to turn on the aa.
Thanks for your time,
Sam (A happy customer) :')
Sam
I will ask the programming gods to bend to your will, however I make no
promises, they is real busy up there in programming heaven.
MIke
Thanks, Mike.
Just thought I'd run the Idea by you.
Sam
Sam,
I had exactly the same problem and came up with the same idea. Maike said he
will consider it in the furute (what ever this means <g>).
-David
>> I appreciate Impulse's unofficial product announcements and realize they
aren't promises. Your 'open forum' makes me feel more involved in your product.
<<
I'm glad I'm not the only one here who realizes that when there is talk of
work on a new feature it is not a promise that it will be in the next version.
The only thing I really want to see in the new (full) version (other that new
features, of course) is a better arranged manual. I, like you, probably would
not still be using the program without the help of GreG and the many other
users here and in the other forums.
Sam
>>We are going to try and horn [blurrable reflections] into Imagine 4.0<<
Excellent, good luck! The only caveat I would add is to make the blurring
range EXTREMELY broad and user adjustable for each object. So I guess this
would go into Attributes.
In the meantime, I'm going to try a little alpha compositing, to see if I can
add shadows back into the Scanline renders. Chow.
Tim
Tim,
reading the discussion, I feel that if any other software offers built-in
blurring of cubic environment mapping, it will suffer from the same
problem you discuss, i.e. curved surfaces will show a wider view of the
environment map, where the blur will look proportionately less pronounced.
My personal take on things would be to cast multiple rays from the
surface, similar to the supersampling done when naively anti-aliasing a
ray-traced image. Instead of projecting one reflected ray off the surface,
following the normal at that point, simply project 2×2, 3×3… rays in a
"square cone" with the cone's main axis being the normal. (how many
reflection rays to compute, and the cone angle, would make perfect user
parameters) You'd then average the reflected color from all the rays.
Hmmm. I think this would still look sharper around rounded surfaces.
By the way, Mike, my vote would be for you guys to work on soft shadows
before even attempting to solve this problem. Currently, Tim and others
have found a workaround, while the workaround for soft shadows (replace
lights with n x n x n arrays of lights) is really not reasonable. I agree
with others that the lack of shadows is one major difference between the
look of our Imagine work and that produced by users of other software.
(Not a gripe! Not a gripe! Just a user suggestion regarding priorities)
Blaq!
You mean shadow mapping or raytraced soft shadows? While raytraced soft
shadows look cool (no doubt) they take very long. I vote for shadow mapping in
scanline. This is really missing.
-David
Charles (or do you prefer Blaq?),
A few questions about your suggestion on how to de-focus reflections.
Would your technique slow rendering down, the more blurry the reflections are
set? If so then I'd be in a favor of something simpler, if there is anything
simpler. Would it require more rays to be traced, or would it simple resample
the existing rays?
Would it blur other properties of the object, such as Color or Reflectivity
(not Reflection) Brushes? If so this would ruin the effect we're trying to
achieve? The idea is to illuminate the detail in shaded areas. This already
works quite well when using a combination of a Reflectivity brush and global
maps. The Reflectivity Brush nicely controls the tint of the light bouncing
back, heightening the detail in shaded areas
There may be no way to *totally* eliminate the sharper appearance of
reflections on a tightly curved surface. I may have over-emphasized this
problem. The global mapping technique actually works pretty well except for the
other problems I mentioned: sharp reflections from other objects, or no true
shadows in Scanline without some work-arounds.
-@-@-
>
Tim
Tim,
yes, my technique would take longer as the user increases the blurriness.
Since one parameter would determine whether Imagine used a 2×2, 3×3, etc.
group of reflection "para-normals" <g>, rendering time would increase as
the number of surface "para-normals" increased.
Application of my technique wouldn't to affect brushes at all, just the
value that Imagine uses from the environment map to affect the reflected
component of an object point's color.
It might be interesting to debate whether it would take longer to
calculate several surface para-normals per point, or to simply pre-blur
the environment map.
(By the way, Mike: this blurred reflection is what I thought Shininess was
all about! Boy, was I wrong — and boy, am I glad to have read Tim's
trick)
Blaq!
Charles,
>>my technique would take longer as the user increases the blurriness.<<
This doesn't sound so good. Surely there's a technique to blur *traced*
reflections that takes less time to render when it's very blurry, and more time
when it's sharp. Eh?
>>It might be interesting to debate whether it would take longer to calculate
several surface para-normals per point, or to simply pre-blur the environment
map.<<
By posing this question, I assume you are referring to my remark to David…
that using a Scanline renderer to generate environment maps for every object in
a scene (to simulate radiosity) could potentially chew up more memory and time
than simply faking radiosity in *Trace* mode. For this, and other reason I've
already laid out, I'd prefer to have reflections blurred in Trace mode, where
both the environment *and other objects* can be handled at once,
automatically… and without any fancy image processing.
Unless Impulse has already made significant headway (that we don't know about)
in developing Imagine's image processing capabilities, I think it might be
easier and faster for them to program the blurring into Trace mode.
-Tim