Site Tools


Differences

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

Link to this comparison view

Both sides previous revision Previous revision
brazil:features [2015/10/19]
sandy [Technical description]
brazil:features [2015/10/19] (current)
sandy
Line 17: Line 17:
  
  
-I might be able to describe what Brazil actually is and does and I might jujujuju ​even pull it off in less than a hundred pages, but what you need to know about Brazil is:+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:
  
  
Line 23: Line 23:
   * It's not the only great rendering engine.   * It's not the only great rendering engine.
   * It's tightly integrated with Rhino.   * It's tightly integrated with Rhino.
-  * It's not easy to master, but very few things worth doing are.+  * 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.   * 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 [[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.+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.
  
  
Line 60: Line 60:
  //Ray tracing// ​  //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. ​However, 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 very 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 very flexible and can be adjusted if you want it to behave differently. See [[brazil:​options|this]] page for the Brazil Ray Server options. |+| {{:​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. |
  
  
Line 69: Line 69:
  //​Advanced lighting// ​  //​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 very 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). ​In addition to 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. |+| {{:​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. |
  
  
Line 78: Line 78:
  //​Toon and NPR//   //​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 (a number of discrete colors are applied to the surface based on luminosity) but you can also use Gooch type fills, which use a continuous gradient. |+| {{:​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-Fieldor 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. |
  
 \\ \\
Line 86: Line 86:
  //​Depth-of-Field// ​  //​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 photographyFocus 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:​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 photographyFocus 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}} | | {{:​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 ​in the process of 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. |+| 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}} | | {{:​legacy:​en:​BrazilDOFNearGlass.jpg}} | {{:​legacy:​en:​BrazilDOFMiddleGlass.jpg}} | {{:​legacy:​en:​BrazilDOFFarGlass.jpg}} |
Line 103: Line 103:
  //​Procedural textures// ​  //​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 ​which are defined by a mathematical function ​rather than 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 easy 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 ​which will enable users to easily set up other realistic materials such as wood and stone as well. 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. |+| {{:​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. |
  
  
Line 112: Line 112:
  //​High-dynamic-range colors// ​  //​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:+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}} | | {{:​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 ​which are reflected in the ball have been 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. |+| 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 whitemeaning 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. |
  
 \\ \\
Line 125: Line 125:
  
 | {{:​legacy:​en:​BrazilFLCOL_00.jpg}} | {{:​legacy:​en:​BrazilFLCOL_05.jpg}} | {{:​legacy:​en:​BrazilFLCOL_10.jpg}} | | {{:​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, and 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, and there is a substantial ​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. |+| 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}} | | {{:​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 ​is located further ​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. |+| 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. |
  
  
Line 136: Line 136:
  //​Global illumination// ​  //​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 that of direct illumination. Yet, it is the details that sell an image. And humans are very fussy about correct lighting since we are used to seeing so much of it in real life around us.+[[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.
  
 \\ \\
brazil/features.txt · Last modified: 2015/10/19 by sandy