Difference between revisions of "Reference:Normal Map"
Jholsenback (talk | contribs) m (link repair) |
Jholsenback (talk | contribs) m (version changes) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 11: | Line 11: | ||
<p>Where <em><code>Value</code></em> is a float value between 0.0 and 1.0 inclusive and each <em>NORMAL_BODY</em> is anything which can be inside a <code>normal{...}</code> statement. The <code>normal</code> keyword and <code>{}</code> braces need not be specified.</p> | <p>Where <em><code>Value</code></em> is a float value between 0.0 and 1.0 inclusive and each <em>NORMAL_BODY</em> is anything which can be inside a <code>normal{...}</code> statement. The <code>normal</code> keyword and <code>{}</code> braces need not be specified.</p> | ||
<p class="Note"><strong>Note:</strong> The <code>[]</code> brackets are part of the actual <em>NORMAL_MAP_ENTRY</em>. They are not notational symbols denoting optional parts. The brackets surround each entry in the normal map.</p> | <p class="Note"><strong>Note:</strong> The <code>[]</code> brackets are part of the actual <em>NORMAL_MAP_ENTRY</em>. They are not notational symbols denoting optional parts. The brackets surround each entry in the normal map.</p> | ||
− | <p> | + | <p>In <em>previous</em> versions there <em>had</em> to be from 2 to 256 entries in the map. A {{Change}} in version 3.8 has removed the upper restriction.</p> |
<p>For example:</p> | <p>For example:</p> | ||
<pre> | <pre> |
Latest revision as of 08:48, 30 June 2017
Most of the time you will apply single normal pattern to an entire surface but you may also create a pattern or blend of normals using a normal_map
. The syntax for a normal_map
is identical to a pigment_map
except you specify a normal
in each map entry. The syntax for normal_map
is as follows:
NORMAL_MAP: normal_map { NORMAL_MAP_BODY } NORMAL_MAP_BODY: NORMAL_MAP_IDENTIFIER | NORMAL_MAP_ENTRY... NORMAL_MAP_ENTRY: [ Value NORMAL_BODY ]
Where Value
is a float value between 0.0 and 1.0 inclusive and each NORMAL_BODY is anything which can be inside a normal{...}
statement. The normal
keyword and {}
braces need not be specified.
Note: The []
brackets are part of the actual NORMAL_MAP_ENTRY. They are not notational symbols denoting optional parts. The brackets surround each entry in the normal map.
In previous versions there had to be from 2 to 256 entries in the map. A Change in version 3.8 has removed the upper restriction.
For example:
normal { gradient x //this is the PATTERN_TYPE normal_map { [0.3 bumps scale 2] [0.3 dents] [0.6 dents] [0.9 marble turbulence 1] } }
When the gradient x
function returns values from 0.0 to 0.3 then the scaled bumps normal is used. From 0.3 to 0.6 dents pattern is used. From 0.6 up to 0.9 a blend of dents and a turbulent marble is used. From 0.9 on up only the turbulent marble is used.
Normal maps may be nested to any level of complexity you desire. The normals in a map may have slope maps or normal maps or any type of normal you want.
A normal map is also used with the average
normal type. See Average for details.
Entire normals in a normal list may also be used with the block patterns such as checker
, hexagon
and brick
. For example:
normal { checker normal { gradient x scale .2 } normal { gradient y scale .2 } }
Note: In the case of block patterns the normal
wrapping is required around the normal information.
You may not use normal_map
or individual normals with a bump_map
. See section Texture Maps for an alternative way to do this.
You may declare and use normal map identifiers but the only way to declare a normal block pattern list is to declare a normal identifier for the entire normal.