Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
0.8.4:volumerendering [2022/06/16 13:22] – [Multiple VolumetricMeshes / Complex Scenes] admin0.8.4:volumerendering [2022/06/16 13:46] – [Lighting] admin
Line 358: Line 358:
 |Gamut|Texture used for mapping the 3D value during Raytracing| |Gamut|Texture used for mapping the 3D value during Raytracing|
 |GamutMode|Defines when and how the value-color mapping happens. Here different modes are available: GamutNone, GamutByValue, GamutByValueMultiply, GamutBySum, GamutBySumMultiply| |GamutMode|Defines when and how the value-color mapping happens. Here different modes are available: GamutNone, GamutByValue, GamutByValueMultiply, GamutBySum, GamutBySumMultiply|
-|GamutFactor|A factor applied to the absolute 3D value before mapping onto the gamut texture (default value is 1.0)|+|GamutFactor|A factor applied to the absolute 3D value before mapping onto the gamut texture (default value is 1.0). Use this value for shifting inside of the gamut texture. | 
 +|GamutIntensity|Defines how intense coloring is.| 
 +|GamutAlphaIntensity|Defines how intense alpha channel coloring is.|
  
 {{youtube>cmgTMz4PDAc?large}} {{youtube>cmgTMz4PDAc?large}}
Line 373: Line 375:
 |GamutBySum|Gamut mapping will be applied to the final casted ray value.| |GamutBySum|Gamut mapping will be applied to the final casted ray value.|
 |GamutBySumMultiply|Gamut mapping will be applied to the final casted ray value and afterwards multiplied with the previously computed color value.| |GamutBySumMultiply|Gamut mapping will be applied to the final casted ray value and afterwards multiplied with the previously computed color value.|
 +
 +===== Lighting =====
 +
 +Since v0.8.4.2314 lighting and iso surface detection is also supported.
 +
 +To activate lighting for a volumetric mesh, please use:
 +<file pascal>
 +GorillaVolumetricMesh1.UseLighting := true;
 +</file>
 +
 +After it was activated, the implemented functions try to detect a surface from the given 3D data.
 +This is called IsoSurface detection.
 +
 +Because this method always depends on the data, you can control this detection by **IsoSurfaceLimit** property.
 +
 +{{:0.8.4:vr_isosurf.jpg?nolink&600|}}
 +
 +<file pascal>
 +GorillaVolumetricMesh1.IsoSurfaceLimit := 0.125;
 +</file>
 +
 +When detection of a volume surface was successful, we are able to apply lighting with all available shading models to it.
 +
 +The volumetric mesh therefore allows to choose between: Lambert, Phong, Blinn-Phong and PBR.
 +
 +{{:0.8.4:vr_lighting.jpg?nolink&600|}}
 +
 +<file pascal>
 +GorillaVolumetricMesh1.ShadingModel := TGorillaShadingModel.smPBR;
 +</file>
 +
 +__Notice:__ For PBR (physically based rendering) it does not need any PBR texture, instead it will use the //AOBias//, //RoughnessBias// and //MetallicBias// properties.
 +
 +
 +{{youtube>zMfiPLPDcq0?large}}
 +
 +===== Filtering and MipMaps =====
 +
 +Since v0.8.4.2314 switching between nearest and linear filtering is supported.
 +You are also able to activate MipMaps, but in most test cases the result was unsatisfying.
 +
 +{{:0.8.4:vr_filtering.jpg?nolink&600|}}
 +
 +The picture above is showing difference between nearest (left) and linear (right) filtering.
 +In most cases linear filtering is the expected output, but for some customers exact display of 3D data values is necessary.
 +
 +<file pascal>
 +GorillaVolumetricMesh1.LinearFiltering := true;
 +GorillaVolumetricMesh1.MipMaps := true;
 +</file>
 +
 +
  
 ===== Multiple VolumetricMeshes / Complex Scenes ===== ===== Multiple VolumetricMeshes / Complex Scenes =====