Ambrosia Garden Archive
    • 3D Rendering - An in-depth discussion on the different renderers out there


      For each piece of 3D software out there, this is a renderering method, and for each rendering method there is a whole set of renderers. Choices choices choices. If you are not a graphics artist, these choices don't really matter to you, just as long as you pick the one with the pretty name. If, however, you are concerned with graphics to an extent, these choices are very hard and very time consuming.
      There are two major renderers out there: Phong and Ray. This article is to discuss the advantages and disadvantages of them, perhaps to make that choice a little easier.

      First up-to-bat is Ray. This comes in a variety of shapes and flavors. For example, there's RayTracing™, RayShadow™, and RayPainting™ out there. Ray seems to be the standard rendering format out there, as it is used in StrataVision, Strata 3D, Bryce, Lightwave, and (of course) POV-Ray, along with other small 3D programs. When told to render, it renders every other pixel in increasingly fine horizontal rows, basically starting out with a blurry image and focusing it. RayTracing is an approximate renderer, meaning it takes longer to get a perfect picture from. When working with large images and very complex models, Ray seems to be the best tool for the job as it calculates light, not actual objects.

      Ray also seems to be the best renderer for heavily texture-reliant images with a lot of color:

      Posted Image

      Here is a picture I have rendered in RayTracing. As you can see it is quite vibrant, but ever-so-slightly blurred around the actual textures, as well as the background. Still, it calculates reflectivity, gloss, and glow outstandingly well, which makes it my number one choice for renderings.


      Now we move into Phong Territory. It is not as popular as Ray, but can also be seen in Infini-D, StrataVision, and other Software. When told to render a mesh, say a cube for example, phong will immediately focus on the nearest point. It will render all of the sides of the object connected to that point, one-by-one untill it has rendered the whole object. Essentially, it focuses on the object, wrapping texture and light around it seemingly as an afterthought. In fact, it takes so little time after it has calculated the object that Phong is a very quick little renderer for basic meshes (small polygon counts), while bogging down like a water buffalo in February molasses when told to tackle complex models (high polygon counts). Phong is your best for textures and shapes, but tends to detract from overall image quality:

      Posted Image

      Here is the same picture rendered in Phong Shading. Note how the blue engine glows are virtually nonexistant from phong's poor handling of glows, and also note how the cockpits have extremely crappy gloss and color, due to phong's poor handling of reflection. On the other side, note the outstanding detail of the textures, and the amazing background: Nothing's blurry! There are actually stars!


      Overall, they seem to come out equally, but both specialize, so go by this advice:
      -For complex models with average textures and overall image quality, go for Ray.
      -For good textures/backgrounds and simple models, go for Phong.

      =Slug=

      ------------------
      Time is the best teacher, yet it kills all of it's students.

    • Well, first of all, you seem to have said most of what could be said already 😉

      But I noticed one thing that might be slightly innacurate about Phong there - if you look at the cockpit on the left in the Phong Image, you'll not that there's a small indentation in the area where the cockpit bubbles would be. However, if it was truly rendering the cockpit, it would be rounded in that area. This seems to imply that what it's handling badly is actually the transparency, and not the reflection.

      Interestingly enough, I've seen a reference to Phong before, but not as a rendering method. In an older 3D-Renderer I have called Ray Dream 3D (Only good thing I have to say about it is extrusion) it used Phong as the most detailed level of preview method. It actually had texture details on it, which seems rather impressive for just a preview that turns out in a second or two on a 6500 PowerMac.

      ------------------
      "Once, just once, I'd like to be able to land somewhere and say, 'Behold, I am the Archangel Gabriel.'"
      "I fail to see the humor in that situation, Doctor."
      "Naturally. You could hardly claim to be an angel with those pointed ears, Mister Spock. But say you landed someplace with a pitchfork "

    • Nice pics, Slug, but your description of the differences between ray tracing and phong rendering are misleading; what you are describing may be what you see the your renderer draw, but this doesn't necessarily illustrate the method its using. I think you have have made some erroneous generalizations about the rendering methods based on the software you are using (sounds like Strata).

      Ray tracing gets its name from the fact that it traces imaginary rays of light backwards, starting from the viewer's eye, bouncing of objects in the scene, ending in the light source. It is generally the slowest rendering method, but the closest to real-life, because it simulates how light reaches the eye.

      Ray tracing is excellent at handling transparencies, reflections, shadows, and refraction (the bending of light through a transparent object). Multiple light sources, reflective objects, and refractive objects can slow ray tracing down considerably.

      I used ray tracing a lot in Ares because Strata's other renderers were not very good at dealing with small, detailed objects, and I wanted shadows.

      Strata's implementation of ray tracing can "miss" small objects and parts of textures. Therefore, when doing final rendering, I always crank the over-sampling way up.

      Phong rendering refers only to the method for shading polygons, if I recall correctly -- which polygons are drawn in what order is another matter. It's typically much faster than ray tracing. Phong alone does handle specular and diffuse light (shiny and matte parts of surfaces) -- anything beyond that is implementation specific.

      I believe Strata's current renderers can fake some additional effects in their non-ray tracing renderes, such as shadows and maybe transparencies. However, I've found their alternative renders to be very disappointing -- and as you point out sometimes slower than ray tracing! -- and therefore avoid them.

    • I just wanted to point out Slug missed 2 things.

      1. Ray tracing doesn't always do an "approximate render", gradually resolving finer and finer detail. In POV, unless you use radiosity, it actually draws the individual pixels one by one, which is quite fun to watch at 2 AM when your brain is fried.

      2. Another render type (or maybe subtype of raytracing) is radiosity, where the color of the stuff around something is taken into account in deciding something's color. In POV, it does a preliminary render at about 1/5 the resolution, and then uses that to help do the main render. Radiosity renders usually look a lot better than normal ones.

      ------------------
      Formerly-Rampant Human-Coded AI