<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Mapdev%3Asplatdetailnormals</id>
	<title>Mapdev:splatdetailnormals - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.fightorder.net/wiki/index.php?action=history&amp;feed=atom&amp;title=Mapdev%3Asplatdetailnormals"/>
	<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Mapdev:splatdetailnormals&amp;action=history"/>
	<updated>2026-04-21T08:04:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Mapdev:splatdetailnormals&amp;diff=571&amp;oldid=prev</id>
		<title>Qrow: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Mapdev:splatdetailnormals&amp;diff=571&amp;oldid=prev"/>
		<updated>2025-11-13T02:14:57Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 19:14, 12 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Qrow</name></author>
	</entry>
	<entry>
		<id>https://www.fightorder.net/wiki/index.php?title=Mapdev:splatdetailnormals&amp;diff=570&amp;oldid=prev</id>
		<title>interwiki&gt;Beherith: /* Detail Normal Texture Splatting (DNTS) */</title>
		<link rel="alternate" type="text/html" href="https://www.fightorder.net/wiki/index.php?title=Mapdev:splatdetailnormals&amp;diff=570&amp;oldid=prev"/>
		<updated>2019-11-18T11:57:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Detail Normal Texture Splatting (DNTS)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Detail Normal Texture Splatting (DNTS) =&lt;br /&gt;
&lt;br /&gt;
This extends the existing functionality of SSMF splatted detail textures [[Mapdev:splatdetail]], with the option of specifying 4 different (normal map + greyscale diffuse map) detail textures.&lt;br /&gt;
&lt;br /&gt;
Splatted detail textures only allowed grayscale textures to be overlayed on the map, while DNTS also allows normal maps as well.&lt;br /&gt;
&lt;br /&gt;
Instead of creating a combined detail texture of 4 different single-channel diffuse detail textures stored in a single RGBA image, it uses four separate normal textures. &lt;br /&gt;
&lt;br /&gt;
The textures must contain the normal maps in the RGB channel (standard normal maps), with an optional diffuse luminance in the alpha channel. &lt;br /&gt;
&lt;br /&gt;
Beherith recommends using a high-pass filter on the luminance diffuse (alpha) channel, to avoid visible banding when zoomed out. When using PBR materials as DNTS sources, he also recommends mixing the diffuse and ambient occlusion parts of the textures into the diffuse alpha, as well as keeping the alpha channel centered around 50% greyscale, and with preferably a low spread to make sure that diffuse doesnt overpower the nice normals you have added.&lt;br /&gt;
&lt;br /&gt;
The system uses the same splatDistributionTexture as regular SSMF.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;You cannot specify these options in .smd files, only .lua!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Example result:&lt;br /&gt;
&lt;br /&gt;
[[File:dnts_example.jpg|960px]]&lt;br /&gt;
== Distribution Image ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA, DDS&lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGBA&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be stretched over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The RGBA Channels are individual greyscale distribution maps which define which detail textures to splat onto the ground. The intensity of the splatted textures is multipled by the pixel values for the corresponding channels.&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Example&lt;br /&gt;
| [[File:Mapdev-ddist.gif]] || [[File:Mapdev-ddist.png]]&lt;br /&gt;
|-&lt;br /&gt;
! Detail Distribution maps !! Combined Result&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Detail Normal Textures ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
! width=&amp;quot;15%&amp;quot; | File Location&lt;br /&gt;
| ./maps/&lt;br /&gt;
|-&lt;br /&gt;
! File Format&lt;br /&gt;
| PNG, TGA, DDS &lt;br /&gt;
|-&lt;br /&gt;
! Colour Depth&lt;br /&gt;
| 8bpp&lt;br /&gt;
|-&lt;br /&gt;
! Channels&lt;br /&gt;
| RGB for normal maps only, RGBA for normal map + diffuse map in alpha channel. The Y (green) channel of normal maps should be inverted.&lt;br /&gt;
|-&lt;br /&gt;
! Resolution&lt;br /&gt;
| Any, recommended powers of two, will be tiled over the terrain.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Detail Normal Texture Example&lt;br /&gt;
| [[File:Mapdev-dnts-normal.jpg|400px]] || [[File:Mapdev-dnts-diffuse-alpha.jpg|400px]]&lt;br /&gt;
|-&lt;br /&gt;
! Normal texture in RGB channel !! greyscale diffuse in ALPHA channel&lt;br /&gt;
|}&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Specification =&lt;br /&gt;
&lt;br /&gt;
Specify splatDetailNormalTex1 .. splatDetailNormalTex4 in the MAP resources section. splatDetailTex will be unused if and of splatDetailNormalTex[1-4] are present. &lt;br /&gt;
&lt;br /&gt;
Specify splatDetailNormalDiffuseAlpha=1 to enable diffuse textures stored in alpha channels.&lt;br /&gt;
&lt;br /&gt;
splatDetailNormalDiffuseAlpha=0 is the default value, and will ignore all and any alpha channels in the splatDetailNormalTex&amp;#039;s, resulting in a purely normal mapped surface, with no extra diffuse texturing. &lt;br /&gt;
&lt;br /&gt;
texScales and texMults work identically to [[Mapdev:splatdetail]]&lt;br /&gt;
&lt;br /&gt;
== mapinfo.lua ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
local mapinfo = {&lt;br /&gt;
   ...&lt;br /&gt;
   resources = {&lt;br /&gt;
      ...&lt;br /&gt;
      splatDistrTex = &amp;quot;splatDistributionTex.tga&amp;quot;,&lt;br /&gt;
      splatDetailNormalDiffuseAlpha = 1,&lt;br /&gt;
      splatDetailNormalTex = {&lt;br /&gt;
         &amp;quot;sandpebbles_NORM.tga&amp;quot;,&lt;br /&gt;
         &amp;quot;crystal_245_dnts.dds&amp;quot;,&lt;br /&gt;
         &amp;quot;grass_91_dnts.dds&amp;quot;,&lt;br /&gt;
         &amp;quot;pebbles_250_dnts_u8888.dds&amp;quot;,&lt;br /&gt;
          alpha = true,&lt;br /&gt;
      },&lt;br /&gt;
      ...&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
   splats = {&lt;br /&gt;
      texScales = {0.02, 0.02, 0.02, 0.02},&lt;br /&gt;
      texMults = {1.0, 1.0, 1.0, 1.0},&lt;br /&gt;
   },&lt;br /&gt;
   ...&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Map Dev]]&lt;/div&gt;</summary>
		<author><name>interwiki&gt;Beherith</name></author>
	</entry>
</feed>