User Tools

Site Tools


hpl3:engine:materials

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hpl3:engine:materials [2012/01/09 11:07]
nebej
hpl3:engine:materials [2012/10/09 08:39]
thomas [Optimizing]
Line 26: Line 26:
   * Never add a texture unless it adds to the final material. For example, do not use black specular, flat blue normal maps, and so on. It is almost always better to just not set the texture at all.   * Never add a texture unless it adds to the final material. For example, do not use black specular, flat blue normal maps, and so on. It is almost always better to just not set the texture at all.
   * For textures that only use alpha, it is a good idea to embed it in the alpha of a texture. That way a single texture can fill up two texture slots. However, take note that if a texture with alpha is used in many materials and/or can have a lower resolution than the one it is part of, it might be good to keep it separate. ​   * For textures that only use alpha, it is a good idea to embed it in the alpha of a texture. That way a single texture can fill up two texture slots. However, take note that if a texture with alpha is used in many materials and/or can have a lower resolution than the one it is part of, it might be good to keep it separate. ​
 +
 +----
 +
 +==== Alpha ====
 +
 +Some of the texture types below will have the channel as alpha. There are two ways of doing this texture:
 +
 +  - It can simply be the alpha channel for a texture. If you have a DDS texture remember that DXT1 only has alpha that is either 1 or 0, so only use this if you do not want any gradients. (This is for instance OK with transparency for the solid material that does not support gradients anyway.)
 +  - Use a single channel (grayscale) texture. The engine will always load single channel texture as if the texture only consist of an alpha channel (even though the image editor might name it an red channel or similar).
 +
 +If possible, it often is faster and saves space to have it as an alpha in a texture, so use that when possible.
 +
  
 ---- ----
Line 92: Line 104:
 **Channels:​** G and Alpha (must use special exporter for this!)\\ **Channels:​** G and Alpha (must use special exporter for this!)\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:** dds, 3dc.\\+**File format:** dds, 3dc (aka DXN, BC5).\\
 **Suffix:** “nrm”.\\ **Suffix:** “nrm”.\\
 The normal map for the material and uses the standard format rgb = xyz and is in tangent space. Note that this needs to be converted to a format of XY only though! ​ The normal map for the material and uses the standard format rgb = xyz and is in tangent space. Note that this needs to be converted to a format of XY only though! ​
Line 160: Line 172:
 === Detail Diffuse Map ===  === Detail Diffuse Map === 
 **Size:** NA, this is entirely up to how the texture is repeated\\ **Size:** NA, this is entirely up to how the texture is repeated\\
-**Channels:​** ​Alpha\\+**Channels:​** ​RGB\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:​** ​tgasingle channel (greyscale). (or dxt5 if mipmaps are needed!!)\\+**File format:​** ​ddsdxt1\\
 **Suffix:** “detail_diff”.\\ **Suffix:** “detail_diff”.\\
 A detail map is special in that it uses differnt UV coordinates from the rest of the textures (see variables). This map blends with the diffuse and specular (each according to weights, see variables section). The way it mixes, Grey (127) means that nothing is changed, darker (126 or below) makes the result darker, and brighter (128 or above) makes the result brighter).\\ A detail map is special in that it uses differnt UV coordinates from the rest of the textures (see variables). This map blends with the diffuse and specular (each according to weights, see variables section). The way it mixes, Grey (127) means that nothing is changed, darker (126 or below) makes the result darker, and brighter (128 or above) makes the result brighter).\\
Line 171: Line 183:
 **Channels:​** G and Alpha (must use special exporter for this!)\\ **Channels:​** G and Alpha (must use special exporter for this!)\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:** dds, 3dc.\\+**File format:** dds, 3dc (aka DXN, BC5).\\
 **Suffix:** “detail_nrm”.\\ **Suffix:** “detail_nrm”.\\
 Detail normal works basically like the diffuse version, but on the normal map. Detail normal works basically like the diffuse version, but on the normal map.
