summaryrefslogtreecommitdiff
path: root/doc/classes/Sky.xml
blob: 78c75d9c2bdca35115fa4d71d3204e5ac4aef7e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?xml version="1.0" encoding="UTF-8" ?>
<class name="Sky" inherits="Resource" version="4.0">
	<brief_description>
		Background that uses a [Material] to draw a sky.
	</brief_description>
	<description>
		The [Sky] class uses a [Material] to draw the background and update the reflection/radiance cubemaps.
	</description>
	<tutorials>
	</tutorials>
	<methods>
	</methods>
	<members>
		<member name="process_mode" type="int" setter="set_process_mode" getter="get_process_mode" enum="Sky.ProcessMode" default="0">
			Sets the method for generating the radiance map from the sky. The radiance map is a cubemap with increasingly blurry versions of the sky corresponding to different levels of roughness. Radiance maps can be expensive to calculate. See [enum ProcessMode] for options.
		</member>
		<member name="radiance_size" type="int" setter="set_radiance_size" getter="get_radiance_size" enum="Sky.RadianceSize" default="3">
			The [Sky]'s radiance map size. The higher the radiance map size, the more detailed the lighting from the [Sky] will be.
			See [enum RadianceSize] constants for values.
			[b]Note:[/b] Some hardware will have trouble with higher radiance sizes, especially [constant RADIANCE_SIZE_512] and above. Only use such high values on high-end hardware.
		</member>
		<member name="sky_material" type="Material" setter="set_material" getter="get_material">
			[Material] used to draw the background. Can be [PanoramaSkyMaterial], [ProceduralSkyMaterial], [PhysicalSkyMaterial], or even a [ShaderMaterial] if you want to use your own custom shader.
		</member>
	</members>
	<constants>
		<constant name="RADIANCE_SIZE_32" value="0" enum="RadianceSize">
			Radiance texture size is 32×32 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_64" value="1" enum="RadianceSize">
			Radiance texture size is 64×64 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_128" value="2" enum="RadianceSize">
			Radiance texture size is 128×128 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_256" value="3" enum="RadianceSize">
			Radiance texture size is 256×256 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_512" value="4" enum="RadianceSize">
			Radiance texture size is 512×512 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_1024" value="5" enum="RadianceSize">
			Radiance texture size is 1024×1024 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_2048" value="6" enum="RadianceSize">
			Radiance texture size is 2048×2048 pixels.
		</constant>
		<constant name="RADIANCE_SIZE_MAX" value="7" enum="RadianceSize">
			Represents the size of the [enum RadianceSize] enum.
		</constant>
		<constant name="PROCESS_MODE_QUALITY" value="0" enum="ProcessMode">
			Uses high quality importance sampling to process the radiance map. In general, this results in much higher quality than [constant PROCESS_MODE_REALTIME] but takes much longer to generate. This should not be used if you plan on changing the sky at runtime. If you are finding that the reflection is not blurry enough and is showing sparkles or fireflies, try increasing [member ProjectSettings.rendering/quality/reflections/ggx_samples].
		</constant>
		<constant name="PROCESS_MODE_REALTIME" value="1" enum="ProcessMode">
			Uses the fast filtering algorithm to process the radiance map. In general this results in lower quality, but substantially faster run times.
			[b]Note:[/b] The fast filtering algorithm is limited to 256x256 cubemaps, so [member radiance_size] must be set to [constant RADIANCE_SIZE_256].
		</constant>
	</constants>
</class>