milo@ndmath.UUCP (Greg Corson) (08/24/89)
Ok, I've read up on ray-tracing long ago and understand how it works...but I've yet to see a quick description (or a long one for that mater) of how radiosity based rendering works. Would anyone care to offer a quick description of the radiosity process? ie: what is it based on, and roughly how does it work. I know you can explain Ray-tracing (briefly) in as little as one paragraph, is radiosity as simple? If you've got any good (easy to get) references on radiosity, I would like to hear about them. I'm particularly interested in the property of radiosity that HP has talked about in their workstations. If I understand them right, once you have calculated the image you can "look" at it from any position without having to re-calculate the image. Is this true for all radiosity based rendering package or has HP done something special with their custom hardware? Thanks! Greg Corson 19141 Summers Drive South Bend, IN 46637 (219) 277-5306 {pur-ee,rutgers,uunet}!iuvax!ndmath!milo
shirley@m.cs.uiuc.edu (08/25/89)
Here is a brief and non-rigorous description of the radiosity method. First assume the entire environment is diffuse. This means the light energy leaving a surface will be in a cosine distribution. This implies the radiance of a surface will be a constant, because the apparent size of the surface decreases with the cosine. The radiance of a surface is the radiometric equivalent of brightness or luminance. In loose mathematics: radiance = k * radiosity / area_of_patch Here k is a constant we will forget about when we do a scaling to the range of the monitor, and radiosity is the total energy leaving the patch. If we know the radiosity, we can get the radiance, and thus the name. To get a picture, the steps are: 1. Divide the surfaces into patches. 2. Establish the relation between patches. 3. Solve patch radiosities by wavelength of RGB. 4. Scale radiosities by patch areas to get radiances. 5. Export color (radiance) to each vertex, so the surface can be smoothly shaded. 6. Display patches using constant shading (may be repeated for any viewpoint). Step 2 is easy if you don't mind brute force. The radiosity r_i of the ith patch depends on all others: r_i = Emitted_radiosity_i + Reflectance_i * (k[1->i]*r_1 + ... + k[N->i]*r_N) Here k[j->i] is the fraction of energy leaving surface j that directly hits surface i. These constants are called 'form factors' in the graphics literature. A simple brute force method of finding all form factors k[j->i] for a given j is to fire n rays from patch j in a cosine distribution and see what patches are hit. If n_i rays hit patch i then k[j->i] is simply n_i/n. This method was used by Thomas Malley in his '88 Master's Thesis at the U of Utah. Malley also used mirrors, letting the rays bounce off the mirrors. Once all the form factors are found, the radiosities can be solved using standard methods. The Cornell progressive refinement papers shows how O(n) storage can be used if one is willing to reevaluate the form factors, using a method similar to direct physical simulation. The Cornell people have in the past used a 'hemi-cube' method to evaluate the form-factors, but if you're just goofing around, I suggest the ray casting method because it's easy to implement. They're starting to use a ray tracing method anyway, as can be seen in the SIGGRAPH89 proceedings. Pete Shirley shirley@cs.uiuc.edu P. S. Here is an incomplete bibliography. Also check out Roy Hall's new book and the three radiosity papers in the 89 SIGGRAPH. Note that when the Cornell people talk about 'intensity', this term is the 'spectral radiance' of ansi86. This is the only thing that consistantly confused me in their generally excellent papers. @misc{kn:ansi86, Title = {Nomenclature and Definitions for Illumination Engineering}, Year = 1986, howpublished = {American National Standard Institute Report}, Note = {ANSI/IES RP-16-1986} } Pages = {1-11} } @Article{kn:cohe85, Author = "Michael F. Cohen and Donald P. Greenberg", Title = {The hemi-cube: a radiosity solution for complex environments}, Journal = {Computer Graphics}, Year = 1985, Pages = {31-40}, Volume = 19, Number = 3, Month = {July}, Note = {ACM Siggraph '85 Conference Proceedings} } @Article{kn:cohe88, Author = "Michael F. Cohen and Shenchang Eric Chen and John R. Wallace and Donald P. Greenberg", Title = {A Progressive Refinement Approach to Fast Radiosity Image Generation}, Journal = {Computer Graphics}, Year = 1988, Pages = {75-84}, Volume = 22, Number = 4, Month = {August}, Note = {ACM Siggraph '88 Conference Proceedings} } @Article{kn:gora84, Author = "Cindy M. Goral and Kenneth E. Torrance and Donald P. Greenberg", Title = {Modeling the Interaction of Light Between Diffuse Surfaces}, Journal = {Computer Graphics}, Year = 1984, Pages = {213-222}, Volume = 18, Number = 4, Month = {July}, Note = {ACM Siggraph '84 Conference Proceedings} } @Article{kn:imme86, Author = "David S. Immel and Michael F. Cohen and Donald P. Greenberg", Title = {A Radiosity Method For Non-Diffuse environments}, Journal = {Computer Graphics}, Year = 1986, Pages = {133-142}, Volume = 20, Number = 4, Month = {August}, Note = {ACM Siggraph '86 Conference Proceedings} } @Article{kn:nisi85, Author = "Tomoyuki Nishita and Eihachiro Nakamae", Title = {Continuous tone representation of three-dimensional objects taking account of shadows and interreflection}, Journal = {Computer Graphics}, Year = 1985, Pages = {23-30}, Volume = 19, Number = 3, Month = {July}, Note = {ACM Siggraph '85 Conference Proceedings} } @Article{kn:rush87, Author = "Holly E. Rushmeyer and Kenneth E. Torrance", Title = {The Zonal Method for Calculating Light Intensities in the Presence of a Participating Medium}, Journal = {Computer Graphics}, Year = 1987, Pages = {293-302}, Volume = 21, Number = 4, Month = {July}, Note = {ACM Siggraph '87 Conference Proceedings} } @Article{kn:shao88, Author = "Min-Zhi Shao and Qun-Sheng Peng and You-Dong Liang", Title = {A New Radiosity Approach by Procedural Refinements for Realistic Image Synthesis}, Journal = {Computer Graphics}, Year = 1988, Pages = {93-102}, Volume = 22, Number = 4, Month = {August}, Note = {ACM Siggraph '88 Conference Proceedings} } @Article{kn:wall87, Author = "John R. Wallace and Michael F. Cohen and Donald P. Greenberg", Title = {A Two-Pass Solution to the Rendering Equation: a Synthesis of Ray Tracing and Radiosity Methods}, Journal = {Computer Graphics}, Year = 1987, Pages = {311-320}, Volume = 21, Number = 4, Month = {July}, Note = {ACM Siggraph '87 Conference Proceedings} }
staatsvr@asdcds.cds.wpafb.af.mil (Vern Staats; ASD/SCED;) (08/25/89)
In article <1540@ndmath.UUCP> milo@ndmath.UUCP (Greg Corson) writes: >Would anyone care to offer a quick description of the radiosity process? I don't know much about radiosity either, but I did attend a good talk given by Harry Baeverstad from Hewlett-Packard at the Ohio State University. The following are mostly direct qoutes from the viewcharts: The radiosity method correctly models the interaction of light between reflecting surfaces if the surfaces are perfectly diffuse. The light leaving a surface (its radiosity) consists of self-emitted light and reflected or transmitted light. The amount of light arriving at a surface requires a complete specification of the geometric relationships among all reflecting and transmitting surfaces, as well as the light leaving every surface. Form factors are computed to determine the fraction of light leaving one surface which lands on another surface. The reflected light is equal to the light leaving every other surface multiplied by both the fraction of that light reaching its surface (form factor) and the reflectivity of the receiving surface. The sum of the reflected light plus the light emitted from a surface is termed its radiosity. Strengths: 1) Based on fundamental energy equilibrium methods derived from thermal engineering. 2) The most realistic images for diffuse environments - soft shadows and reflections. 3) View independent; new viewing angles may be displayed interactively. Weaknesses: 1) Computationally expensive for initial solution. 2) Not recommended for highly specular images (use ray-tracing). . . . . and now you know everthing I know about radiosity. Hope it helps. ---- INET: staatsvr@asd.wpafb.af.mil Vern Staats (513) 255-2714 /// Save UUCP: nap1!asd!staatsvr ASD/SCED \\\/// The Opinions: my!own! WPAFB OH 45433 \XX/ Guru
prem@geomag.fsu.edu (Prem Subrahmanyam) (08/26/89)
I am not a radiosity expert, but here is my 2 cent's worth from reading former SIGGRAPH radiosity papers and similar papers in other graphic magazines. Each object is composed of numerous polygonal patches. The algorithm sums up the contributions of light from all the other patches, some reflect diffusely, some are light sources, etc. Now, the paper I've read most thoroughly mentioned some kind of iterating, where it goes through several (hundred) times and recalculates the light contributions. It can easily be seen why if we happened to sum up all the contributions to a particular patch before a patch near a light source had been calculated properly, thus forcing us to recalculate once we had a better value for a patch near a light source. Radiosity inherently has a large storage need, as the color values of all the polygonal patches in the scene need to be stored. Once the picture has been calculated properly, displaying it is a "simple" matter of hidden line removal display of a number of colored polygons, thus we have "view independency"...all we have to do is redisplay all the polygons from a different viewpoint. This is in no wise a technical report on radiosity, but an attempt to explain simply the underlying algorithm. Other factors need to be included, like determining whether or not a particular patch contributes to the patch we are considering due to the fact that another patch might be in the way (shadowing), etc. In any case, I've tried my best to "explain in about one paragraph" what radiosity does. Ray-tracing is more my cup-o'-tea. ---Prem Subrahmanyam
pepke@loligo (Eric Pepke) (08/26/89)
In article <273@nap1.cds.wpafb.af.mil> staatsvr@asdcds.UUCP (Vern Staats) writes: >2) Not recommended for highly specular images (use ray-tracing). There have been a number of attempts to combine the two approaches that have been quite spectacular. Check out _A Two-Pass Solution to the Rendering Equation_ by Wallace, Cohen, and Greenberg in Siggraph '87. The term "rendering equation" is after Kajiya's paper in Siggraph '86. Eric Pepke INTERNET: pepke@gw.scri.fsu.edu Supercomputer Computations Research Institute MFENET: pepke@fsu Florida State University SPAN: scri::pepke Tallahassee, FL 32306-4052 BITNET: pepke@fsu Disclaimer: My employers seldom even LISTEN to my opinions. Meta-disclaimer: Any society that needs disclaimers has too many lawyers.
mitchell@cbmvax.UUCP (Fred Mitchell - QA) (08/29/89)
In article <1540@ndmath.UUCP> milo@ndmath.UUCP (Greg Corson) writes: >Ok, I've read up on ray-tracing long ago and understand how it works...but I've >yet to see a quick description (or a long one for that mater) of how >radiosity based rendering works. >... >Thanks! > >Greg Corson There is a whole article on Radiosity in a 'recent' issue (1987-89?) of IEEE Computer Graphics. Basically, (from what I remember of it) Radiosity works by treating all the surfaces as having thermal radiation. I would imagine that that would be more compute-intensive than ray-tracing, but would produce more realistic effects. For instance, shadows would be soft, for instance. Something I would like to play around with someday. -- |*******************************************| -Compliments of /// |* All thoughts and comments are soley *| Fred Mitchell \\\/// |* thoses of The Author and has nothing to *| \XX/ |* do with Commodore-Amiga. *| Software QA - Commodore-Amiga |*******************************************|