Line 184: Line 196:
  
 === Liquid Map ===  === Liquid Map === 
-**Size:​** ​Independent,​ any\\+**Size:​** ​100% - 25%\\
 **Channels:​** G and Alpha (must use special exporter for this!)\\ **Channels:​** G and Alpha (must use special exporter for this!)\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:** dds, 3dc, tga for high quality.\\+**File format:** dds, 3dc (aka DXN, BC5), tga for high quality.\\
 **Suffix:** “liquid”.\\ **Suffix:** “liquid”.\\
 This texture shows how liquid should fade in, move and fade out over an object. The red channel contains a mask for how liquid should fade in on the image, the brighter a pixel is the earlier the liquid will cover it. The green channel contains a mask for how the liquid should fade out. If a 3dc compressed texture produces poor results then a RGBA tga should be used with the red channel stored in the alpha channel and the green channel stored in the blue channel. This texture shows how liquid should fade in, move and fade out over an object. The red channel contains a mask for how liquid should fade in on the image, the brighter a pixel is the earlier the liquid will cover it. The green channel contains a mask for how the liquid should fade out. If a 3dc compressed texture produces poor results then a RGBA tga should be used with the red channel stored in the alpha channel and the green channel stored in the blue channel.
Line 265: Line 277:
 **Channels:​** G and Alpha (must use special exporter for this!)\\ **Channels:​** G and Alpha (must use special exporter for this!)\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:** dds, 3dc.\\+**File format:** dds, 3dc (aka DXN, BC5).\\
 **Suffix:** “nrm”.\\ **Suffix:** “nrm”.\\
 Instead of changing the way light is shaded (like with solid material), here the normal map is used to distort the background (if refraction is set to true) and/or to change the way reflection is calculated.\\ Instead of changing the way light is shaded (like with solid material), here the normal map is used to distort the background (if refraction is set to true) and/or to change the way reflection is calculated.\\
Line 294: Line 306:
 **Suffix:** “sway” (do NOT use "​height"​).\\ **Suffix:** “sway” (do NOT use "​height"​).\\
 This map is used for sway, so when sway is active and NOT for any parallax stuff. It act as a factor for the sway. Black = no sway, White = full sway and all in between for greyscale of course. So if doing a swaying plant, make it black at the base of the plant and whiter as it comes nearer the top. This map is used for sway, so when sway is active and NOT for any parallax stuff. It act as a factor for the sway. Black = no sway, White = full sway and all in between for greyscale of course. So if doing a swaying plant, make it black at the base of the plant and whiter as it comes nearer the top.
 +
 +=== Liquid Map === 
 +**Size:** 100% - 25%\\
 +**Channels:​** G and Alpha (must use special exporter for this!)\\
 +**Type:** 2D\\
 +**File format:** dds, 3dc (aka DXN, BC5), tga for high quality.\\
 +**Suffix:** “liquid”.\\
 +This texture shows how liquid should fade in, move and fade out over an object. The red channel contains a mask for how liquid should fade in on the image, the brighter a pixel is the earlier the liquid will cover it. The green channel contains a mask for how the liquid should fade out. If a 3dc compressed texture produces poor results then a RGBA tga should be used with the red channel stored in the alpha channel and the green channel stored in the blue channel.
 +If the liquid is very thin then the mip-map filter should be set to "​Point"​ when exporting the texture.
  
 ---- ----
Line 313: Line 334:
 === Variables === === Variables ===
  
-**HeightMapScale**\\ +**HeightMapScale** ​The scale of the height map.\\ 
-The scale of the height map.+**HeightMapBias** | Not used.\\
  
-**HeightMapBias**\\ +**FrenselBias** | Not used.\\ 
-Not used.+**FrenselPow** | Not used.\\
  
-**FrenselBias**\\ +**DetailUvMul** | The amount the UV maps are multiplied with. The higer the more the detail maps are repeated\\ 
-Not used. +**DetailWeight** | Weight for the diffuse detailValid values: 0 - 2.0\\ 
- +**DetailFadeStart** | When the details start fading out.\\ 
-**FrenselPow**\\ +**DetailFadeEnd** | When details have completely faded out\\
-Not used.+
  
 === Diffuse Map === === Diffuse Map ===
