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
0.8.4:volumerendering [2022/06/16 13:38] – [Lighting] admin0.8.4:volumerendering [2022/06/16 13:47] (current) – [Filtering and MipMaps] 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 ===== ===== Filtering and MipMaps =====
Line 386: Line 423:
 <file pascal> <file pascal>
 GorillaVolumetricMesh1.LinearFiltering := true; GorillaVolumetricMesh1.LinearFiltering := true;
-GorillaVolumetricMesh1.MipMaps := true;+GorillaVolumetricMesh1.MipMaps := false;
 </file> </file>