<?xml version="1.0" encoding="utf-8"?>
<Filter>
	<CustomClasses>
		<ScriptMap name="ScriptMap01">
			<Color name="NOISE" display_name="Noise"/>
			<Color name="BACKGROUND" display_name="Background"/>
			<Slider name="SCALE" display_name="Scale"/>
			<Slider name="ROUGHNESS" display_name="Roughness"/>
			<Slider name="DETAILS" display_name="Details"/>
			<IntSlider name="NOISE_VARIATION" display_name="Variation">
				<Range min="1" max="30000"/>
			</IntSlider>
		</ScriptMap>
	</CustomClasses>
	<Components>
		<Result id="result">
			<Source source="scriptmap01 01"/>
			<FilterType value="0"/>
			<Lighting>
				<Height value="0.20000000000000001"/>
				<Environment>
					<Source value=""/>
					<Brightness value="1"/>
					<Saturation value="1"/>
					<Rotation value="0"/>
					<RotationAxis x="0" y="0" z="0"/>
				</Environment>
				<Ambience>
					<AmbientLight red="0" green="0" blue="0"/>
					<Shadowing value="0"/>
					<CurrentOcclusionSettings>
						<RayDirections value="4"/>
						<TraceDistance value="0.20000000000000001"/>
						<RayJittering value="true"/>
						<RayBounce value="true"/>
						<AvoidStreaks value="true"/>
						<DirectSamples value="0"/>
						<ROQuality value="3"/>
					</CurrentOcclusionSettings>
					<CustomOcclusionSettings>
						<RayDirections value="16"/>
						<TraceDistance value="0.29999999999999999"/>
						<RayJittering value="true"/>
						<RayBounce value="true"/>
						<AvoidStreaks value="true"/>
						<DirectSamples value="1"/>
						<ROQuality value="10"/>
					</CustomOcclusionSettings>
					<ArtisticSettings>
						<BlackPoint value="0"/>
						<Midtones value="0.5"/>
						<WhitePoint value="1"/>
					</ArtisticSettings>
				</Ambience>
			</Lighting>
		</Result>
		<ScriptMap01 id="scriptmap01 01">
			<Script value="function prepare()\[br]--\[tb]Constants\[br]\[tb]AMPLITUDE_CORRECTION_FACTOR = 1.731628995\[br]\[tb]ROUGHNESS_THRESHOLD = 0.00001\[br]\[tb]REMAINDER_THRESHOLD = 0.00001\[br]\[br]--\[tb]Input values\[br]\[tb]local details = get_slider_input(DETAILS) * 10 + 1\[br]\[tb]OCTAVES_COUNT = math.floor(details)\[br]\[tb]NOISE_SIZE = get_slider_input(SCALE)\[br]\[tb]local remainder = details - OCTAVES_COUNT\[br]\[tb]if (remainder &gt; REMAINDER_THRESHOLD) then\[br]\[tb]\[tb]OCTAVES_COUNT = OCTAVES_COUNT + 1\[br]\[tb]end\[br]\[tb]\[br]\[tb]local roughness = ROUGHNESS_THRESHOLD + \[br]\[tb]\[tb]get_slider_input(ROUGHNESS) * (1.0 - ROUGHNESS_THRESHOLD)\[br]\[tb]\[br]\[tb]OCTAVES = {}\[br]\[tb]local cell_size = (0.01 + NOISE_SIZE * 0.99) * 150\[br]\[tb]local scale = roughness\[br]\[tb]local octave_index\[br]\[tb]for octave_index = 1, OCTAVES_COUNT do\[br]\[tb]\[tb]if (scale &lt; ROUGHNESS_THRESHOLD) then\[br]\[tb]\[tb]\[tb]OCTAVES_COUNT = octave_index - 1\[br]\[tb]\[tb]\[tb]break\[br]\[tb]\[tb]end\[br]\[tb]\[tb]OCTAVES[octave_index] = {cell_size, scale}\[br]\[tb]\[tb]cell_size = cell_size * 0.5\[br]\[tb]\[tb]scale = scale * roughness\[br]\[tb]end\[br]\[tb]\[br]\[tb]if (remainder &gt;= 0.001) then\[br]\[tb]\[tb]OCTAVES[OCTAVES_COUNT][2] = OCTAVES[OCTAVES_COUNT][2] * remainder\[br]\[tb]end\[br]\[br]\[tb]NORM_FACTOR = 0\[br]\[tb]for octave_index = 1, OCTAVES_COUNT do\[br]\[tb]\[tb]NORM_FACTOR = NORM_FACTOR + OCTAVES[octave_index][2] ^ 2\[br]\[tb]end\[br]\[tb]NORM_FACTOR = 1 / math.sqrt(NORM_FACTOR)\[br]\[br]\[tb]set_perlin_noise_seed(get_intslider_input(NOISE_VARIATION))\[br]end;\[br]\[br]function get_sample(x, y)\[br]\[tb]local r, g, b, a = get_sample_map(x, y, BACKGROUND)\[br]\[tb]local noise_r, noise_g, noise_b, noise_a = get_sample_map(x, y, NOISE)\[br]\[br]\[tb]local alpha = 0\[br]\[tb]local octave_index \[br]\[tb]for octave_index = 1, OCTAVES_COUNT do\[br]\[tb]\[tb]local size = OCTAVES[octave_index][1]\[br]\[tb]\[tb]local opacity = OCTAVES[octave_index][2]\[br]\[tb]\[tb]local noise_z = octave_index\[br]\[tb]\[tb]alpha = alpha + opacity * (2*get_perlin_noise(x, y, noise_z, size) - 1)\[br]\[tb]end\[br]\[tb]\[br]\[tb]alpha = (alpha * NORM_FACTOR + AMPLITUDE_CORRECTION_FACTOR) * \[br]\[tb]\[tb](0.5 / AMPLITUDE_CORRECTION_FACTOR)\[br]\[tb]\[br]\[tb]return blend_normal(r, g, b, a, noise_r, noise_g, noise_b, noise_a, alpha)\[br]end;"/>
			<Settings>
				<OutputType value="2"/>
				<Discrete value="false"/>
				<HDR value="true"/>
				<Seamless value="true"/>
				<Sizable value="true"/>
				<Randomizable value="true"/>
				<SafeScript value="true"/>
			</Settings>
			<NOISE source="colormapcontrol 01" red="1" green="1" blue="1" alpha="1"/>
			<BACKGROUND source="colormapcontrol 02" red="0" green="0" blue="0" alpha="1"/>
			<SCALE source="slidercontrol 01" value="1">
				<Minimum value="0"/>
				<Maximum value="1"/>
			</SCALE>
			<ROUGHNESS source="slidercontrol 02" value="0.28999999999999998">
				<Minimum value="0"/>
				<Maximum value="1"/>
			</ROUGHNESS>
			<DETAILS source="slidercontrol 03" value="1">
				<Minimum value="0"/>
				<Maximum value="1"/>
			</DETAILS>
			<NOISE_VARIATION value="8050"/>
		</ScriptMap01>
		<ColorMapControl id="colormapcontrol 01">
			<Name value-en="Noise"/>
			<ExternalImagesMode value="0"/>
			<HDRMode value="2"/>
			<HorizontalAnchor value="1"/>
			<VerticalAnchor value="1"/>
			<PlacementMode value="0"/>
			<TilingMode value="0"/>
			<Color red="0" green="0" blue="0" alpha="1"/>
			<AlphaMode value="2"/>
		</ColorMapControl>
		<ColorMapControl id="colormapcontrol 02">
			<Name value-en="Background"/>
			<ExternalImagesMode value="0"/>
			<HDRMode value="2"/>
			<HorizontalAnchor value="1"/>
			<VerticalAnchor value="1"/>
			<PlacementMode value="0"/>
			<TilingMode value="0"/>
			<Color red="1" green="1" blue="1" alpha="1"/>
			<AlphaMode value="2"/>
		</ColorMapControl>
		<SliderControl id="slidercontrol 01">
			<Name value-en="Scale"/>
			<UseRemapping value="false"/>
			<Value value="0.29999999999999999"/>
		</SliderControl>
		<SliderControl id="slidercontrol 02">
			<Name value-en="Roughness"/>
			<UseRemapping value="false"/>
			<Value value="0.5"/>
		</SliderControl>
		<SliderControl id="slidercontrol 03">
			<Name value-en="Details"/>
			<UseRemapping value="false"/>
			<Value value="1"/>
		</SliderControl>
	</Components>
	<SettingsOverride>
		<Size value="0"/>
		<Variation value="0"/>
		<Seamless value="2"/>
		<ResultBlending value="0"/>
	</SettingsOverride>
	<Presets>
		<DefaultPreset>
			<Settings size_factor="1" variation="1" seamless="true" antialiasing="2" map_type="0" edges_only="true" clip_hdr_for_result="true"/>
			<Lighting>
				<Height value="0.20000000000000001"/>
				<Environment>
					<Source value=""/>
					<Brightness value="1"/>
					<Saturation value="1"/>
					<Rotation value="0"/>
					<RotationAxis x="0" y="0" z="0"/>
				</Environment>
				<Ambience>
					<AmbientLight red="0" green="0" blue="0"/>
					<Shadowing value="0"/>
					<CurrentOcclusionSettings>
						<RayDirections value="4"/>
						<TraceDistance value="0.20000000000000001"/>
						<RayJittering value="true"/>
						<RayBounce value="true"/>
						<AvoidStreaks value="true"/>
						<DirectSamples value="0"/>
						<ROQuality value="3"/>
					</CurrentOcclusionSettings>
					<CustomOcclusionSettings>
						<RayDirections value="16"/>
						<TraceDistance value="0.29999999999999999"/>
						<RayJittering value="true"/>
						<RayBounce value="true"/>
						<AvoidStreaks value="true"/>
						<DirectSamples value="1"/>
						<ROQuality value="10"/>
					</CustomOcclusionSettings>
					<ArtisticSettings>
						<BlackPoint value="0"/>
						<Midtones value="0.5"/>
						<WhitePoint value="1"/>
					</ArtisticSettings>
				</Ambience>
			</Lighting>
			<Controls>
				<ColorMapControl id="colormapcontrol 01">
					<HorizontalAnchor value="1"/>
					<VerticalAnchor value="1"/>
					<PlacementMode value="0"/>
					<TilingMode value="0"/>
					<Color red="0" green="0" blue="0" alpha="1"/>
				</ColorMapControl>
				<ColorMapControl id="colormapcontrol 02">
					<HorizontalAnchor value="1"/>
					<VerticalAnchor value="1"/>
					<PlacementMode value="0"/>
					<TilingMode value="0"/>
					<Color red="1" green="1" blue="1" alpha="1"/>
				</ColorMapControl>
				<SliderControl id="slidercontrol 01">
					<Value value="0.29999999999999999"/>
				</SliderControl>
				<SliderControl id="slidercontrol 02">
					<Value value="0.5"/>
				</SliderControl>
				<SliderControl id="slidercontrol 03">
					<Value value="1"/>
				</SliderControl>
			</Controls>
		</DefaultPreset>
	</Presets>
	<Information author="Egret" name-en="Script API - Multi-Octave Perlin" url="" description-en="" keywords-en="" update_notes-en="" major_version="3" minor_version="1"/>
	<ControlsOrder>
		<Automatic value="false"/>
		<Items>
			<Item id="colormapcontrol 02" order="0"/>
			<Item id="colormapcontrol 01" order="1"/>
			<Item id="slidercontrol 02" order="2"/>
			<Item id="slidercontrol 03" order="3"/>
			<Item id="slidercontrol 01" order="4"/>
		</Items>
	</ControlsOrder>
	<FilterEditor>
		<ThumbnailSize value="1"/>
		<Canvas left="-135" top="-288" zoom_factor="0"/>
		<Viewport left="0" top="0" zoom_factor="1"/>
		<LockPreview>
			<Locked value="false"/>
			<LockedComponent name=""/>
		</LockPreview>
		<Item id="colormapcontrol 01">
			<Position left="496" top="-32"/>
		</Item>
		<Item id="colormapcontrol 02">
			<Position left="496" top="32"/>
		</Item>
		<Item id="result">
			<Position left="0" top="0"/>
		</Item>
		<Item id="scriptmap01 01">
			<Position left="224" top="0"/>
		</Item>
		<Item id="slidercontrol 01">
			<Position left="496" top="128"/>
		</Item>
		<Item id="slidercontrol 02">
			<Position left="496" top="192"/>
		</Item>
		<Item id="slidercontrol 03">
			<Position left="496" top="256"/>
		</Item>
	</FilterEditor>
</Filter>
