Minecraft:Density function: Difference between revisions
More actions
Sync: updated from Minecraft |
Sync: updated from Minecraft |
||
| Line 1: | Line 1: | ||
{{Exclusive|java}} | {{Exclusive|java}} | ||
'''Density functions''' make up mathematical expressions to obtain a number from a position, stored as [[Minecraft:JSON]] files within a [[Minecraft:data pack]] in the path <code>data/<namespace>/worldgen/density_function</code>. They are referenced from the [[Minecraft:noise router]] in [[Minecraft:noise settings]]. | '''Density functions''' make up mathematical expressions to obtain a number from a position, stored as [[Minecraft:JSON]] files within a [[Minecraft:data pack]] in the path <code>data/<namespace>/worldgen/density_function</code>. They are referenced from the [[Minecraft:noise router]] in [[Minecraft:noise settings]]. | ||
| Line 21: | Line 20: | ||
== Marker functions == | == Marker functions == | ||
=== | === cache_2d === | ||
Only computes the input density once per horizontal position. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>cache_2d</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input to be | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input to be cached. | ||
</div> | </div> | ||
=== | === cache_all_in_cell === | ||
Used by the game onto <code>final_density</code> and should not be referenced in data packs. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>cache_all_in_cell</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input to be cached. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input to be cached. | ||
</div> | </div> | ||
=== | === cache_once === | ||
If this density function is referenced twice, it is only computed once per block position. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>cache_once</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input to be cached. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input to be cached. | ||
</div> | </div> | ||
=== | === flat_cache === | ||
Calculate the value per 4×4 column (Value at each block in one column is the same). And it is calculated only once per column, at Y=0. Used often in combination with <code>interpolated</code>. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>flat_cache</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input to be cached. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input to be cached. | ||
</div> | </div> | ||
=== | === interpolated === | ||
Interpolates at each block in one cell based on the input density function value of some cells around. The size of each cell is <code>size_horizontal * 4</code> and <code>size_vertical * 4</code>. Used often in combination with <code>flat_cache</code>. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>interpolated</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input to be | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input to be interpolated. | ||
</div> | </div> | ||
| Line 67: | Line 66: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>abs</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>abs</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}} | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input of the calculation. | ||
</div> | </div> | ||
| Line 83: | Line 74: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>cube</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>cube</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input of the calculation. | ||
</div> | </div> | ||
| Line 91: | Line 82: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>half_negative</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>half_negative</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input of the calculation. | |||
</div> | |||
=== interval_select === | |||
Selects between a number of density functions based on an input density function and a set of threshold values. | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>interval_select</code>). | |||
** {{nbt|int|input}}: The value to be compared with any given {{cd|thresholds}}. | |||
** {{nbt|float|thresholds}}: The threshold values to compare {{cd|input}} with. | |||
*** If the input value is less than the threshold values, the result of {{cd|functions[i]}} will be selected. | |||
*** If the input value is greater than the last threshold value, the last function will be selected. | |||
*** There must be one fewer {{cd|thresholds}} than {{cd|functions}}. | |||
** {{nbt|list|functions}}: The resulting functions (at least two) to be selected from. | |||
*** There must be one more element in {{cd|functions}} than {{cd|thresholds}}. | |||
</div> | |||
=== invert === | |||
Named {{cd|reciprocal}}.{{upcoming|JE 26.3}} | |||
Inverts the input (<code>1/x</code>). | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>invert</code>). | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input of the calculation. | ||
</div> | </div> | ||
| Line 99: | Line 113: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>quarter_negative</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>quarter_negative</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input of the calculation. | ||
</div> | </div> | ||
=== | === square === | ||
Squares the input. (<code>x^2</code>) | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>square</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input of the calculation. | ||
</div> | </div> | ||
=== | === squeeze === | ||
First clamps the input between −1 and 1, then transforms it using x/2 - x*x*x/24. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>squeeze</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}: {{json ref/density function}} — The input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The input of the calculation. | ||
</div> | </div> | ||
| Line 124: | Line 138: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>add</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>add</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}: {{json ref/density function}} — The first input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}{{until|JE 26.3}} / {{nbt|double|left}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The first input of the calculation. | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}: {{json ref/density function}} — The second input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}{{until|JE 26.3}} / {{nbt|double|right}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The second input of the calculation. | ||
</div> | |||
=== div === | |||
Performs division between two arguments.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>div</code>). | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|left}} — The left-hand side of the operation. | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|right}} — The right-hand side of the operation. | |||
</div> | </div> | ||
| Line 133: | Line 156: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>mul</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>mul</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}: {{json ref/density function}} — The first input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}{{until|JE 26.3}} / {{nbt|double|left}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The first input of the calculation. | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}: {{json ref/density function}} — The second input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}{{until|JE 26.3}} / {{nbt|double|right}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The second input of the calculation. | ||
</div> | </div> | ||
| Line 142: | Line 165: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>min</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>min</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}: {{json ref/density function}} — The first input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}{{until|JE 26.3}} / {{nbt|double|left}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The first input of the calculation. | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}: {{json ref/density function}} — The second input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}{{until|JE 26.3}} / {{nbt|double|right}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The second input of the calculation. | ||
</div> | </div> | ||
| Line 151: | Line 174: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>max</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>max</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}: {{json ref/density function}} — The first input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument1}}{{until|JE 26.3}} / {{nbt|double|left}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The first input of the calculation. | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}: {{json ref/density function}} — The second input of the calculation. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument2}}{{until|JE 26.3}} / {{nbt|double|right}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The second input of the calculation. | ||
</div> | |||
=== sub === | |||
Performs subtraction between two arguments.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>sub</code>). | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|left}} — The left-hand side of the operation. | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|right}} — The right-hand side of the operation. | |||
</div> | </div> | ||
== Other density functions == | == Other density functions == | ||
=== beardifier === | |||
Adds beards for structures (see the <code>terrain_adaptation</code> field in [[Minecraft:Structure/JSON format|structures]]). Its value is added to the <code>final_density</code> in noise setting by the game. Should not be referenced in data packs. | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>beardifier</code>). | |||
</div> | |||
=== blend_alpha === | === blend_alpha === | ||
Used in vanilla for smooth transition to chunks generated in old versions.{{Info needed}} | Used in vanilla for smooth transition to chunks generated in old versions.{{Info needed}} | ||
| Line 163: | Line 202: | ||
</div> | </div> | ||
=== | === blend_density === | ||
Used in vanilla for smooth transition to chunks generated in old versions.{{Info needed}} | Used in vanilla for smooth transition to chunks generated in old versions.{{Info needed}} | ||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>blend_density</code>). | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|argument}}{{until|JE 26.3}} / {{nbt|double|input}}{{upcoming|JE 26.3}}: {{json ref/density function}} — The desired density of new chunks. | |||
</div> | </div> | ||
=== | === blend_offset === | ||
Used in vanilla for smooth transition to chunks generated in old versions.{{Info needed}} | Used in vanilla for smooth transition to chunks generated in old versions.{{Info needed}} | ||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>blend_offset</code>). | ||
</div> | </div> | ||
=== | === ceil === | ||
Rounds the input value to positive infinity.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>ceil</code>). | ||
** {{nbt|int|input}}: The input to round. | |||
** {{nbt|int|multiple}}: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1. | |||
</div> | </div> | ||
=== | === clamp === | ||
Clamps the input between two values. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>clamp</code>). | ||
** {{Nbt|double| | ** {{Nbt|double}}{{Nbt|compound|input}}: One '''density function''' (a new {{Nbt|double}}{{Nbt|compound}} density function definition, an {{Nbt|string|}}[[Minecraft:resource location|ID]] is not allowed here<ref>{{cite bug|MC|252814|Clamp density function takes a direct input and doesn't allow a reference|date=June 11, 2022}}</ref>) — The input to clamp. | ||
** {{Nbt|double|min}}: The lower bound. Value between −1000000.0 and 1000000.0 (both inclusive). | |||
** {{Nbt|double|max}}: The upper bound. Value between −1000000.0 and 1000000.0 (both inclusive). | |||
** {{Nbt|double| | |||
** {{Nbt|double| | |||
</div> | </div> | ||
=== | === constant === | ||
A constant value. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>constant</code>). | ||
** {{Nbt| | ** {{Nbt|double|argument}}{{until|JE 26.3}} / {{nbt|double|value}}{{upcoming|JE 26.3}}: A constant value. Value between −1000000.0 and 1000000.0 (both inclusive). | ||
</div> | </div> | ||
| Line 214: | Line 252: | ||
</div> | </div> | ||
=== | === find_top_surface === | ||
Scans through a column of an input density and returns the topmost y-level that is above 0. If no such position exists within the bounds, the {{Nbt|int|lower_bound}} is returned. | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>find_top_surface</code>). | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|density}}: {{json ref/density function}} — The density function to scan. | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|upper_bound}}: {{json ref/density function}} — The y-level to start the scan at. Usually a 2D density function. | |||
** {{Nbt|int|lower_bound}}: The y-level to stop the scan. | |||
** {{Nbt|int|cell_height}}: The resolution of the scan. E.g. if set to <code>4</code>, then only every 4th block is checked. | |||
</div> | |||
=== floor === | |||
Rounds the input value to negative infinity.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>floor</code>). | |||
** {{nbt|int|input}}: The input to round. | |||
** {{nbt|int|multiple}}: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1. | |||
</div> | |||
=== lerp === | |||
Performs (unclamped) linear interpolation between two arguments based on an alpha.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>lerp</code>). | |||
** {{nbt|integer|alpha}}: The interpolation factor (e.g. 0 = first, 1 = second). Any value outside of {{cd|[0; 1]}} will extrapolate. | |||
** {{nbt|integer|first}}: the value at {{cd|<nowiki>alpha=0</nowiki>}}. | |||
** {{nbt|integer|second}}: the value at {{cd|<nowiki>alpha=1</nowiki>}}. | |||
</div> | |||
=== negate === | |||
Negates the input.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>negate</code>). | |||
** {{nbt|string|input}}: The function to negate. | |||
</div> | |||
=== noise === | |||
Samples a [[Minecraft:Custom_noise|noise]]. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>noise</code>). | ||
** {{Nbt|string|noise}}: {{json ref|noise|Custom noise}} — The noise to sample. | ** {{Nbt|string|noise}}: {{json ref|noise|Custom noise}} — The noise to sample. | ||
** {{Nbt|double|xz_scale}}: Scales the X and Z before sampling. | ** {{Nbt|double|xz_scale}}: Scales the X and Z before sampling. | ||
** {{Nbt|double|y_scale}}: Scales the Y before sampling. | ** {{Nbt|double|y_scale}}: Scales the Y before sampling. | ||
</div> | |||
** {{Nbt| | |||
** {{Nbt| | === old_blended_noise === | ||
Samples a legacy noise. {{Info needed}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>old_blended_noise</code>). | |||
** {{Nbt|double|xz_scale}}: Value between 0.001 and 1000.0 (both inclusive). | |||
** {{Nbt|double|y_scale}}: Value between 0.001 and 1000.0 (both inclusive). | |||
** {{Nbt|double|xz_factor}}: Value between 0.001 and 1000.0 (both inclusive). | |||
** {{Nbt|double|y_factor}}: Value between 0.001 and 1000.0 (both inclusive). | |||
** {{Nbt|double|smear_scale_multiplier}}: Value between 1.0 and 8.0 (both inclusive). | |||
</div> | </div> | ||
| Line 237: | Line 323: | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|when_in_range}}: {{json ref/density function}} — Used when the input is inside the range. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|when_in_range}}: {{json ref/density function}} — Used when the input is inside the range. | ||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|when_out_of_range}}: {{json ref/density function}} — Used when the input is outside the range. | ** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|when_out_of_range}}: {{json ref/density function}} — Used when the input is outside the range. | ||
</div> | |||
=== round === | |||
Rounds the input value to to the nearest integer (ties round up).{{upcoming|JE 26.3}} | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>round</code>). | |||
** {{nbt|int|input}}: The input to round. | |||
** {{nbt|int|multiple}}: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1. | |||
</div> | |||
=== shift === | |||
Samples a noise at <code>(x/4, y/4, z/4)</code>, then multiplies it by 4. | |||
<div class="treeview"> | |||
* {{nbt|compound}}: Root object. | |||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>shift</code>). | |||
** {{Nbt|string|argument}}{{until|JE 26.3}} / {{nbt|string|noise}}{{upcoming|JE 26.3}}: {{json ref|noise|Custom noise}} — The noise to sample. | |||
</div> | </div> | ||
| Line 244: | Line 348: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>shift_a</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>shift_a</code>). | ||
** {{Nbt|string|argument}}: {{json ref|noise|Custom noise}} — The noise to sample. | ** {{Nbt|string|argument}}{{until|JE 26.3}} / {{nbt|string|noise}}{{upcoming|JE 26.3}}: {{json ref|noise|Custom noise}} — The noise to sample. | ||
</div> | </div> | ||
| Line 252: | Line 356: | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>shift_b</code>). | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>shift_b</code>). | ||
** {{Nbt|string|argument}}: {{json ref|noise|Custom noise}} — The noise to sample. | ** {{Nbt|string|argument}}{{until|JE 26.3}} / {{nbt|string|noise}}{{upcoming|JE 26.3}}: {{json ref|noise|Custom noise}} — The noise to sample. | ||
</div> | </div> | ||
=== | === shifted_noise === | ||
Similar to <code>noise</code>, but first shifts the input coordinates. | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>shifted_noise</code>). | ||
** {{Nbt|string| | ** {{Nbt|string|noise}}: {{json ref|noise|Custom noise}} — The noise to sample. | ||
** {{Nbt|double|xz_scale}}: Scales the X and Z before sampling. | |||
** {{Nbt|double|y_scale}}: Scales the Y before sampling. | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|shift_x}}: {{json ref/density function}} — offset of the position in the X direction. | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|shift_y}}: {{json ref/density function}} — offset of the position in the Y direction. | |||
** {{Nbt|string}}{{Nbt|double}}{{Nbt|compound|shift_z}}: {{json ref/density function}} — offset of the position in the Z direction. | |||
* {{ | |||
** {{Nbt| | |||
** {{Nbt|double}}{{Nbt|compound| | |||
** {{Nbt|double | |||
</div> | </div> | ||
| Line 287: | Line 386: | ||
</div> | </div> | ||
=== | === truncate === | ||
Rounds the input value to 0.{{upcoming|JE 26.3}} | |||
<div class="treeview"> | <div class="treeview"> | ||
* {{nbt|compound}}: Root object. | * {{nbt|compound}}: Root object. | ||
** {{Nbt|string|type}}: The ID of the density function type (in this case, <code> | ** {{Nbt|string|type}}: The ID of the density function type (in this case, <code>truncate</code>). | ||
** {{ | ** {{nbt|int|input}}: The input to round. | ||
** {{nbt|int|multiple}}: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1. | |||
</div> | </div> | ||
| Line 304: | Line 405: | ||
** {{Nbt|double|from_value}}: The value to map <code>from_y</code> to. Value between −1000000.0 and 1000000.0 (both inclusive). | ** {{Nbt|double|from_value}}: The value to map <code>from_y</code> to. Value between −1000000.0 and 1000000.0 (both inclusive). | ||
** {{Nbt|double|to_value}}: The value to map <code>to_y</code> to. Value between −1000000.0 and 1000000.0 (both inclusive). | ** {{Nbt|double|to_value}}: The value to map <code>to_y</code> to. Value between −1000000.0 and 1000000.0 (both inclusive). | ||
</div> | </div> | ||
| Line 400: | Line 490: | ||
|{{HistoryLine||1.21.9|dev=25w31a|Added density functions {{cd|minecraft:find_top_surface}} and {{cd|minecraft:invert}}.}} | |{{HistoryLine||1.21.9|dev=25w31a|Added density functions {{cd|minecraft:find_top_surface}} and {{cd|minecraft:invert}}.}} | ||
|{{HistoryLine||26.2|dev=snap5|Added density function {{cd|minecraft:interval_select}}.|Removed density function {{cd|minecraft:weird_scale_sampler}}. Its functionality has been replaced with {{cd|interval_select}}.}} | |{{HistoryLine||26.2|dev=snap5|Added density function {{cd|minecraft:interval_select}}.|Removed density function {{cd|minecraft:weird_scale_sampler}}. Its functionality has been replaced with {{cd|interval_select}}.}} | ||
|{{HistoryLine|java upcoming}} | |||
|{{HistoryLine||26.3|dev=snap4|Added the following density functions: | |||
* {{cd|ceil}} | |||
* {{cd|div}} | |||
* {{cd|floor}} | |||
* {{cd|negate}} | |||
* {{cd|lerp}} | |||
* {{cd|round}} | |||
* {{cd|sub}} | |||
* {{cd|truncate}} | |||
|{{cd|invert}} has been renamed to {{cd|reciprocal}}. | |||
|Numerous {{cd|argument}} fields in density functions have been renamed.}} | |||
}} | }} | ||
Latest revision as of 11:06, 17 July 2026
Template:Exclusive
Density functions make up mathematical expressions to obtain a number from a position, stored as Minecraft:JSON files within a Minecraft:data pack in the path data/<namespace>/worldgen/density_function. They are referenced from the Minecraft:noise router in Minecraft:noise settings.
JSON format
A density function can be a constant number or an object.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type.
- Other additional fields depend on the value of Template:Nbt, described below.
If the Template:Nbt is constant, a shorthand format is:
- Template:Nbt: A constant number. Value between −1000000.0 and 1000000.0 (both inclusive).
Marker functions
cache_2d
Only computes the input density once per horizontal position.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
cache_2d). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input to be cached.
- Template:Nbt: The ID of the density function type (in this case,
cache_all_in_cell
Used by the game onto final_density and should not be referenced in data packs.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
cache_all_in_cell). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input to be cached.
- Template:Nbt: The ID of the density function type (in this case,
cache_once
If this density function is referenced twice, it is only computed once per block position.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
cache_once). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input to be cached.
- Template:Nbt: The ID of the density function type (in this case,
flat_cache
Calculate the value per 4×4 column (Value at each block in one column is the same). And it is calculated only once per column, at Y=0. Used often in combination with interpolated.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
flat_cache). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input to be cached.
- Template:Nbt: The ID of the density function type (in this case,
interpolated
Interpolates at each block in one cell based on the input density function value of some cells around. The size of each cell is size_horizontal * 4 and size_vertical * 4. Used often in combination with flat_cache.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
interpolated). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input to be interpolated.
- Template:Nbt: The ID of the density function type (in this case,
Mapped density functions
abs
Calculates the absolute value of the input density function.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
abs). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
cube
Cubes the input (x^3).
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
cube). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
half_negative
If the input is negative, returns half of the input. Otherwise returns the input. (x < 0 ? x/2 : x)
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
half_negative). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
interval_select
Selects between a number of density functions based on an input density function and a set of threshold values.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
interval_select). - Template:Nbt: The value to be compared with any given Template:Cd.
- Template:Nbt: The threshold values to compare Template:Cd with.
- If the input value is less than the threshold values, the result of Template:Cd will be selected.
- If the input value is greater than the last threshold value, the last function will be selected.
- There must be one fewer Template:Cd than Template:Cd.
- Template:Nbt: The resulting functions (at least two) to be selected from.
- There must be one more element in Template:Cd than Template:Cd.
- Template:Nbt: The ID of the density function type (in this case,
invert
Named Template:Cd.Template:Upcoming
Inverts the input (1/x).
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
invert). - Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
quarter_negative
If the input is negative, returns a quarter of the input. Otherwise returns the input. (x < 0 ? x/4 : x)
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
quarter_negative). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
square
Squares the input. (x^2)
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
square). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
squeeze
First clamps the input between −1 and 1, then transforms it using x/2 - x*x*x/24.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
squeeze). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
Functions with two arguments
add
Adds two density functions together.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
add). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The first input of the calculation.
- Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The second input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
div
Performs division between two arguments.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
div). - Template:NbtTemplate:NbtTemplate:Nbt — The left-hand side of the operation.
- Template:NbtTemplate:NbtTemplate:Nbt — The right-hand side of the operation.
- Template:Nbt: The ID of the density function type (in this case,
mul
Multiplies two inputs.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
mul). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The first input of the calculation.
- Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The second input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
min
Returns the minimum of two inputs.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
min). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The first input of the calculation.
- Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The second input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
max
Returns the maximum of two inputs.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
max). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The first input of the calculation.
- Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The second input of the calculation.
- Template:Nbt: The ID of the density function type (in this case,
sub
Performs subtraction between two arguments.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
sub). - Template:NbtTemplate:NbtTemplate:Nbt — The left-hand side of the operation.
- Template:NbtTemplate:NbtTemplate:Nbt — The right-hand side of the operation.
- Template:Nbt: The ID of the density function type (in this case,
Other density functions
beardifier
Adds beards for structures (see the terrain_adaptation field in structures). Its value is added to the final_density in noise setting by the game. Should not be referenced in data packs.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
beardifier).
- Template:Nbt: The ID of the density function type (in this case,
blend_alpha
Used in vanilla for smooth transition to chunks generated in old versions.Template:Info needed
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
blend_alpha).
- Template:Nbt: The ID of the density function type (in this case,
blend_density
Used in vanilla for smooth transition to chunks generated in old versions.Template:Info needed
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
blend_density). - Template:NbtTemplate:NbtTemplate:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref/density function — The desired density of new chunks.
- Template:Nbt: The ID of the density function type (in this case,
blend_offset
Used in vanilla for smooth transition to chunks generated in old versions.Template:Info needed
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
blend_offset).
- Template:Nbt: The ID of the density function type (in this case,
ceil
Rounds the input value to positive infinity.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
ceil). - Template:Nbt: The input to round.
- Template:Nbt: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1.
- Template:Nbt: The ID of the density function type (in this case,
clamp
Clamps the input between two values.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
clamp). - Template:NbtTemplate:Nbt: One density function (a new Template:NbtTemplate:Nbt density function definition, an Template:NbtID is not allowed here<ref>Template:Cite bug</ref>) — The input to clamp.
- Template:Nbt: The lower bound. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The upper bound. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The ID of the density function type (in this case,
constant
A constant value.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
constant). - Template:NbtTemplate:Until / Template:NbtTemplate:Upcoming: A constant value. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The ID of the density function type (in this case,
end_islands
Samples at current position using a noise algorithm used for end islands. Its minimum value is −0.84375 and its maximum value is 0.5625.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
end_islands).
- Template:Nbt: The ID of the density function type (in this case,
find_top_surface
Scans through a column of an input density and returns the topmost y-level that is above 0. If no such position exists within the bounds, the Template:Nbt is returned.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
find_top_surface). - Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — The density function to scan.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — The y-level to start the scan at. Usually a 2D density function.
- Template:Nbt: The y-level to stop the scan.
- Template:Nbt: The resolution of the scan. E.g. if set to
4, then only every 4th block is checked.
- Template:Nbt: The ID of the density function type (in this case,
floor
Rounds the input value to negative infinity.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
floor). - Template:Nbt: The input to round.
- Template:Nbt: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1.
- Template:Nbt: The ID of the density function type (in this case,
lerp
Performs (unclamped) linear interpolation between two arguments based on an alpha.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
lerp). - Template:Nbt: The interpolation factor (e.g. 0 = first, 1 = second). Any value outside of Template:Cd will extrapolate.
- Template:Nbt: the value at Template:Cd.
- Template:Nbt: the value at Template:Cd.
- Template:Nbt: The ID of the density function type (in this case,
negate
Negates the input.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
negate). - Template:Nbt: The function to negate.
- Template:Nbt: The ID of the density function type (in this case,
noise
Samples a noise.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
noise). - Template:Nbt: Template:Json ref — The noise to sample.
- Template:Nbt: Scales the X and Z before sampling.
- Template:Nbt: Scales the Y before sampling.
- Template:Nbt: The ID of the density function type (in this case,
old_blended_noise
Samples a legacy noise. Template:Info needed
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
old_blended_noise). - Template:Nbt: Value between 0.001 and 1000.0 (both inclusive).
- Template:Nbt: Value between 0.001 and 1000.0 (both inclusive).
- Template:Nbt: Value between 0.001 and 1000.0 (both inclusive).
- Template:Nbt: Value between 0.001 and 1000.0 (both inclusive).
- Template:Nbt: Value between 1.0 and 8.0 (both inclusive).
- Template:Nbt: The ID of the density function type (in this case,
range_choice
Computes the input value, and depending on that result returns one of two other density functions. Basically an if-then-else statement.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
range_choice). - Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — The value to compare
- Template:Nbt: The lower bound of the range. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The upper bound of the range. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — Used when the input is inside the range.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — Used when the input is outside the range.
- Template:Nbt: The ID of the density function type (in this case,
round
Rounds the input value to to the nearest integer (ties round up).Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
round). - Template:Nbt: The input to round.
- Template:Nbt: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1.
- Template:Nbt: The ID of the density function type (in this case,
shift
Samples a noise at (x/4, y/4, z/4), then multiplies it by 4.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
shift). - Template:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref — The noise to sample.
- Template:Nbt: The ID of the density function type (in this case,
shift_a
Samples a noise at (x/4, 0, z/4), then multiplies it by 4.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
shift_a). - Template:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref — The noise to sample.
- Template:Nbt: The ID of the density function type (in this case,
shift_b
Samples a noise at (z/4, x/4, 0), then multiplies it by 4.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
shift_b). - Template:NbtTemplate:Until / Template:NbtTemplate:Upcoming: Template:Json ref — The noise to sample.
- Template:Nbt: The ID of the density function type (in this case,
shifted_noise
Similar to noise, but first shifts the input coordinates.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
shifted_noise). - Template:Nbt: Template:Json ref — The noise to sample.
- Template:Nbt: Scales the X and Z before sampling.
- Template:Nbt: Scales the Y before sampling.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — offset of the position in the X direction.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — offset of the position in the Y direction.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — offset of the position in the Z direction.
- Template:Nbt: The ID of the density function type (in this case,
spline
Computes a cubic spline.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
spline). - Template:NbtTemplate:Nbt: The spline. Can be either a number or an object.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — Input determining the location on the spline.
- Template:Nbt: (Cannot be empty) List of points of the cubic spline.
- Template:Nbt: A point of the cubic spline.
- Template:Nbt: The location of this point.
- Template:NbtTemplate:Nbt: The value of this point. Can be either a number or a spline object.
- Template:Nbt: The slope at this point.
- Template:Nbt: A point of the cubic spline.
- Template:Nbt: The ID of the density function type (in this case,
truncate
Rounds the input value to 0.Template:Upcoming
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
truncate). - Template:Nbt: The input to round.
- Template:Nbt: The output will be rounded to an integer multiple of this value. If not specified, it defaults to a constant 1.
- Template:Nbt: The ID of the density function type (in this case,
y_clamped_gradient
Clamps the Y coordinate between from_y and to_y and then linearly maps it to a range.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
y_clamped_gradient). - Template:Nbt: The value to be mapped to
from_value. Value between −4064 and 4062 (both inclusive). - Template:Nbt: The value to be mapped to
to_value. Value between −4064 and 4062 (both inclusive). - Template:Nbt: The value to map
from_yto. Value between −1000000.0 and 1000000.0 (both inclusive). - Template:Nbt: The value to map
to_yto. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The ID of the density function type (in this case,
Removed density functions
slide
Removed in Minecraft:22w12a
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
slide). - Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function
- Template:Nbt: The ID of the density function type (in this case,
The legacy "spline"
Removed in Minecraft:22w11a
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
spline). - Template:NbtTemplate:Nbt: The spline. Can be either a number or an object.
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function — Input determining the location on the spline.
- Template:Nbt: (Cannot be empty) List of points of the cubic spline.
- Template:Nbt: The location of this point.
- Template:NbtTemplate:Nbt: The value of this point. Can be either a number or a spline object.
- Template:Nbt: The slope at this point.
- Template:Nbt: The min value of the output. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The max value of the output. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The ID of the density function type (in this case,
terrain_shaper_spline
Removed in Minecraft:22w11a
Calculate the spline from the noise settings.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
terrain_shaper_spline). - Template:Nbt: Can be
offset,factor, orjaggedness. - Template:Nbt: The min value of the output. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:Nbt: The max value of the output. Value between −1000000.0 and 1000000.0 (both inclusive).
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function
- Template:NbtTemplate:NbtTemplate:Nbt: Template:Json ref/density function
- Template:Nbt: The ID of the density function type (in this case,
weird_scaled_sampler
Removed in Minecraft:26.2-snap5
According to the input value, scales and enhances (or weakens) some regions of the specified noise, and then returns the absolute value.
- Template:Nbt: Root object.
- Template:Nbt: The ID of the density function type (in this case,
weird_scaled_sampler). - Template:Nbt: Can be
type_1(The minimum scale is 0.75, and the maximum is 2.0)ortype_2(The minimum scale is 0.5, and the maximum is 3.0.) - Template:Nbt: Template:Json ref — The noise to sample.
- Template:NbtTemplate:NbtTemplate:Nbt: The input density function. Can be an ID of a density function, or a density function in the form of a JSON object or a constant number.
- Template:Nbt: The ID of the density function type (in this case,
History
Issues
References
External links
Template:Navbox Java Edition technical
Minecraft:de:Dichtefunktion Minecraft:fr:Fonction de densité Minecraft:ko:밀도 함수 Minecraft:pt:Função de densidade Minecraft:zh:密度函数