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
Next revisionBoth sides next revision
water [2020/01/10 09:07] – [Water Material] adminwater [2020/01/24 09:36] admin
Line 2: Line 2:
  
 A water surface is not seldomly a popular game component. We do not provide directly a water surface component, but it is quite easy to setup one. A water surface is not seldomly a popular game component. We do not provide directly a water surface component, but it is quite easy to setup one.
 +
 +{{ :water-example.jpg |}}
  
 Water rendering is based on: Water rendering is based on:
Line 8: Line 10:
   * reflection computation   * reflection computation
   * and the water shader itself   * and the water shader itself
- 
 ===== Components ===== ===== Components =====
  
Line 81: Line 82:
  
 In the end do not forget to link water plane with water material source. In the end do not forget to link water plane with water material source.
 +<file pascal>
 +FWaterPlane.MaterialSource := FWaterMaterial;
 +</file>
 +
 +=== Properties ===
 +
 +Besides the textures, the water material source provides a few configuration properties to influence water look.
 +
 +^ Property ^ Description ^
 +| Diffuse | The material shader uses this color as main color for water. |
 +| Specular | The specular color interacts with the applied specular color map and configurates its intensity. |
 +| WaveSpeed | Defines how fast waves are moving. |
 +| WaveSize | Defines the amplitude of waves, which means how high or low waves are simulated. This value do not manipulate mesh vertices (only by displacement mapping). |
 +| Displacement | Defines the factor of vertex displacement based on the displacement map or normal map. |
 +| ReflCorrection | By this value you can modify the color of reflection, default value: Vector3D(1.0, 1.0, 1.0, 1.0) |
 +| RefrCorrection | By this value you can modify the color of refraction on water surface, default value: Vector3D(1.1, 1.1, 1.1, 1.0) |
  
 ===== Example ===== ===== Example =====
Line 131: Line 148:
   FWaterMaterial := TGorillaWaterMaterialSource.Create(FWaterPlane);   FWaterMaterial := TGorillaWaterMaterialSource.Create(FWaterPlane);
   FWaterMaterial.Parent := FWaterPlane;   FWaterMaterial.Parent := FWaterPlane;
-  FWaterMaterial.NormalTexture.LoadFromFile(LTexPath + 'water_normal.png');+  FWaterMaterial.NormalMap.LoadFromFile(LTexPath + 'water_normal.png');
   FWaterMaterial.DUDVTexture.LoadFromFile(LTexPath + 'water3-dudv.jpg');   FWaterMaterial.DUDVTexture.LoadFromFile(LTexPath + 'water3-dudv.jpg');
-  FWaterMaterial.DisplacementTexture.LoadFromFile(LTexPath + 'water_height.png'); +  FWaterMaterial.DisplacementMap.LoadFromFile(LTexPath + 'water_height.png'); 
-  FWaterMaterial.SpecularTexture.LoadFromFile(LTexPath + 'water_height.png');+  FWaterMaterial.SpecularMap.LoadFromFile(LTexPath + 'water_height.png');
   FWaterMaterial.FoamTexture.LoadFromFile(LTexPath + 'foam.png');   FWaterMaterial.FoamTexture.LoadFromFile(LTexPath + 'foam.png');
  
Line 144: Line 161:
 end; end;
 </file> </file>
 +
 +Next step: [[bokeh|Bokeh]]