No Man's Sky Modding Wiki
Tag: Visual edit
m (changed mask map blue channel grey for base object colourisation to #848484 after an recent game update)
Tag: Visual edit
(8 intermediate revisions by 5 users not shown)
Line 1: Line 1:
βˆ’
NMS uses [https://en.wikipedia.org/wiki/DirectDraw_Surface DDS images] as texture maps. As such, it is highly recommended to use the nVidia DDS plugin for Photoshop, GIMP, or in whatever preferred image editor of choice with DDS file writing capabilities.
+
No Man's Sky uses mainly [https://en.wikipedia.org/wiki/DirectDraw_Surface DDS images] as texture maps but also accepts formats such as PNG, JPEG, and PSD as per [http://www.horde3d.org/docs/html/_formats.html Horde3D specification]. As such, it is highly recommended to use the Nvidia DDS plugin for Photoshop, GIMP, or any image editor of choice with DDS file handling capabilities.
   
βˆ’
Due to the way shaders have been written inside the game, the arrangement of textures overall differ from what is more commonly known in other game engines. The most commonly used shader in NMS is called the Ubershader and functions similarly to Unity's Standard Shader (physically-based rendering) but with a few differences as discussed below and in the [[MATERIAL Files|MATERIAL page]].
+
Due to the way shaders have been written, the arrangement of textures overall differ from what is more commonly known in other game engines. The most commonly used shader is called the Ubershader and functions similarly to Unity's Standard Shader (physically-based rendering) but with a few differences as discussed below and in the [[MATERIAL Files|MATERIAL page]].
   
 
== Usable Texture Maps ==
 
== Usable Texture Maps ==
   
 
=== Diffuse Map ===
 
=== Diffuse Map ===
βˆ’
The basic diffuse is practically the same as a basic 2D texture in most engines. The map contains RGB data containing the albedo colors for your object's texture. It is important to take note of the way channels are read by NMS's shaders.
+
The basic diffuse is practically the same as a basic 2D texture in most engines. The map contains RGB data containing the albedo colors for your object's texture. It is important to take note of the way channels are read by shaders.
 
* RGB channels - color information for your albedo map.
 
* RGB channels - color information for your albedo map.
βˆ’
* Alpha channel - this channel is used for metalness, transparency, and emissive textures. (all these material flags read from the same channel and as such, you can't have all of these flags running at once)
+
* Alpha channel - this channel is used for transparency, and emissive textures. (all these material flags read from the same channel and as such, you can't have all of these flags running at once)
   
 
=== Mask Map ===
 
=== Mask Map ===
 
The mask map contains other color information used by NMS.
 
The mask map contains other color information used by NMS.
  +
* Red channel - As of Companions, this channel is used for metalness maps. Previously used as Ambient Occlusion map pre-Atlas Rises.
βˆ’
* Red channel - ambient occlusion bakes are attached here. As of Atlas Rises, most new textures no longer use an AO map and seem to just have this channel colored pure white (basically no AO).
 
βˆ’
* Green channel - a <s>roughness</s> gloss map is used here. Despite the material settings specifying this should be a roughness map, the way they look in the textures implies it's really a gloss map, basically an inverted roughness map.
+
* Green channel - a gloss map is used here. Despite the material settings specifying this should be a roughness map, the way they look in the textures implies it's really a gloss map, basically an inverted roughness map.
βˆ’
* Blue channel - has something to do with detail textures but is largely unused for most models. (Blue channel appears to be for determining where custom colors are applied while base building - White receives primary color, grey (I used #7b7b7b) receives secondary color, and black retains original texture color.)
+
* Blue channel - has something to do with detail textures but is largely unused for most models. It is also used for determining where custom colors are applied in base-building - White receives primary color, grey (#848484) receives secondary color, and black retains original texture color.
 
* Alpha channel - (most likely unused)
 
* Alpha channel - (most likely unused)
   
 
=== Normal Map ===
 
=== Normal Map ===
βˆ’
As of the Path Finder update, NMS now uses standard XY/RG normal maps. Yay!
+
As of the NEXT update, NMS uses YX -> RG normal maps. In other words, whatever is usually in your R channel is in G and vice versa compared to standard normal maps.
βˆ’  
βˆ’
<s>The normal map in NMS's engine is apparently stored differently from the normally known blue normal maps and is apparently [https://www.youtube.com/watch?v=bLGRsskREA0 similar to normal maps in Starcraft 2], looking orange in appearance.</s>
 
βˆ’
* <s>Red channel - this channel is always apparently white</s>
 
βˆ’
* <s>Green channel - remains the same as in a standard blue normal map.</s>
 
βˆ’
* <s>Blue channel - always remains black.</s>
 
βˆ’
* <s>Alpha channel - whatever used to be in the red channel is now here instead.</s>
 
βˆ’
<s>With that in mind, it is possible to convert standard blue normal maps to the NMS version and vice versa manually by just copying colors between color channels in your preferred image editor.</s>
 
   
 
== Terrain texture formats ==
 
== Terrain texture formats ==
Line 35: Line 28:
   
 
'''Diffuse''' - Four CC, 4-bit DXT1, 1-bit alpha
 
'''Diffuse''' - Four CC, 4-bit DXT1, 1-bit alpha
βˆ’
* Same as a typical diffuse map - contains your RGB albedo info. Unlike the basic texture, it no longer contains an alpha channel for metalness maps.
 
   
 
'''HSV''' - Four CC, 4-bit DXT1, 1-bit alpha
 
'''HSV''' - Four CC, 4-bit DXT1, 1-bit alpha
  +
* HSV version of the RGB diffuse map (we aren't sure yet)
βˆ’
* Red channel - it's difficult to tell what it is - possibly a sort of specularity map?
 
* Green channel - definitely a height/bumpmap for texture blending.
 
* Blue channel - looks like an ambient occlusion bake.
 
βˆ’  
 
'''Normal''' - Four CC, 8-bit DXT5
 
'''Normal''' - Four CC, 8-bit DXT5
 
* Red channel - most likely a heightmap for texture blending
  +
* Green channel - actual normal map X
 
* Blue channel - looks like an inverted specularity map
  +
* Alpha channel - actual normal map Y

Revision as of 17:42, 4 August 2021

No Man's Sky uses mainly DDS images as texture maps but also accepts formats such as PNG, JPEG, and PSD as per Horde3D specification. As such, it is highly recommended to use the Nvidia DDS plugin for Photoshop, GIMP, or any image editor of choice with DDS file handling capabilities.

Due to the way shaders have been written, the arrangement of textures overall differ from what is more commonly known in other game engines. The most commonly used shader is called the Ubershader and functions similarly to Unity's Standard Shader (physically-based rendering) but with a few differences as discussed below and in the MATERIAL page.

Usable Texture Maps

Diffuse Map

The basic diffuse is practically the same as a basic 2D texture in most engines. The map contains RGB data containing the albedo colors for your object's texture. It is important to take note of the way channels are read by shaders.

  • RGB channels - color information for your albedo map.
  • Alpha channel - this channel is used for transparency, and emissive textures. (all these material flags read from the same channel and as such, you can't have all of these flags running at once)

Mask Map

The mask map contains other color information used by NMS.

  • Red channel - As of Companions, this channel is used for metalness maps. Previously used as Ambient Occlusion map pre-Atlas Rises.
  • Green channel - a gloss map is used here. Despite the material settings specifying this should be a roughness map, the way they look in the textures implies it's really a gloss map, basically an inverted roughness map.
  • Blue channel - has something to do with detail textures but is largely unused for most models. It is also used for determining where custom colors are applied in base-building - White receives primary color, grey (#848484) receives secondary color, and black retains original texture color.
  • Alpha channel - (most likely unused)

Normal Map

As of the NEXT update, NMS uses YX -> RG normal maps. In other words, whatever is usually in your R channel is in G and vice versa compared to standard normal maps.

Terrain texture formats

The terrain texture files are located in TEXTURES/ATLASES/TERRAIN

These textures are slightly different to the normal textures used by the game as the are volume textures, so each file contains 10 layers of textures.

There are 3 Textures, each in a specific .DDS format:

Diffuse - Four CC, 4-bit DXT1, 1-bit alpha

HSV - Four CC, 4-bit DXT1, 1-bit alpha

  • HSV version of the RGB diffuse map (we aren't sure yet)

Normal - Four CC, 8-bit DXT5

  • Red channel - most likely a heightmap for texture blending
  • Green channel - actual normal map X
  • Blue channel - looks like an inverted specularity map
  • Alpha channel - actual normal map Y