Site Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

brazil:features [2015/10/19]
brazil:features [2020/08/14] (current)
Line 1: Line 1:
 +====== Brazil Features ======
  
 +|{{:legacy:en:SplutterFishGlassLogo.png}} {{:legacy:en:RhinoGlassLogo.png}}|//**Brazil r/s for Rhino Wiki pages**// 
 +
 +=====Brazil Rendering System feature list=====
 +
 +> **Summary:** //This page discusses some of advanced features that are available in Brazil r/s.//
 +
 +
 +
 +\\
 +\\
 +
 +=====Technical description=====
 +
 +This wiki page aims to highlight several Brazil features (This is not a complete list, indeed... far from it) and describe them in layman terms. I will not shy away from the official jargon, but I promise I won't use terminology to confuse or impress you.
 +
 +
 +I might be able to describe what Brazil actually is and does and I might even pull it off in less than a hundred pages, but what you need to know about Brazil is:
 +
 +
 +  * It's a great rendering engine.
 +  * It's not the only great rendering engine.
 +  * It's tightly integrated with Rhino.
 +  * It's not easy to master, but few things worth doing are.
 +  * There are very few things you cannot do with Brazil if you set your mind to it.
 +
 +
 +Everything else is hearsay. The only way to choose a rendering platform which will work best for you is to try it and see for yourself. Listen carefully to opinions and reviews, but make up your own mind in the end. Look at the [[http://gallery.mcneel.com/?language=en&g=84|user galleries]] to be impressed by the expertise and workmanship you'll encounter, but do not think that you too will be able to effortlessly make images like that on a rainy Sunday afternoon. Software cannot be judged on feature lists alone.
 +
 +
 +\\
 +
 +----
 +\\
 +\\
 +
 +=====An example image=====
 +
 +This image was rendered in a (early 2007) beta version of Brazil for Rhino and it shows several advanced features that you will not find in simpler platforms such as the Rhino renderer or Flamingo:
 +
 +\\
 +
 +| {{:legacy:en:BrazilWikiFeatureOverview.jpg}} |
 +
 +\\
 +
 +I have highlighted five details in this image each of which represents an advanced feature:
 +
 +
 +  - Ray tracing
 +  - Advanced lighting
 +  - Toon Rendering
 +  - Depth-of-Field
 +  - Procedural textures
 +
 +\\
 +
 +----
 + //Ray tracing// 
 +
 +| {{:legacy:en:Brazil_raytrace_Thumb.jpg}} |  Many render engines are based on the [[http://en.wikipedia.org/wiki/Ray_tracing|ray tracing]] method (as opposed to scanline or hardware renderers). The advantages of ray tracing is that it is a much more natural way to solve a rendering problem because it resembles the way in which photons behave in reality. Yet, a ray-tracer engine is not limited to realistic solutions, as will be clear later on. Brazil has one of the most advanced ray-trace engines on the market today. It is capable of simulating a wide range of effects such as reflection, refraction (transparency), dispersion (prismatic rainbow effects), sub-surface scattering (diffuse light transmitting materials such as wax or skin) and glossy reflections (blurry or brushed materials). The ray tracer is also capable of sampling different properties at different rates, meaning that you can compute a rough indirect lighting pass (thus saving precious render time) while keeping the direct lighting at high accuracy (thus having a crisp image). The ray tracer is flexible and can be adjusted if you want it to behave differently. See [[brazil:options|this]] page for the Brazil Ray Server options. |
 +
 +
 +\\
 +\\
 +
 +----
 + //Advanced lighting// 
 +
 +| {{:legacy:en:Brazil_light_Thumb.jpg}} |  Rhino supports several different light objects (point, spot, directional, linear, and rectangular). Lights can have a number of properties such as color, hotspot, and shadow casting. Brazil adds about a hundred more. The sheer number of different properties lights is quite intimidating at first, but most of these settings are only needed in specific cases. Among the light features added are decay (the natural, physically correct, darkening of light as a function of distance to the source), attenuation (physically incorrect, amplification of brightness as a function of distance to the source), focus control (rectangular, conical, cylindrical etc.), projections (instead of emitting a single color, a Brazil light can emit a picture or procedural texture) and exclusion lists (the lights can be made to ignore certain objects in the scene). Besides these additional properties, Brazil will also display all focal cones and attenuation spheres for selected lights in the viewport, so you can see the affects of your settings in real-time. |
 +
 +
 +\\
 +\\
 +
 +----
 + //Toon and NPR// 
 +
 +| {{:legacy:en:Brazil_cartoon_Thumb.jpg}} |  Apart from photorealistic rendering, Brazil is also capable of several non-photoreal (NPR) effects such as toon shaders. (Car)Toon shaders cooperate with photoreal shaders so you can mix glass, brushed metal, and toon in a single scene without losing the ability to do Indirect-Illumination, Depth-of-Field, or any other effect. The toon shader has different settings through which you can specify the behavour of fills and inks. The image on the left uses Multi-level paint fills (some discrete colors are applied to the surface based on luminosity) but you can also use Gooch type fills, which use a continuous gradient. |
 +
 +\\
 +\\
 +
 +----
 + //Depth-of-Field// 
 +
 +| {{:legacy:en:Brazil_dof_Thumb.jpg}} |  Depth-of-Field (DOF) is a popular effect, especially in architectural stills and animations. It simulates the imperfect focusing properties of physical lens-systems such as biological eyes and cameras. DOF adds a measure of realism to a rendering by blurring out-of-focus areas. Also, it can be used to //mask// areas of the scene which may not have been modeled properly, such as distant surroundings. The settings for DOF will be familiar to those of you who are familiar with photography. Focus Distance, Radius, and F-Stop values determine the strength and domain of the DOF. (The term depth-of-field refers to the space which is in focus.) The DOF effect in Brazil also supports [[http://en.wikipedia.org/wiki/Bokeh|Bokeh abberations]] which is the effect over-exposed areas in an image have when they are out of focus. Since Brazil is a high dynamic range renderer (meaning you can get colors that are brighter than white) such physically correct effects can be simulated with great accuracy. |
 +
 +\\
 +
 +| {{:legacy:en:BrazilDOFScreenShot.jpg}} |  {{:legacy:en:BrazilSceneNoDOF.jpg}} | {{:legacy:en:BrazilDOFHorizon.jpg}} |
 +| Rhino viewport screenshot. As you can see the Brazil materials can be simulated and displayed in the real-time viewport. This even works for Procedural textures. (This scene has three different procedurals: dots, wrinkles. and a gradient.) The viewport simulation is updated in real time, even when you're dragging sliders that control how the procedural textures work. | Brazil rendering with no DOF effect. Everything is completely in focus. | The same scene with DOF enabled. The focal distance is clearly set up wrong since the horizon is in focus while the objects in the fore-ground suffer from severe blurring. The DOF effect is so strong that the horizon is actually visible **though** the glasses. You will notice this same effect when you get close to a wire-fence. At some point, as you look through the fence into the distance behind it, the wires will disappear because they are blurred out of existence. |
 +
 +| {{:legacy:en:BrazilDOFNearGlass.jpg}} | {{:legacy:en:BrazilDOFMiddleGlass.jpg}} | {{:legacy:en:BrazilDOFFarGlass.jpg}} |
 +| DOF with focal distance aimed at the first glass. For the sake of clarity I have used an extremely short F-Stop, meaning the DOF effect is very strong. Usually you will be using far less imposing camera settings.| This time the middle glass is in focus. Note that the DOF effect blurs both objects in front of and behind the field. | Here the field is centered around the third object. |
 +
 +
 +\\
 +\\
 +
 +----
 + //Procedural textures// 
 +
 +| {{:legacy:en:Brazil_proctex_Thumb.jpg}} |  Brazil supports two types of textures; bitmaps and procedurals. You're all familiar with bitmap images already and I'm guessing that procedurals will not come as a shock either. Essentially, procedurals are images defined by a mathematical function instead of a grid of colored pixels. This means that procedurals do not suffer from any resolution or tiling problems. It also means that it is very to change the procedural's behavior. Brazil has several procedural algorithms build in: Checker, Dots, Gradient, Marble, Noise, Tile, and Wrinkled. But we're looking into more advanced procedural definitions to easily set up other realistic materials such as wood and stone. Procedural textures can be nested ad infinitum. So there is no upper limit to the complexity one can achieve. Also, procedurals are simulated in the viewport as bitmap textures so you can easily see and tweak the settings. |
 +
 +
 +\\
 +\\
 +
 +----
 + //High-dynamic-range colors// 
 +
 +Brazil is a [[http://en.wikipedia.org/wiki/high_dynamic_range_rendering|High-dynamic-range]] engine, meaning that its colors are not limited to the Black~White range. You can in fact have colors that are brighter than white and even darker than black, even though the latter is a physically impossible property. You might wonder why it is so important to have "brighter-than-white" colors if the computer screen cannot display them. The answer is that colors in a rendering are often diluted by partial reflection or refraction. Take a look at the following scene with GI and partial reflection:
 +
 +\\
 +
 +| {{:legacy:en:Brazil_DilutedReflection00.jpg}} |  {{:legacy:en:Brazil_DilutedReflection01.jpg}} | {{:legacy:en:Brazil_DilutedReflection02.jpg}} |
 +| This setup uses no high-dynamic-range colors. The material on the ball is partially reflective which means that the residual color after reflection is about ¼ of what it used to be. | In this scene, the white planes reflected in the ball are given a brighter-than-white color. In fact the planes are twice as bright as white, which means that the resulting color after reflection is ¼ × 200% = 50% white.  | In this final setup the planes are ten times brighter than white, meaning that the resulting color is also brighter than white but it is limited by the gamut of the computer screen. A glowing effect would visually enhance the brightness, but until we have HDR screens it will never actually be possible to display this rendering for what it is. |
 +
 +\\
 +
 +Colors can also be diluted through indirect lighting, as the following table shows. This scene is lit both directly (through a pointlight to the left which casts the predominant shadow) and indirectly:
 +
 +
 +| {{:legacy:en:BrazilFLCOL_00.jpg}} | {{:legacy:en:BrazilFLCOL_05.jpg}} | {{:legacy:en:BrazilFLCOL_10.jpg}} |
 +| If the brightness of the tube is set to zero, then it will be completely black. Only the direct light emitted from the pointlight object plays a role in this scene. | Here, the brightness of the tube has been set at half the normal brightness, meaning that the purple-to-pink gradient on the tube appears half as dark. However, there is already some indirect pink discoloration on the ground surrounding the tube. | When the brightness is set to 1.0, we see the gradient for what it is. There is a large amount of indirect pink, especially on the ground inside the tube walls, which is exposed from all directions. At this point, this scene is not yet HDR. |
 +| {{:legacy:en:BrazilFLCOL_20.jpg}} | {{:legacy:en:BrazilFLCOL_50.jpg}} | {{:legacy:en:BrazilFLCOL_Tweaked.jpg}} |
 +| This all changes when we boost the brightness of the tube to twice its normal color. As you can see the far end of the tube (which is supposed to be pink) has been boosted so far that it becomes brighter than white. It's still pink, but too bright to be represented properly on the screen. | When we boost the brightness to a factor of five, the brighter-than-white boundary moves towards the dark end of the gradient. Also, the indirect lighting is now predominant on the ground near the tube, to the point that some of it has also breached the white barrier. | Finally, in this last image, the brightness is set to one again, but the strength and saturation of the indirect lighting has been boosted. This makes for a physically incorrect scene, which uses the HDR features of the Brazil core without there being any HDR colors specified. |
 +
 +
 +\\
 +\\
 +
 +----
 + //Global illumination// 
 +
 +[[http://en.wikipedia.org/wiki/Global_illumination|Global Illumination]] (GI) is a feature you will find in most modern rendering platforms and indeed in Brazil. GI uses both direct and indirect illumination to generate a realistic image. Direct lighting is the process where light objects cast light onto objects, thus creating bright areas on surfaces that face the lightsource, darker areas on surfaces that do not and shadows when surfaces cannot //see// the lightsource directly due to some obstruction. After a surface has been lit directly, it too emits photons (after all, we are able to see it) and some of those photons are captured by yet other surfaces. Some of these photons are bounced around again and some of //those// photons are finally caught by our eyes or a camera. I used the phrase //some of// quite a lot in the previous sentence, indicating that the effect of indirect illumination is relatively small compared to direct illumination. Yet, it is the details that sell an image. And humans are fussy about correct lighting since we are used to seeing so much of it in real life around us.
 +
 +\\
 +
 +| {{:legacy:en:BrazilGI3LightViewport.jpg}} 1. |  {{:legacy:en:BrazilGI3LightWithIndirect.jpg}} 3. |
 +| {{:legacy:en:BrazilGI3LightNoIndirect.jpg}} 2. |
 +| Image 1 shows the viewport screenshot of this scene. Three lights with three distinct colors (green, purple, and yellow) have been placed around the shapes. Image 2 is a rendering of this scene with direct illumination only. There are places between the shapes where the shadows of all lights overlap and where there is thus no direct light source visible. These areas have become completely black. Image #3 has indirect illumination enabled and the difference is quite striking. The light has been allowed to bounce one more time which means that those occluded areas in image 2 are now lit indirectly by the vertical surfaces in their vicinity. The image has lost some contrast but it more believable for it. Only very rarely will you encounter absolute black around you in reality... |
 +
 +\\
 +
 +One more example of diffuse light scattering shows the leaking of color as well as luminescence in indirect illumination:
 +
 +\\
 +
 +| {{:legacy:en:BrazilSphereNoGI.jpg}} | {{:legacy:en:BrazilSphereWithGI.jpg}} | {{:legacy:en:BrazilSphereWithGICloseup.jpg}} |
 +| This image shows the effect of all combined direct illumination. Instead of a number of light objects, this scene is lit by a mono-chromatic skydome (completely white), meaning the source of all direct light is unfocused and diffuse. Our visual cortex pretty much immediately dismisses this image as fake, since the groundplane and the sphere (though touching) have completely different hue and saturation components. | When we enable indirect illumination, the realism of the rendering skyrockets (though it is still obviously fake due to the lack of imperfections). Both the groundplane and the sphere are affected by the indirect light. | A close-up of this rendering shows the dissipation of diffuse GI, since the effect of an object decreases by distance (things far away are smaller than things nearby), the areas of the groundplane which are closest to the sphere have the most contrast, it is in these regions that we can clearly see the colored bands of the sphere. As we move further away, the orange and green indirect lighting start to mingle. |