Line 338: Line 358:
 **Channels:​** G and Alpha (must use special exporter for this!)\\ **Channels:​** G and Alpha (must use special exporter for this!)\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:** dds, 3dc.\\+**File format:** dds, 3dc (aka DXN, BC5).\\
 **Suffix:** “nrm”.\\ **Suffix:** “nrm”.\\
 Instead of changing the way light is shaded (like with solid material), here the normal map is used to distort the background (if refraction is set to true) and/or to change the way reflection is calculated.\\ Instead of changing the way light is shaded (like with solid material), here the normal map is used to distort the background (if refraction is set to true) and/or to change the way reflection is calculated.\\
Line 358: Line 378:
 **Suffix:** “height”.\\ **Suffix:** “height”.\\
 Height map is more like a depth map actually. White = largest depth, Black = no depth and this is important to remember when creating it.  Height map is more like a depth map actually. White = largest depth, Black = no depth and this is important to remember when creating it. 
 +
 +=== Detail Diffuse ===
 +**Size:** NA, this is entirely up to how the texture is repeated\\
 +**Channels:​** RGB\\
 +**Type:** 2D\\
 +**File format:** dds, dxt1\\
 +**Suffix:** “detail_diff”.\\
 +A detail map is special in that it uses differnt UV coordinates from the rest of the textures (see variables). This map blends with the diffuse and specular (each according to weights, see variables section). The way it mixes, Grey (127) means that nothing is changed, darker (126 or below) makes the result darker, and brighter (128 or above) makes the result brighter).\\
 +There is a variable for fading this out at a distance, but in some special cases this might not look good. In that case use dxt5 and have custom mipmaps that fade to gray in an appropriate way. Only use this if really needed though!
 +
  
 ---- ----
Line 405: Line 435:
 If the water will cover a large surface and will need special sorting when rendering other transperant objects If the water will cover a large surface and will need special sorting when rendering other transperant objects
  
 +**HasVertexWaves"​**\\
 +If the vertices are animated.
 +
 +**VertexWaveSpeed**\\
 +The speed of the vertex waves.
 +
 +**VertexWaveAmplitude**\\
 +The size of the vertex waves.
 +
 +**VertexWaveFreq**\\
 +The frequency of the vertex waves.
 +
 +**FadeWhenShallowMul**\\
 +This determines when the water should start fading when in shallow water. In meters.
 +
 +**FadeWhenShallowPow**\\
 +How fast the shallow water drops off, higher means faster, lower means slower.
  
 === Blend Modes === === Blend Modes ===
Line 423: Line 470:
 **Channels:​** G and Alpha (must use special exporter for this!)\\ **Channels:​** G and Alpha (must use special exporter for this!)\\
 **Type:** 2D\\ **Type:** 2D\\
-**File format:** dds, 3dc.\\+**File format:** dds, 3dc (aka DXN, BC5).\\
 **Suffix:** “nrm”.\\ **Suffix:** “nrm”.\\
 Instead of changing the way light is shaded (like with solid material), here the normal map is used to distort the background (if refraction is set to true) and/or to change the way reflection is calculated.\\ Instead of changing the way light is shaded (like with solid material), here the normal map is used to distort the background (if refraction is set to true) and/or to change the way reflection is calculated.\\
Line 435: Line 482:
 **Suffix:** “env”.\\ **Suffix:** “env”.\\
 This will apply a cube to the mesh as if it is was reflecting it (hence called “environment map”). It will be used instead of the world reflection, thus making the water rendering ALOT faster! This will apply a cube to the mesh as if it is was reflecting it (hence called “environment map”). It will be used instead of the world reflection, thus making the water rendering ALOT faster!
- 
hpl3/engine/materials.txt · Last modified: 2012/10/09 08:39 by thomas