Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
0.8.4:normalmap-material [2022/06/15 19:33] – created admin | 0.8.4:normalmap-material [2022/06/17 10:45] (current) – [Normal Maps] admin | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | NormalMap Material (TGorillaNormalMapMaterialSource) | + | ====== |
The **TGorillaNormalMapMaterialSource** is inherited from TGorillaDefaultMaterialSource, | The **TGorillaNormalMapMaterialSource** is inherited from TGorillaDefaultMaterialSource, | ||
+ | {{: | ||
+ | |||
+ | ===== Definition ===== | ||
+ | |||
In 3D computer graphics, normal mapping (or Dot3 bump mapping) is a technique used for faking the lighting of bumps and dents – an implementation of bump mapping. It is used to add details without using more polygons. A common use of this technique is to greatly enhance the appearance and details of a low polygon model by generating a normal map from a high polygon model or height map. | In 3D computer graphics, normal mapping (or Dot3 bump mapping) is a technique used for faking the lighting of bumps and dents – an implementation of bump mapping. It is used to add details without using more polygons. A common use of this technique is to greatly enhance the appearance and details of a low polygon model by generating a normal map from a high polygon model or height map. | ||
Line 8: | Line 13: | ||
[source: https:// | [source: https:// | ||
+ | |||
+ | ===== In General ===== | ||
The shading model configured by default is the Blinn-Phong algorithm. | The shading model configured by default is the Blinn-Phong algorithm. | ||
Line 13: | Line 20: | ||
Using this material source will provide a new published property called **NormalMap**. | Using this material source will provide a new published property called **NormalMap**. | ||
It also supplies the optional **DisplacementMap** property to apply a vertex manipulation texture. | It also supplies the optional **DisplacementMap** property to apply a vertex manipulation texture. | ||
+ | |||
+ | ===== Normal Maps ===== | ||
+ | |||
+ | Using normal maps is quite easy. You can find example textures everywhere and many graphic tools like Photoshop or GIMP are able to build them. | ||
+ | |||
+ | They have a blueish-greenish look, like this example: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | __WARNING: | ||
+ | In a naive way they are flipped. But the result can be very different. | ||
+ | |||
+ | __NOTICE:__ We do only support normal maps for OpenGL. In case you have a DirectX normal map in your texture set, you need to convert it yourself. | ||
+ | |||
+ | For conversion have a closer look at this article: [[https:// | ||
+ | |||
+ | ===== Example ===== | ||
+ | |||
+ | <file pascal> | ||
+ | uses | ||
+ | Gorilla.Material.NormalMap; | ||
+ | | ||
+ | var FNormalMapMaterial : TGorillaNormalMapMaterialSource; | ||
+ | |||
+ | FNormalMapMaterial := TGorillaNormalMapMaterialSource.Create(GorillaViewport1); | ||
+ | FNormalMapMaterial.Parent := GorillaViewport1; | ||
+ | FNormalMapMaterial.Texture.LoadFromFile(' | ||
+ | FNormalMapMaterial.NormalMap.LoadFromFile(' | ||
+ | |||
+ | FNormalMapMaterial.NormalIntensity := 1.0; | ||
+ | </ | ||
+ |