Jump to content

Hedgehog Engine - Textures: Difference between revisions

From HedgeDocs
Justin113D (talk | contribs)
base page added
 
Justin113D (talk | contribs)
Updated texture suffixes
Line 57: Line 57:


{{Texture Overview
{{Texture Overview
| suffix = _dif
| suffix = <code>_dif</code>
| composition = RGBA
| composition = RGBA
| encoding = * <code>BC1_UNORM</code> when opaque,
| encoding = * <code>BC1_UNORM</code> when opaque,
Line 70: Line 70:


{{Texture Overview
{{Texture Overview
| suffix = _alp
| suffix = <code>_alp</code>, <code>_a</code>, often none at all
| composition = Grayscale
| composition = Grayscale
| encoding = <code>BC1_UNORM</code>
| encoding = <code>BC1_UNORM</code>
Line 84: Line 84:


{{Texture Overview
{{Texture Overview
| suffix = _fal
| suffix = <code>_fal</code>
| composition = Color
| composition = Color
| encoding = <code>BC1_UNORM</code>
| encoding = <code>BC1_UNORM</code>
Line 100: Line 100:


{{Texture Overview
{{Texture Overview
| suffix = _ref
| suffix = <code>_ref</code>, <code>_env</code>, <code>_cube</code>
| composition = RGBA
| composition = RGBA
| encoding = * <code>BC1_UNORM</code> when opaque,
| encoding = * <code>BC1_UNORM</code> when opaque,
Line 137: Line 137:


{{Texture Overview
{{Texture Overview
| suffix = _ems
| suffix = <code>_ems</code>, <code>_lum</code>
| composition = Color
| composition = Color
| encoding = <code>BC1_UNORM</code>
| encoding = <code>BC1_UNORM</code>
Line 149: Line 149:


{{Texture Overview
{{Texture Overview
| suffix = _spc
| suffix = <code>_spc</code>
| composition = RGBA
| composition = RGBA
| encoding = <code>BC3_UNORM</code>
| encoding = <code>BC3_UNORM</code>
Line 164: Line 164:


{{Texture Overview
{{Texture Overview
| suffix = _pow
| suffix = <code>_pow</code>
| composition = Grayscale
| composition = Grayscale
| encoding = <code>BC1_UNORM</code>
| encoding = <code>BC1_UNORM</code>
Line 181: Line 181:


{{Texture Overview
{{Texture Overview
| suffix = _nrm
| suffix = <code>_nrm</code> (rarely <code>_norm</code>, <code>_nor</code>, <code>_nml</code>)
| composition = Color
| composition = Color
| encoding = <code>BC1_UNORM</code>
| encoding = <code>BC1_UNORM</code>

Revision as of 09:00, 12 July 2025

Hedgehog Engine 1 games limit themselves to a few texture types (with exceptions), which can make configuring materials difficult, as many shaders use certain types differently than what their name suggests.

Here is a list of all texture types and how they are most commonly used:

Type Primarily used with Occasionally used with
diffuse Diffuse Emission
opacity Opacity Diffuse
reflection Environment Map /
specular Specular Diffuse, Gloss
gloss Gloss Diffuse, Specular
normal Normal map /
displacement General use texture type Falloff, Emission

File formats and encodings

Textures are always stored in DDS files, of which the vast majority use some form of block-compression encoding. Only a handful are not compressed.

Since HE1 is programmed with Direct3D 9, the number of available block compression encodings is limited to BC1, BC2 and BC3.

More info on DDS block compression can be found here.

Note
The Direct3D 11 mod for Sonic Generations (PC) by Skyth makes the game run on Direct3D 11, which can read newer DDS encodings like BC4, BC5, BC6, BC7 and more.


Kinds of textures

The majority of textures used by materials are one of the following kind of textures.

Diffuse

Texture overview
File Suffix _dif
Composition RGBA
Recommended encoding
  • BC1_UNORM when opaque,
  • BC3_UNORM when transparent


Diffuse textures are color-transparency textures that are sampled directly for the base color of a material.

Opacity

Texture overview
File Suffix _alp, _a, often none at all
Composition Grayscale
Recommended encoding

BC1_UNORM


Opacity textures determine the transparency of a material.

Usually transparency is relayed to Diffuse textures, and actual opacity textures are only used when special alpha compositing happens.

Falloff

Texture overview
File Suffix _fal
Composition Color
Recommended encoding

BC1_UNORM


Falloff textures change the color of the diffuse texture based on the viewing angle: The greater the angle between the camera and the surface of the model, the greater the influence.

Depending on the shader, the falloff color either gets mixed with the diffuse color or added to it.

Additionally, shaders with falloff colors or textures basically always come with a parameter that controls how the falloff factor gets calculated.

Environment map

Texture overview
File Suffix _ref, _env, _cube
Composition RGBA
Recommended encoding
  • BC1_UNORM when opaque,
  • BC3_UNORM when transparent


Environment textures are used to project a fake reflection of the surroundings onto a model based on the viewing angle.

Some get layered on top of e.g. a diffuse texture, and have an alpha channel for their layer-transparency.

Depending on the shader, these have 3 different layouts:

Cubemap

The most detailed, and probably best known type of reflection map. Uses 6 square areas, one for each side of a cube, to represent reflections from each axis.

Spherical environment map

The cheapest type of reflection, which always directly faces the camera.

Also known as MatCap textures.

Dual paraboloid environment map

Effectively a full skybox composed of 2 spherical environment maps that cover the front and back of an environment.

Covers the same area as a cubemap but with less detail.

Emission

Texture overview
File Suffix _ems, _lum
Composition Color
Recommended encoding

BC1_UNORM


Emission textures make parts of a model emit light.

Specular

Texture overview
File Suffix _spc
Composition RGBA
Recommended encoding

BC3_UNORM


Specular textures contain 2 different maps:

  • The blinn phong lighting specular color in the RGB channels
  • The environment map (reflection) influence in the alpha channel

Gloss

Texture overview
File Suffix _pow
Composition Grayscale
Recommended encoding

BC1_UNORM


Gloss textures determine the blinn phong lighting specular power.

Note
Almost every Hedgehog Engine 1 game calculates the gloss factor differently, which may cause the same gloss texture to look different in each game.


Normal Map

Texture overview
File Suffix _nrm (rarely _norm, _nor, _nml)
Composition Color
Recommended encoding

BC1_UNORM


Normal map textures are used for faking bumps and dents on a model to affect lighting, falloff, environment maps and similar.

See normal mapping for reference.

Note
Compared to blender, the green channel is inverted. (HEIO corrects this on import/export)
Cookies help us deliver our services. By using our services, you agree to our use of cookies.