OPTIMIZING HAIR PIPELINE: RENDERING See also: Optimizing hair pipeline: Basics, Optimizing hair pipeline: Optional data, Optimizing hair pipeline: Rendering Rendering is a trivial part of a hair pipeline as it is the last state conversion from hair state to pixel state. There are many hair rendering techniques that exist and Ox implements different kinds of them to give you as much flexibility as possible to achieve most optimal results with any hair type. Although all strands can be rendered equally by any renderer, rendering longer hair with certain settings can cause much slower results than with different settings, and rendering short hair with same settings can be very fast. Once again comes the issue of balance between cpu usage and memory usage. It is important to fill up most of the available memory and precompute as many values as possible to avoid identical calculations with can happen billions of time during a render and thus waste hours of time that could've been avoided by precomputation. On the other hand it is easy to run out of virtual memory since dealing with hair requires equally handling millions of segments and organizing them into optimized patterns. Swapping can cause severe slow-downs and most of the time reading and writing to hard-drive is slower than actually computing values with cpu over and over again. Therefore balance is most critical when it comes to optimizing the rendering process. Different hair objects require different rendering patterns to be generated and thus different renderers will give better results than others. The end of the pipeline results in a dense hair model. At this point you should have read about the memory optimizations that go into hair. The less memory the hair object takes up the more memory is available for the renderer to use. There are several methods that can be used to render hair. These include specialized raytracing, rasterization, and geo-based hair. Each method has its own advantages and weaknesses. Raytracing gives the best results but can be slow and take up a lot of memory. Rasterization is fast, takes very little memory, but since it is a post-render effect it cannot interact with the rest of the scene. Converting hair to geo guarantees compatibility with any renderer, hair fully participates with the rest of medium lighting like GI algorithms, but it can be very slow and memory-consuming and requires high sampling rate per pixel which further slows down the process. See also: Optimizing hair pipeline: Basics, Optimizing hair pipeline: Optional data, Optimizing hair pipeline: Rendering |