<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.luxcorerender.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CodeHD</id>
	<title>LuxCoreRender Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.luxcorerender.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=CodeHD"/>
	<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/Special:Contributions/CodeHD"/>
	<updated>2026-07-23T00:03:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2716</id>
		<title>LuxCore SDL Reference Manual v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2716"/>
		<updated>2026-06-07T10:51:37Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Camera */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The scene description language (SDL) is used to configure the renderer and to define objects, materials, textures etc. in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
The file ending of the render configuration file is &amp;quot;.cfg&amp;quot;, for the scene file it&#039;s &amp;quot;.scn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These files are usually created by exporter plugins, e.g. BlendLuxCore.&amp;lt;br&amp;gt;&lt;br /&gt;
This wiki page is primarily a reference for exporter developers, normal end-users should not need to edit cfg/scn files by hand.&lt;br /&gt;
&lt;br /&gt;
Sometimes the API is updated faster than the wiki, in this case you can look at the code directly: https://github.com/LuxCoreRender/LuxCore/tree/master/src/slg/scene&lt;br /&gt;
&lt;br /&gt;
Note that matrices are passed as flat lists in column-major form.&lt;br /&gt;
&lt;br /&gt;
=Render configuration file=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;resumerendering.filesafe&#039;&#039;&#039; || bool || 1 || enable/disable &amp;quot;safe save&amp;quot; mode for resume rendering file. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Seed==&lt;br /&gt;
&lt;br /&gt;
The global seed value that is used to generate random numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Two images rendered with the same seed will have the same noise pattern.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.seed&#039;&#039;&#039; || unsigned int || 1 || min 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Periodic save==&lt;br /&gt;
&lt;br /&gt;
Options related to periodic save operations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.period&#039;&#039;&#039; || float || 0 || save the resume rendering file every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.filename&#039;&#039;&#039; || string || &amp;quot;resume.rsm&amp;quot; || the name to use to save the rendering resume information periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.period&#039;&#039;&#039; || float || 0 || save the Film every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.filename&#039;&#039;&#039; || string || &amp;quot;film.flm&amp;quot; || the name to use to save the film periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.outputs.period&#039;&#039;&#039; || float || 600 || save all Film outputs every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Render Engine==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || engine type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPU Render Engines ===&lt;br /&gt;
&lt;br /&gt;
CPU render engines are written in C++ and don&#039;t require OpenCL. All CPU render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;native.threads.count&#039;&#039;&#039; || int || CPU core count || &amp;gt; 0 || &amp;gt; 0 || The number of threads will be used for the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following CPU engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A path tracer with full image plane rendering (i.e. supporting Metropolis sampler).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHCPU&amp;quot;====&lt;br /&gt;
Biased path tracer with many control options and support for tile rendering.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepath.sampling.aa.size&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, 13] || All diffuse/glossy/specular samples are multiplied with the squared aa size: final_samples = aa^2 * (diffuse^2 + glossy^2 + specular^2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.size&#039;&#039;&#039; || int || 32 || ≥ 8 || [8, 256] || Tile size in pixels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || o or 1 || Re-render the image until a halt threshold is met or indefinitely&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold&#039;&#039;&#039; || float || 6.0 / 256.0 || &amp;gt; 0.0 || [1.0 / 256.0, 6.0 / 256.0] || Target noise level&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold.reduction&#039;&#039;&#039; || float || 0.0 || [0.0, 1.0] || [0.75, 0.95] || Multiply noise level with this number when all tiles have met the previous noise level. Set to 0 to disable (so rendering will stop at the noise level)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.warmup.count&#039;&#039;&#039; || int || 32 || ≥ 0 || [8, 128] || Warm up period for the convergence test expressed in samples per pixel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A Bidirectional path tracer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a eye path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHCPU&amp;quot;====&lt;br /&gt;
Engine optimized for interactive scene editing and camera movement.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to RTPATHCPUSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same properties as [[#&amp;quot;PATHCPU&amp;quot; | &amp;quot;PATHCPU&amp;quot;]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.size&#039;&#039;&#039; || int || 4 ||  ||  || render scaled down film for the first few frames after a scene edit (to make interactions more fluid)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.weight&#039;&#039;&#039; || float || 0.1 ||  ||  || description: TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenCL Render Engines ===&lt;br /&gt;
&lt;br /&gt;
OpenCL engines can run on GPUs, CPUs and other types of computing devices, they require OpenCL to run. All OpenCL render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.platform.index&#039;&#039;&#039; || int || -1 || A valid platform index || -1 || Select the OpenCL platform to use. All devices available on all platforms will be used with -1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL CPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL GPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.devices.select&#039;&#039;&#039; || string || &amp;quot;&amp;quot; || Any valid selection string || Any valid selection string || Select each OpenCL device to use. It is a string of &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;. &amp;quot;1&amp;quot; means use the device, &amp;quot;0&amp;quot; do not&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following OpenCL engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHOCL&amp;quot;====&lt;br /&gt;
OpenCL version of PATHCPU. Supports the same settings as [[#&amp;quot;PATHCPU&amp;quot; | PATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;pathocl.pixelatomics.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable pixel atomic operation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.task.count&#039;&#039;&#039; || int || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot; or &amp;gt; 0 || [64K, 1024K] || The number of tasks sent to the OpenCL device in one kernel call&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A PATHOCL version optimized for real-time rendering with fixed frame-rate and variable quality.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;PATHOCL&amp;quot; | PATHOCL]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels in the first passes. For instance 4x4 than 2x2 and than always 1x1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview.step&#039;&#039;&#039; || int || 8 || &amp;gt; 0 || [1, 32] || Each preview step is rendered for n frames&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels, outside the preview phase, in order to reduce the per frame rendering time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
OpenCL version of TILEPATHCPU.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;TILEPATHCPU&amp;quot; | TILEPATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepathocl.devices.maxtiles&#039;&#039;&#039; || int || 16 || ≥ 1 || [1, 32] || Maximum number of tiles to send in a single call to each OpenCL device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;FILESAVER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Saves everything needed to render the scene to the output path, including textures and meshes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.format&#039;&#039;&#039; || string || &amp;quot;TXT&amp;quot; || &amp;quot;TXT&amp;quot; for a text SDL format and &amp;quot;BIN&amp;quot; for a single file binary format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.filename&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene.bcf&amp;quot; || file name for &amp;quot;BIN&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.directory&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene&amp;quot; || output path for &amp;quot;TXT&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || render engine to use when rendering the scene after it was saved with FILESAVER. Any engine string from above can be used here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Experimental and debugging engines===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These engines are experimental, deprecated or are only intended for very specific purposes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRVMCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Bidir with vertex merging, currently experimental.&amp;lt;br&amp;gt;&lt;br /&gt;
Supports the same settings as [[#&amp;quot;BIDIRCPU&amp;quot; | BIDIRCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.lightpath.count&#039;&#039;&#039; || int || 16 * 1024 || &amp;gt; 0 || || Number of lightpaths per pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.startradius.scale&#039;&#039;&#039; || float || 0.003 || &amp;gt; 0 || || Photon radius of the first pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.alpha&#039;&#039;&#039; || float || 3 || &amp;gt; 0 || [0.0, 1.0] || Photon radius is multiplied with this value after every pass to reduce the radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;LIGHTCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
For testing.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sampler==&lt;br /&gt;
&lt;br /&gt;
Samplers are used by following render engines:&lt;br /&gt;
&lt;br /&gt;
* LIGHTCPU&lt;br /&gt;
* PATHCPU&lt;br /&gt;
* BIDIRCPU&lt;br /&gt;
* BIDIRVMCPU&lt;br /&gt;
* PATHOCL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.type&#039;&#039;&#039; || string || &amp;quot;SOBOL&amp;quot; || sampler type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following samplers are available:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;SOBOL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Sampler with sobol pattern.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.sobol.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;METROPOLIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Metropolis sampler.&lt;br /&gt;
Parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.largesteprate&#039;&#039;&#039; || float || 0.4 || 0 ≤ x ≤ 1 || 0 - 1 || Probability of generating a large sample mutation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.maxconsecutivereject&#039;&#039;&#039; || int || 512 || x ≥ 0 || 0 - 32768 || Number of consecutive rejects before a next mutation is forced. Low values can cause bias&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.imagemutationrate&#039;&#039;&#039; || float || 0.1 || 0 ≤ x ≤ 1 || 0 - 1 || Maximum distance over the image plane for a small mutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;RANDOM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Fully random sampler. This sampler is mostly intended for testing purpose.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.random.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.type&#039;&#039;&#039; || string || &amp;quot;BLACKMANHARRIS&amp;quot; || || || Type of pixel filter.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.width&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Filter radius in pixels. Does not have an effect on the NONE filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.xwidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.ywidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Available filters are:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;NONE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Disable pixel filtering.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BOX&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Box pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;GAUSSIAN&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Gaussian pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.gaussian.alpha&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 10.0 || Gaussian rate of falloff. Lower values give blurrier images. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL_SS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter with super-sampling (i.e. image will be filtered first with a grid of 4 pixels for each pixel).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BLACKMANHARRIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Blcakman-Harris pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
==Light Strategy==&lt;br /&gt;
&lt;br /&gt;
The direct light sampling strategy is defined by the following property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.type&#039;&#039;&#039; || string || &amp;quot;LOG_POWER&amp;quot; || &amp;quot;UNIFORM&amp;quot;, &amp;quot;POWER&amp;quot;, &amp;quot;LOG_POWER&amp;quot; or &amp;quot;DLS_CACHE&amp;quot; || N/A || Direct light sampling strategy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;UNIFORM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;UNIFORM&amp;quot; light strategy samples evenly all light sources.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POWER&amp;quot; light strategy samples the light sources based on their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;LOG_POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;LOG_POWER&amp;quot; light strategy samples the light sources based on logarithm of their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;DLS_CACHE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Build direct light sampling cache to optimize many-lights rendering, beneficial in scenes with multiple light sources with few overlap between their influence areas (e.g. a building with many disconnected rooms and interior lights).&lt;br /&gt;
&lt;br /&gt;
Options for the DLS cache:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.radius&#039;&#039;&#039; || float || 0.0 ||  || N/A || Entry radius in meters, automatic radius estimation is used if the radius is set to 0&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.normalangle&#039;&#039;&#039; || float || 25.0 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.maxpasses&#039;&#039;&#039; || int || 1024 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.convergencethreshold&#039;&#039;&#039; || float || 0.05 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.warmupsamples&#039;&#039;&#039; || int || 24 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.targetcachehitratio&#039;&#039;&#039; || float || 0.995 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxdepth&#039;&#039;&#039; || int || 4 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxsamplescount&#039;&#039;&#039; || int || 10000000 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.file&#039;&#039;&#039; || string || &amp;quot;&amp;quot; ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.safesave&#039;&#039;&#039; || bool || 1 ||  || N/A || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator==&lt;br /&gt;
&lt;br /&gt;
The ray/triangle intersection accelerator to use for the rendering is defined by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.type&#039;&#039;&#039; || string || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot;, &amp;quot;BVH&amp;quot;, &amp;quot;MBVH&amp;quot;, &amp;quot;EMBREE&amp;quot;  || &amp;quot;AUTO&amp;quot; || The intersection accelerator. &amp;quot;AUTO&amp;quot; will select the best one available for the current [[LuxRays]] intersection device. &amp;quot;EMBREE&amp;quot; is currently usable only on CPU render engines&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.instances.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || Enable instance support (or disable in order to slightly increase rendering speed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Epsilon==&lt;br /&gt;
&lt;br /&gt;
Minimum and maximum allowed value for scene epsilon can be define by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.min&#039;&#039;&#039; || float || 1e-5f || Any float value || 1e-6f ≤ x ≤ 1e-1f || Minimum allowed value for scene epsilon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.max&#039;&#039;&#039; || float || 1e-1f || Any float value || 1e-3f ≤ x ≤ 1e+2f || Maximum allowed value for scene epsilon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Film==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; of Film serialization. A backup of the output is always valid even in the case of a system failure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film OpenCL Options===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.enable&#039;&#039;&#039; || bool || 1 || enable OpenCL film operations&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.platform&#039;&#039;&#039; || unsigned int || -1 || choose which platform  will be used by the film operations. (0 is first platform, 1 second and so on. -1 for all)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.device&#039;&#039;&#039; || unsigned int || -1 || choose which device  will be used by the film operations. (0 is first device, 1 second and so on. -1 for first GPU device)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Outputs (aka AOVs)===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; for Film outputs. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The film object supports many types of outputs (aka AOVs). The complete list of supported output types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SAMPLECOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CONVERGENCE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;NOISE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SERIALIZED_FILM&#039;&#039;&#039; || N/A&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_COLOR&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outputs are enabled with the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.type&#039;&#039;&#039; || string ||  || Type of output, e.g. &amp;quot;RGBA&amp;quot; or &amp;quot;ALPHA&amp;quot; (see the list above for the available types)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.filename&#039;&#039;&#039; || string ||  || Filename to use when saving the output. The filename should use &amp;quot;.exr&amp;quot; as extension&amp;lt;br&amp;gt; for HDR outputs and &amp;quot;.png&amp;quot; for LDR outputs (see list above for which output is HDR&amp;lt;br&amp;gt; and which LDR)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.id&#039;&#039;&#039; || int ||  || Specify for the following outputs: &#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039;,&amp;lt;br&amp;gt; &#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039;, &#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039;&amp;lt;br&amp;gt; (to choose the object ID, material ID or radiance group ID of the output)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.index&#039;&#039;&#039; || int ||  || Specify for an imagepipeline output (RGB_IMAGEPIPELINE or RGBA_IMAGEPIPELINE)&amp;lt;br&amp;gt; to select the imagepipeline of the output. For example, if you have 3 imagepipelines defined,&amp;lt;br&amp;gt; and you want to specify the output of the third imagepipeline, use 2 for the &amp;quot;.index&amp;quot; property&amp;lt;br&amp;gt; of the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Bidir engine does not support all AOVs.&lt;br /&gt;
Not supported by Bidir are: EMISSION, DIRECT_DIFFUSE, DIRECT_GLOSSY, INDIRECT_DIFFUSE, INDIRECT_GLOSSY, INDIRECT_SPECULAR, DIRECT_SHADOW_MASK, INDIRECT_SHADOW_MASK, IRRADIANCE, RAYCOUNT.&lt;br /&gt;
&lt;br /&gt;
This is the list of output channel data types and sizes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RGB||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGB_IMAGEPIPELINE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGBA||float||film width x film height x 4||R, G, B, A&lt;br /&gt;
|-&lt;br /&gt;
|ALPHA||float||film width x film height x 1||Alpha value [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DEPTH||float||film width x film height x 1||Camera distance&lt;br /&gt;
|-&lt;br /&gt;
|POSITION||float||film width x film height x 3||World X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|GEOMETRY_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|SHADING_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_DIFFUSE||float||film width x film height x 3||Diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_GLOSSY||float||film width x film height x 3||Glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|EMISSION||float||film width x film height x 3||Emission R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_DIFFUSE||float||film width x film height x 3||Indirect diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_GLOSSY||float||film width x film height x 3||Indirect glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SPECULAR||float||film width x film height x 3||Indirect specular R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_MASK||float||film width x film height x 1||Material mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|RADIANCE_GROUP||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|UV||float||film width x film height x 2||Texture coordinates U, V&lt;br /&gt;
|-&lt;br /&gt;
|RAYCOUNT||float||film width x film height x 1||Ray count&lt;br /&gt;
|-&lt;br /&gt;
|BY_MATERIAL_ID||float||film width x film height x 3||By material ID&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID||uint||film width x film height x 1||Material ID&lt;br /&gt;
|-&lt;br /&gt;
|IRRADIANCE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID_MASK||float||film width x film height x 1||Object mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|BY_OBJECT_ID||float||film width x film height x 3||By object ID&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID||uint||film width x film height x 1||Object ID&lt;br /&gt;
|-&lt;br /&gt;
|SAMPLECOUNT||uint||film width x film height x 1||Sample count&lt;br /&gt;
|-&lt;br /&gt;
|CONVERGENCE||float||film width x film height x 1||The distance of each pixel from the convergence threshold&lt;br /&gt;
|-&lt;br /&gt;
|NOISE||float||film width x film height x 1||The noise estimated for each pixel&lt;br /&gt;
|-&lt;br /&gt;
|SERIALIZED_FILM||N/A||N/A||The complete Film serialized in binary format&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_COLOR||float||film width x film height x 3||Material ID converted to colors (with anti-aliasing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Channels===&lt;br /&gt;
&lt;br /&gt;
Film channels are implicitly enabled by declaring film outputs (even if the output is never used). For instance, declaring a &amp;quot;RGBA&amp;quot; output will automatically enable &amp;quot;RADIANCE_PER_PIXEL_NORMALIZED&amp;quot; (and &amp;quot;RADIANCE_PER_SCREEN_NORMALIZED&amp;quot; for BIDIRCPU) and &amp;quot;ALPHA&amp;quot;.&lt;br /&gt;
The supported channels are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Channel type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Last element is weight ?&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED||float||film width x film height x 4||Yes||One for each radiance group. Eye paths radiance.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED||float||film width x film height x 3||No||One for each radiance group. Light paths radiance. Used only by LIGHTCPU and BIDIRCPU.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_ALPHA||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RGB_IMAGEPIPELINE||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DEPTH||float||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_POSITION||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_GEOMETRY_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_SHADING_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_GLOSSY||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_EMISSION||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SPECULAR||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_UV||float||film width x film height x 2||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RAYCOUNT||float||film width x film height||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_MATERIAL_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_IRRADIANCE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_OBJECT_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the list of channels enabled by each output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output&lt;br /&gt;
!Enabled channels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || DEPTH&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || DEPTH, POSITION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || DEPTH, GEOMETRY_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || DEPTH, SHADING_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || DEPTH, MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || DIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || DIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || EMISSION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || INDIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || INDIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || INDIRECT_SPECULAR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || MATERIAL_ID, MATERIAL_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || DIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || INDIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || DEPTH, UV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || DEPTH, RAYCOUNT&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || BY_MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || IRRADIANCE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || DEPTH, OBJECT_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || OBJECT_ID, OBJECT_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || BY_OBJECT_ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: CHANNEL_RGB_IMAGEPIPELINE is always enable and the result of running the image pipeline.&lt;br /&gt;
&lt;br /&gt;
===Image pipeline===&lt;br /&gt;
&lt;br /&gt;
It is possible to define multiple image pipelines at the same time by using the &#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&#039;&#039;&#039; properties prefix. Each image pipeline takes as input the raw rendering and is a chain off image pipeline plugins. Each plugin receives previous plugin output and produces a new output.&lt;br /&gt;
&lt;br /&gt;
====Radiance Group====&lt;br /&gt;
&lt;br /&gt;
Radiance groups are used to get only the contribution of a group of lights in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
Lights can be grouped by setting their [[#Common_parameters | &#039;&#039;&#039;.id&#039;&#039;&#039;]] property to the same number, on materials this is done with the [[#Light_emission | &#039;&#039;&#039;.emission.id&#039;&#039;&#039;]] property.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the OpenCL engines only support up to 8 radiance groups (one of them is the default group).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.globalscale&#039;&#039;&#039; || float|| 1 || global weighting of radiance group &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.temperature &#039;&#039;&#039; || float || 6500.0 || light temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.rgbscale&#039;&#039;&#039; || vector || 1.0 1.0 1.0 || light color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.radiancescales.&amp;lt;id&amp;gt;.enabled&#039;&#039;&#039; || bool || 1 || enable radiance group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Image pipeline plug-ins====&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || linear tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || tonemapping scale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_REINHARD02=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_REINHARD02&amp;quot; || reinhard tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.prescale&#039;&#039;&#039; || float || 1.0 || reinhard prescale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.postscale&#039;&#039;&#039; || float || 1.2 || reinhard postscale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.burn&#039;&#039;&#039; || float || 3.75 || reinhard burn&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_AUTOLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_AUTOLINEAR&amp;quot; || automatic linear tonemapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LUXLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LUXLINEAR&amp;quot; || linear tonemapping with real camera settings&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sensitivity&#039;&#039;&#039; || float || 100.0 || ISO sensitivity&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.exposure&#039;&#039;&#039; || float || 0.001 || exposure time&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.fstop&#039;&#039;&#039; || float || 2.8 || f/aperture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: NOP=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipeline.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;NOP&amp;quot; || no parameters tonemapper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAMMA_CORRECTION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || gamma correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.value&#039;&#039;&#039; || float || 2.2 || gamma value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.table.size&#039;&#039;&#039; || unsigned int || 4096 || resolution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OUTPUT_SWITCHER=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OUTPUT_SWITCHER&amp;quot; || overwrite output&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;DEPTH&amp;quot; || channel whose values are used to overwrite&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.index&#039;&#039;&#039; || unsigned int || 0 || index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAUSSIANFILTER_3x3=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;GAUSSIANFILTER_3x3&amp;quot; || gaussian filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.15 || blurring weight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CAMERA_RESPONSE_FUNC=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || CAMERA_RESPONSE_FUNC || analog camera film simulation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Advantix_100CD&amp;quot; || film type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: BACKGROUND_IMG=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || BACKGROUND_IMG || show the background image where alpha &amp;lt; 1 (simple compositing)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || ... || background image path (e.g scenes/simple-mat/sky.exr)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || background image gamma&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.storage &#039;&#039;&#039; || string || auto || background image storage type&lt;br /&gt;
|}&lt;br /&gt;
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.&lt;br /&gt;
&lt;br /&gt;
=====Type: BLOOM=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;BLOOM&amp;quot; || bloom effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.radius&#039;&#039;&#039; || float || 0.07 || how large the bloom effect is in % of the image size (i.e. 1.0 = all image)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.25 || how strong the effect is (i.e. 0.0 = nothing, 1.0 = max. strength)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: VIGNETTING=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;VIGNETTING&amp;quot; || vignetting effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 0.4 || vignetting strength&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_ABERRATION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_ABERRATION&amp;quot; || color aberration effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || color aberration amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: MIST=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;MIST&amp;quot; || aerial perspective effect (fake fog)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.color&#039;&#039;&#039; || spectrum|| [1, 1, 1] || mist color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || mist amount&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.startdistance&#039;&#039;&#039; || float || 0 || distance from camera until where the mist effect has zero effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.enddistance&#039;&#039;&#039; || float || 10000 || distance from camera from where the mist effect has maximum effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.excludebackground&#039;&#039;&#039; || bool || false || Do not apply mist effect on pixels with infinite distance to the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CONTOUR_LINES=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;CONTOUR_LINES&amp;quot; || contour lines for IRRADIANCE AOV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.range&#039;&#039;&#039; || float|| ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.steps&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.zerogridsize&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: WHITE_BALANCE =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;WHITE_BALANCE&amp;quot; || White temperature correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.temperature&#039;&#039;&#039; || unsigned int|| 6500 || Target image temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_LUT =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_LUT&amp;quot; || Applies .cube LUT (look-up-table) to the input&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;lut.cube&amp;quot; || Filepath to a [https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf .cube LUT file]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || Linear interpolation between input (0.0) and output (1.0) of the plugin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: INTEL_OIDN =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;INTEL_OIDN&amp;quot; || Denoises the image using [https://github.com/OpenImageDenoise/oidn Intel OIDN]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.filter.type&#039;&#039;&#039; || string || &amp;quot;RT&amp;quot; || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.oidnmemory&#039;&#039;&#039; || int || 6000 || Approximate maximum amount of memory to use in megabytes (actual memory usage may be higher). Limiting memory usage may cause slower denoising due to internally splitting the image into overlapping tiles&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OPTIX_DENOISER =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OPTIX_DENOISER&amp;quot; || Denoises the image using the Nvidia OptiX denoiser&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.minspp&#039;&#039;&#039; || unsigned int || 0 || Minimum amount of samples to be rendered before the plugin is run (at lower sample numbers, it does not modify the input)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Subregion===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.subregion&#039;&#039;&#039; || vector || ... || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Rendering halt conditions===&lt;br /&gt;
&lt;br /&gt;
By default, a LuxCore rendering will never stop however you can enable one or multiple halt conditions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold&#039;&#039;&#039; || float || -1.0 || enable image convergence test and stops when the error is under the defined value. Use a value like &amp;quot;n / 256.0&amp;quot; where n is the level of error you are looking for. It may be hard to achieve a level of error smaller than 3.0 / 256.0. -1.0 disables the halt condition.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.warmup&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.step&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.filter.enable&#039;&#039;&#039; || bool || 1 || if the CONVERGENCE AOV (generated by the batch.haltnoisethreshold) should be filtered or not with a 3x3 box filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.stoprendering.enable&#039;&#039;&#039; || bool || 1 || Set this to 0 (false) if you only want to use the haltnoisethreshold settings for adaptive sampling in an endless render&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for stopping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.halttime&#039;&#039;&#039; || float || 0.0 || number of seconds before stopping the rendering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltspp&#039;&#039;&#039; || unsigned int || 0 || number of average samples per pixel before stopping the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Noise estimation===&lt;br /&gt;
&lt;br /&gt;
Image noise can be estimated and its result can be used to drive the Sobol and Random samplers to focus its sampling in the noisier regions.&lt;br /&gt;
Setting any of these properties will enable the noise estimation.&lt;br /&gt;
The adaptiveness strength is a Sampler property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.warmup&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.step&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.filter.scale&#039;&#039;&#039; || unsigned int || 4 || Box filter scale used to filter the NOISE AOV (generated by the noise estimation). Set to 0 to disable.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for adaptive sampling&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Scene file=&lt;br /&gt;
&lt;br /&gt;
==Camera==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;orthographic&amp;quot;, &amp;quot;environment&amp;quot; (360° panorama &amp;lt;br&amp;gt; mapped in latlong format) or &amp;quot;stereo&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.orig&#039;&#039;&#039; || point (float float float) || 0.0 10.0 0.0 || camera location&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.target&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || camera target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.up&#039;&#039;&#039; || vector (float float float) || (0.0, 0.0, 1.0) || camera up vector&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.fieldofview&#039;&#039;&#039; || float || 45.0 || field of view&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutteropen&#039;&#039;&#039; || float || 0.0 || camera shutter open time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutterclose&#039;&#039;&#039; || float || 0.0 || camera shutter close time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autovolume.enable&#039;&#039;&#039; || bool || true || try automatically to discover scene.camera.volume&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.volume&#039;&#039;&#039; || string ||  || the initial volume rays will travel in&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.cliphither&#039;&#039;&#039; || float || 1e-3 || Near clipping distance&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clipyon&#039;&#039;&#039; || float || 1e30 || Far clipping distance&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.screenwindow&#039;&#039;&#039; || list (float float float float) || 0.0 1.0 0.0 1.0 || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;environment&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.type&#039;&#039;&#039; || string || NONE || &amp;quot;NONE&amp;quot;, &amp;quot;UNIFORM&amp;quot;, &amp;quot;EXPONENTIAL&amp;quot;, &amp;quot;INVERSEEXPONENTIAL&amp;quot;, &amp;quot;GAUSSIAN&amp;quot;, &amp;quot;INVERSEGAUSSIAN&amp;quot;, &amp;quot;TRIANGULAR&amp;quot;, &amp;quot;CUSTOM&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.blades&#039;&#039;&#039; || int || 0 || Number of aperture blades&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.power&#039;&#039;&#039; || int || 3 || Distribution factor, only for &amp;quot;EXPONENTIAL&amp;quot; and &amp;quot;INVERSEEXPONENTIAL&amp;quot; types&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.image&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || only if type == &amp;quot;CUSTOM&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scalex&#039;&#039;&#039; || float || 1.0 || Horizontal scale of the Bokeh&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scaley&#039;&#039;&#039; || float || 1.0 || Vertical scale of the Bokeh&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.stereo.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;environment_180&amp;quot;, &amp;quot;environment_360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.eyesdistance&#039;&#039;&#039; || float || 0.0626 || Distance between the individual cameras&amp;lt;br&amp;gt;(Only for &amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensdistance&#039;&#039;&#039; || float || 0.2779 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.oculusrift.barrelpostpro.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.environment.degrees&#039;&#039;&#039; || float || 360.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;environment&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensradius&#039;&#039;&#039; || float || 0.0 || Radius of the lens aperture, used for bokeh calculation&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.focaldistance&#039;&#039;&#039; || float || 10.0 || Distance to the lens focus point, used for bokeh calculation&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autofocus.enable&#039;&#039;&#039; || bool || false || Apply autofocus, automatically determines &amp;quot;focaldistance&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.enable&#039;&#039;&#039; || bool || false || Activates clipping plane&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.center&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || Specifies one point in the clipping plane&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.normal&#039;&#039;&#039; || vector (float float float) || 0.0 0.0 0.0 || Specififes the normal vector of the clipping plane&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The camera supports motion blur. See [[ LuxCore_SDL_Reference_Manual_v2.0#Object_Motion_Blur | Object Motion Blur ]].&amp;lt;br&amp;gt;&lt;br /&gt;
(Only difference being that instead of the prefix &#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;&#039;&#039;&#039;, the prefix &#039;&#039;&#039;scene.camera&#039;&#039;&#039; is used when setting motion properties of the camera)&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Textures|LuxCoreRender Textures]] for a high level description and examples of the textures.&lt;br /&gt;
&lt;br /&gt;
===Mapping===&lt;br /&gt;
&lt;br /&gt;
Some texture (mostly procedural textures) supports 2D or 3D mapping parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping2d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.rotation&#039;&#039;&#039; || float || 0.0 || UV rotation (in degrees)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvscale&#039;&#039;&#039; || UV || 1.0 1.0 || UV scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvdelta&#039;&#039;&#039; || UV || 0.0 0.0 || UV translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;globalmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: add===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;add&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: subtract===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subtract&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: band===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;band&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5|| texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.interpolation&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot;|| &amp;quot;linear&amp;quot;, &amp;quot;cubic&amp;quot; or &amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset[0..n]&#039;&#039;&#039; || float || 0.0 || multiple offsets in the range of [0.0, 1.0]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value[0..n]&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || a value for each offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_blend===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_blend&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.progressiontype&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot; || linear, quadratic, easing, diagonal, spherical, quadratic_spherical, halo or radial&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.direction&#039;&#039;&#039; || string || &amp;quot;horizontal&amp;quot; || horizontal or vertical&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_clouds===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_clouds&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || hard_noise or soft_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1, voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1, voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_distortednoise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_distortednoise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noise_distortion&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distortion&#039;&#039;&#039; || float || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_magic===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_magic&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_marble===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.marbletype&#039;&#039;&#039; || string || &amp;quot;soft&amp;quot; || soft, sharp or sharper&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_musgrave===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_musgrave&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.musgravetype&#039;&#039;&#039; || string || &amp;quot;multifractal&amp;quot; || multifractal, ridged_multifractal, hybrid_multifractal, fBM or hetero_terrain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.dimension&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.lacunarity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_noise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_noise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_stucci===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_stucci&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.stuccitype&#039;&#039;&#039; || string || &amp;quot;plastic&amp;quot; || plastic, wall_in or wall_out&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_wood===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || bands, rings, bandnoise or ringnoise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_voronoi===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_voronoi&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distmetric&#039;&#039;&#039; || string || &amp;quot;actual_distance&amp;quot; || actual_distance, distance_squared, manhattan,&amp;lt;br&amp;gt; chebychev, minkowski_half, minkowski_four or minkowski&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w1&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w2&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w3&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w4&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: brick===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;brick&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bricktex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortartex&#039;&#039;&#039; || texture || 0.2 0.2 0.2 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodtex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodbias&#039;&#039;&#039; || float || 0.0 || With bias = -1, only the bricktex is used for the brick color. With bias between -1 and 1, a pseudo-random interpolation between bricktex and brickmodtex is used as brick color. With bias = 1, only the brickmodtex is used for the brick color.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickbond&#039;&#039;&#039; || string || &amp;quot;running&amp;quot; || &amp;quot;flemish&amp;quot;, &amp;quot;english&amp;quot;, &amp;quot;herringbone&amp;quot;, &amp;quot;basket&amp;quot; or &amp;quot;chain link&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickwidth&#039;&#039;&#039; || float || 0.3 || brick width&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickheight&#039;&#039;&#039; || float || 0.1 || brick height&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickdepth&#039;&#039;&#039; || float || 0.15 || brick depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortarsize&#039;&#039;&#039; || float || 0.01 ||mortar size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickrun&#039;&#039;&#039; || float || 0.75 || brick run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard3d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard3d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard2d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard2d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat1&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || float || 1.0 || constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || spectrum || (1.0, 1.0, 1.0) || RGB constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: densitygrid===&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;.data&amp;quot;, &amp;quot;.data3&amp;quot; or &amp;quot;.openvdb.file&amp;quot; to define the 3D grid values.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;densitygrid&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nx&#039;&#039;&#039; || unsigned int || || grid x size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.ny&#039;&#039;&#039; || unsigned int || || grid y size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nz&#039;&#039;&#039; || unsigned int || || grid z size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;half&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data3&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz * 3)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.file&#039;&#039;&#039; || string || || OpenVDB file name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.grid&#039;&#039;&#039; || string || || OpenVDB grid name to read from the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dots===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dots&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.inside&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.outside&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fbm===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fbm&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxk===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxk&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxn===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxn&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointalpha===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices alphas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointalpha&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointcolor===&lt;br /&gt;
&lt;br /&gt;
Use the color obtained by interpolating triangle vertices colors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointgrey===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices colors, mapped to a float value (RGB converted into greyscale).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointgrey&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || -1 || the index of the RGB channel to use. -1 means the luminance of the RGB value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hsv===&lt;br /&gt;
&lt;br /&gt;
Hue saturation value manipulation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hsv&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input color that will be manipulated&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.hue&#039;&#039;&#039; || texture || 0.5 || shift in hue (range: 0..1)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.saturation&#039;&#039;&#039; || texture || 1.0 || saturation (range: 0..inf)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 1.0 || brightness multiplier (range: 0..inf)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: imagemap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;imagemap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || name of the image file&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction value used in the image&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 || image values are multiplied by gain value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of image map wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;default&amp;quot; || extract from the image only the selected channels:&amp;lt;br&amp;gt; &amp;quot;default&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;blue&amp;quot;,&amp;lt;br&amp;gt; &amp;quot;alpha&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;colored_mean&amp;quot;, &amp;quot;rgb&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: normalmap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;normalmap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input. Is treated as an XYZ vector in tangent space.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || multiplier for adjusting normalmap height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: marble===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || marble scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.variation&#039;&#039;&#039; || float || 0.2 || marble variation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: scale===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;scale&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: uv===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: windy===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wood===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || &amp;quot;bands&amp;quot;, &amp;quot;rings&amp;quot;, &amp;quot;bandnoise&amp;quot; or &amp;quot;ringnoise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || &amp;quot;sin&amp;quot;, &amp;quot;saw&amp;quot; or &amp;quot;tri&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || &amp;quot;soft_noise&amp;quot; or &amp;quot;hard_noise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || noise size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 || noise turbulence&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 || bright&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 || contrast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wrinkled===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wrinkled&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: abs===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;abs&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: clamp===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;clamp&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.min&#039;&#039;&#039; || float || 0.0 || lower boundary of the clamping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.max&#039;&#039;&#039; || float || 1.0 || upper boundary of the clamping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: divide===&lt;br /&gt;
&lt;br /&gt;
Note: If texture2 (the divisor) is 0, 0 is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;divide&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant (dividend)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant (divisor)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: remap===&lt;br /&gt;
&lt;br /&gt;
This texture brings the value from the source range into the target range. &lt;br /&gt;
&lt;br /&gt;
Note: The value is clamped into source range before performing the remap operation, and the resulting number is also clamped into the target range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;remap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectid===&lt;br /&gt;
&lt;br /&gt;
Raw object ID (range 0 to 0xfffffffe).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectid&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidcolor===&lt;br /&gt;
&lt;br /&gt;
Object ID interpreted as color.&amp;lt;br&amp;gt;&lt;br /&gt;
The object ID is a 4 byte unsigned int. To convert to color, the lower three bytes are interpreted as r, g, b values (each range 0 to 255). The highest byte is ignored.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidnormalized===&lt;br /&gt;
&lt;br /&gt;
Normalized object ID (range 0 to 1).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidnormalized&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dotproduct ===&lt;br /&gt;
&lt;br /&gt;
Dot product of the two input vectors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dotproduct&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: power ===&lt;br /&gt;
&lt;br /&gt;
pow(base, exponent)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;power&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.base&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.exponent&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lessthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;lt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lessthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: greaterthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;gt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;greaterthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: shadingnormal ===&lt;br /&gt;
&lt;br /&gt;
Returns the shading normal of the mesh at the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;shadingnormal&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: position ===&lt;br /&gt;
&lt;br /&gt;
Returns the position of the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;position&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: splitfloat3 ===&lt;br /&gt;
&lt;br /&gt;
Extract a channel from a float3 texture. Can for example be used to get the R, G or B channel of a color texture, or to get the X, Y or Z components of a vector texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;splitfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || 0 || the channel to get from the input texture. 0 for first channel, 1 for second, 2 for third channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: makefloat3 ===&lt;br /&gt;
&lt;br /&gt;
Combine three float textures into one float3 texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;makefloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture3&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: blackbody===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blackbody&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.temperature&#039;&#039;&#039; || float || 6500 || emission temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.normalize&#039;&#039;&#039; || bool || false || normalize the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: irregulardata===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;irregulardata&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wavelengths&#039;&#039;&#039; || vector || 580.0 620.0 660.0|| wavelenghts&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || vector || 0.0 0.000015 0.0|| data (length should match wavelength&#039;s length)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lampspectrum===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lampspectrum&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Daylight&amp;quot; || lamp light spectrum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: Fresnel Textures===&lt;br /&gt;
&lt;br /&gt;
Textures for loading optical data&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelcolor====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelcolor || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.kr&#039;&#039;&#039; || vector || 0.5 0.0 0.0 || reflection color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelpreset====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || aluminium || fresnel preset (&amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelsopra====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Au.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelluxpop====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Cr.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: distort====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || distort || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0.0 || texture name or constant; input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || texture || 0.0 || texture name or constant; offset to add to the hitpoint coordinates and UV values before evaluating the input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || strength multiplier, is multiplied with the offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Volumes|LuxCoreRender Volumes]] for a high level description and examples of the volumes.&lt;br /&gt;
&lt;br /&gt;
All volumes share these properties&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.priority&#039;&#039;&#039; || unsigned int|| 0|| volume priority (when volumes overlap, the one with highest priority overrides the others)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.ior&#039;&#039;&#039; || texture|| ... || index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.absorption&#039;&#039;&#039; ||  texture || ... || absorption texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission &#039;&#039;&#039; ||  texture || ... || emission &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission.id &#039;&#039;&#039; || unsigned int || ... || emission ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Clear===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Homogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || homogeneous|| volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Heterogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || heterogeneous || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.size&#039;&#039;&#039; || float || ... || step size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.maxcount&#039;&#039;&#039; || unsigned int || ... || step maximum count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Materials==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Materials|LuxCoreRender Materials]] for a high level description and examples of the materials.&lt;br /&gt;
&lt;br /&gt;
===Common properties===&lt;br /&gt;
&lt;br /&gt;
Common material properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumptex&#039;&#039;&#039; || texture || || texture to use for the bump mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.normaltex&#039;&#039;&#039; || texture || || texture to use for the normal mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || number of rays used to sample this material. -1 means use the default global value. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumpsamplingdistance&#039;&#039;&#039; || float || 0.001 || set the offset used to sample bump/normal mapping.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.interior&#039;&#039;&#039; || string || vol1 || name of interior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.exterior&#039;&#039;&#039; || string || vol2 || name of exterior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.id&#039;&#039;&#039; || int|| ... || material id&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.transparency&#039;&#039;&#039; || texture || 1.0 || transparency of the material. 1 for opaque, 0 for fully transparent&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.shadowcatcher.enable&#039;&#039;&#039; || bool || false || If true, the material will be transparent where hit by direct light and opaque otherwise (alpha transparency). Used for compositing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Normal maps====&lt;br /&gt;
Normal maps are set first as a texture type and then assigned to the material. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scene.textures.normmap.type = imagemap&lt;br /&gt;
scene.textures.normmap.file = scenes/bump/normal.png&lt;br /&gt;
scene.textures.normmap.gamma = 1&lt;br /&gt;
&lt;br /&gt;
scene.materials.mat_white.type = matte&lt;br /&gt;
scene.materials.mat_white.kd = 0.8 0.8 0.8&lt;br /&gt;
scene.materials.mat_white.normaltex = normmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Light emission====&lt;br /&gt;
&lt;br /&gt;
All materials can emit light:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || color of the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || multiplier for lamp brigthness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesblob&#039;&#039;&#039; || blob || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light from this material. &amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.theta&#039;&#039;&#039; || float || 90.0 || How directional the light is emitted, set as the half-angle of the light source. Default is 90°.&amp;lt;br&amp;gt; Smaller values mean that more light is emitted in the direction of the face normals and less to the sides.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light source compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: archglass===&lt;br /&gt;
&lt;br /&gt;
This material should be used to replace glass material of windows when rendering architectural interiors. It allows direct light to pass trough.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;archglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: carpaint===&lt;br /&gt;
&lt;br /&gt;
Car Paint is an advanced glossy material, simulating a diffuse surface with mutliple reflective coatings.&lt;br /&gt;
&lt;br /&gt;
The available presets for the carpaint material are:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;ford f8&amp;quot;&lt;br /&gt;
*&amp;quot;polaris silber&amp;quot;&lt;br /&gt;
*&amp;quot;opel titan&amp;quot;&lt;br /&gt;
*&amp;quot;bmw339&amp;quot;&lt;br /&gt;
*&amp;quot;2k acrylack&amp;quot;&lt;br /&gt;
*&amp;quot;white&amp;quot;&lt;br /&gt;
*&amp;quot;blue&amp;quot;&lt;br /&gt;
*&amp;quot;blue matte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;carpaint&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;ford f8&amp;quot; || one of the avilable presets&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || absorption color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || absorption depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || diffuse color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: cloth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;cloth&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;denim&amp;quot; || denim, silk_charmeuse, silk_shantung, cotton_twill, wool_garbardine or polyester_lining_cloth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_u&#039;&#039;&#039; || float || 100.0 || thread count in the u direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_v&#039;&#039;&#039; || float || 100.0 || thread count in the v direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: disney===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;disney&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.basecolor&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || Base color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.subsurface&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.roughness&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.metallic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.specular&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.speculartint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoat&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoatgloss&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.anisotropic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheen&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheentint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmamount&#039;&#039;&#039; || texture || none || Linear interpolation between no film (0) and full film effect (1) for artistic control.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.cauchyb&#039;&#039;&#039; || texture || 0.0 || if defined and &amp;gt; 0.0, enable dispersion. The value is the B term of the [https://en.wikipedia.org/wiki/Cauchy%27s_equation Cauchy&#039;s equation]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossy2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossy2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossytranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossytranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmission color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks_bf&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant backface specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of backface coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d_bf&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the backface depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the backface coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce_bf&#039;&#039;&#039; || bool || false || backface simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossycoating===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossycoating&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.base&#039;&#039;&#039; || string || || name of base material, the coating layer is added on top of this material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: matte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;matte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the matte material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mattetranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mattetranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmitted color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: metal2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;metal2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.fresnel&#039;&#039;&#039; || fresnel texture || ... || [[#Type:_Fresnel_Textures | fresnel texture]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;aluminium&amp;quot; || (DEPRECATED) &amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.n&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxn texture on overwrite the .preset property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.k&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxk texture on overwrite the .preset property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mirror===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mirror&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
This material can be used to mix 2 other materials.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material1&#039;&#039;&#039; || string || mat1 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material2&#039;&#039;&#039; || string || mat2 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture or constant value used to mix the materials&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: null===&lt;br /&gt;
&lt;br /&gt;
This is empty, not visible material. It can be combined by using mix material with others. It is often used in combination with the alpha channel of an image map to render leafs, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;null&amp;quot; || type of material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughglass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughmatte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughmatte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the roughmatte material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sigma&#039;&#039;&#039; || texture || 0.0 || the sigma parameter in the Oren-Nayer shader in degrees. Zero for pure Lambertian reflection&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: velvet===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;velvet&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || color of the material&#039;s fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p1&#039;&#039;&#039; || texture || -2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p2&#039;&#039;&#039; || texture || 20.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p3&#039;&#039;&#039; || texture || 2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.thickness&#039;&#039;&#039; || texture || 0.1 || height of the fuzz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.material&#039;&#039;&#039; || string || || type of object material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.shape&#039;&#039;&#039; || string || || name of [[#Shapes | shape]] with the triangle mesh description.Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same shape, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.ply&#039;&#039;&#039; || string || || &#039;&#039;&#039;(Deprecated, use .shape instead)&#039;&#039;&#039; name of [http://en.wikipedia.org/wiki/PLY_(file_format) PLY] file with the triangle mesh description.&amp;lt;br&amp;gt;Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same file, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.vertices&#039;&#039;&#039; || float || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of float values defining the vertices of the mesh (i.e. 3 coordinates for each vertex).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.faces&#039;&#039;&#039; || unsigned int || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of unsigned int values defining the triangles of the mesh (i.e. 3 index of vertices for each triangle).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.id&#039;&#039;&#039; || unsigned int || || object ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.camerainvisible&#039;&#039;&#039; || bool || false || toggle visibility for camera rays. If set to true, the object will not show up in camera rays, but it will still be visible in reflections, refractions, shadows, indirect light etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Object Motion Blur===&lt;br /&gt;
&lt;br /&gt;
LuxCore supports transformation motion blur for objects.&lt;br /&gt;
Motion blur is enabled if an object has a motion system defined as described below.&lt;br /&gt;
&lt;br /&gt;
A motion system consists of steps (at least 2). Each step has a time (in seconds) and a transformation matrix of the object at this point in time.&lt;br /&gt;
Step indices start at 0. The times have to be monotonic (each greater than the last).&lt;br /&gt;
&lt;br /&gt;
Note that the embree accelerator only supports a maximum of 129 time steps.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.time&#039;&#039;&#039; || float || || time (in seconds) of the step&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix of the object at the given step&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Shapes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: mesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mesh&amp;quot; || mesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.ply&#039;&#039;&#039; || string || ... || mesh path (e.g &#039;&#039;scenes/luxball/luxball-shell.ply&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: inlinedmesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;inlinedmesh&amp;quot; || inlinedmesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.vertices&#039;&#039;&#039; || vector || ... || inlinedmesh vertices (e.g 0.0 0.0 0.0  1.0 0.0 0.0  0.0 1.0 0.0)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.faces&#039;&#039;&#039; || vector || ... || inlinedmesh faces (e.g 0 1 2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: pointiness===&lt;br /&gt;
&lt;br /&gt;
Contains surface curvature information in vertex alpha channel.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access this information in materials via a hitpointalpha texture.&amp;lt;br&amp;gt;&lt;br /&gt;
The values range from -1 to 1 (float).&amp;lt;br&amp;gt;&lt;br /&gt;
Values from -1 to 0 are concave, while values from 0 to 1 are convex.&lt;br /&gt;
&lt;br /&gt;
[[ Shape:_Pointiness | Examples ]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;pointiness&amp;quot; || pointiness shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || pointiness source (a mesh shape)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: strands===&lt;br /&gt;
&lt;br /&gt;
Can be used for hair, fur, grass etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you need to define the camera before defining any strands shapes, because the tesselation process is viewpoint-dependent.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;strands&amp;quot; || strands shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.file&#039;&#039;&#039; || string || ... || strands file (&#039;&#039;scenes/strands/straight.hair&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Strands tessellation methods====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbon&amp;quot; || ribbon tessellation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.usecameraposition&#039;&#039;&#039; || bool || 1 || use camera position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbonadaptive&amp;quot; || ribbon adaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.maxdepth&#039;&#039;&#039; || unsigned int || 12 || max tessellation depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.error &#039;&#039;&#039; || float || 0.0075 || max tessellation error &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solid&amp;quot; || solid tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solid.sidecount &#039;&#039;&#039; || unsigned int || 12 || tessellation&#039;s side count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solidadaptive&amp;quot; || solidadaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.sidecount &#039;&#039;&#039; || unsigned int || 8 || tessellation&#039;s side count&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.maxdepth&#039;&#039;&#039; || unsigned int || 16 || tessellation&#039;s max depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.error&#039;&#039;&#039; || float || 0.05 || tessellation&#039;s max error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: group===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: displacement===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: subdiv===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subdiv&amp;quot; || subdivided shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || source mesh name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxlevel&#039;&#039;&#039; || unsigned integer || 2 || maximum level of subdivision&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxedgescreensize&#039;&#039;&#039; || float || 0.0 || maximum edge screen size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.adaptive&#039;&#039;&#039; || bool || 1 || Adaptive refinement / Uniform refinement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: harlequin===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: simplify===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: islandaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: randomtriangleaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
==Light sources==&lt;br /&gt;
&lt;br /&gt;
Check [[Lighting|LuxCoreRender Lighting]] for an high level description and example of the light sources.&lt;br /&gt;
&lt;br /&gt;
===Common parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || intensity of the light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light for this light source.&amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sun===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sun&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.relsize&#039;&#039;&#039; || float || 1.0 || relative size to the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sky2===&lt;br /&gt;
&lt;br /&gt;
Hosek-Wilkie sky model.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sky2&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || vector || ... || gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.groundalbedo&#039;&#039;&#039; || vector || 0.5 0.5 0.5 || ground albedo&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.enable&#039;&#039;&#039; || bool || 1 || enable ground color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.color&#039;&#039;&#039; || vector|| ... || RGB ground color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: infinite===&lt;br /&gt;
&lt;br /&gt;
Spherical lightsource surrounding the scene at infinite distance.&amp;lt;br&amp;gt;&lt;br /&gt;
Used for image based lighting (IBL) and HDR environment lighting if the file is a high dynamic range image.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;infinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || filename of the environment map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction used by the image map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || environment map storage type (&amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot; or &amp;quot;float&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.sampleupperhemisphereonly&#039;&#039;&#039; || bool || false || an option set to black the lower hemisphere. Mostly useful for shadow catchers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: point===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;point&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mappoint===&lt;br /&gt;
&lt;br /&gt;
Point light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mappoint&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sphere===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mapsphere===&lt;br /&gt;
&lt;br /&gt;
Sphere light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mapsphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: spot===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;spot&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.coneangle&#039;&#039;&#039; || float || 30.0 || angle in degrees of the spotlight cone&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.conedeltaangle&#039;&#039;&#039; || float || 5.0 || angle at which the spotlight intensity starts to fade from the edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: projection===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;projection&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.fov&#039;&#039;&#039; || float || 45.0 || field of view in terms of angular spread along the shorter image axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || filename of the image to project. If not specified, a constat light color will be used.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constantinfinite===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constantinfinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sharpdistant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sharpdistant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: distant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;distant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.theta&#039;&#039;&#039; || float || 10.0 || half angle of the light source in degree. Must be &amp;gt; 0 for soft shadows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: laser===&lt;br /&gt;
&lt;br /&gt;
A light source emitting parallel light rays (like sharpdistant light, but starting inside the scene instead of infinitely far away).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;laser&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 0.01 || radius of the laser beam&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2715</id>
		<title>LuxCore SDL Reference Manual v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2715"/>
		<updated>2026-06-07T10:20:09Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Camera */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The scene description language (SDL) is used to configure the renderer and to define objects, materials, textures etc. in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
The file ending of the render configuration file is &amp;quot;.cfg&amp;quot;, for the scene file it&#039;s &amp;quot;.scn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These files are usually created by exporter plugins, e.g. BlendLuxCore.&amp;lt;br&amp;gt;&lt;br /&gt;
This wiki page is primarily a reference for exporter developers, normal end-users should not need to edit cfg/scn files by hand.&lt;br /&gt;
&lt;br /&gt;
Sometimes the API is updated faster than the wiki, in this case you can look at the code directly: https://github.com/LuxCoreRender/LuxCore/tree/master/src/slg/scene&lt;br /&gt;
&lt;br /&gt;
Note that matrices are passed as flat lists in column-major form.&lt;br /&gt;
&lt;br /&gt;
=Render configuration file=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;resumerendering.filesafe&#039;&#039;&#039; || bool || 1 || enable/disable &amp;quot;safe save&amp;quot; mode for resume rendering file. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Seed==&lt;br /&gt;
&lt;br /&gt;
The global seed value that is used to generate random numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Two images rendered with the same seed will have the same noise pattern.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.seed&#039;&#039;&#039; || unsigned int || 1 || min 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Periodic save==&lt;br /&gt;
&lt;br /&gt;
Options related to periodic save operations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.period&#039;&#039;&#039; || float || 0 || save the resume rendering file every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.filename&#039;&#039;&#039; || string || &amp;quot;resume.rsm&amp;quot; || the name to use to save the rendering resume information periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.period&#039;&#039;&#039; || float || 0 || save the Film every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.filename&#039;&#039;&#039; || string || &amp;quot;film.flm&amp;quot; || the name to use to save the film periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.outputs.period&#039;&#039;&#039; || float || 600 || save all Film outputs every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Render Engine==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || engine type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPU Render Engines ===&lt;br /&gt;
&lt;br /&gt;
CPU render engines are written in C++ and don&#039;t require OpenCL. All CPU render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;native.threads.count&#039;&#039;&#039; || int || CPU core count || &amp;gt; 0 || &amp;gt; 0 || The number of threads will be used for the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following CPU engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A path tracer with full image plane rendering (i.e. supporting Metropolis sampler).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHCPU&amp;quot;====&lt;br /&gt;
Biased path tracer with many control options and support for tile rendering.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepath.sampling.aa.size&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, 13] || All diffuse/glossy/specular samples are multiplied with the squared aa size: final_samples = aa^2 * (diffuse^2 + glossy^2 + specular^2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.size&#039;&#039;&#039; || int || 32 || ≥ 8 || [8, 256] || Tile size in pixels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || o or 1 || Re-render the image until a halt threshold is met or indefinitely&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold&#039;&#039;&#039; || float || 6.0 / 256.0 || &amp;gt; 0.0 || [1.0 / 256.0, 6.0 / 256.0] || Target noise level&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold.reduction&#039;&#039;&#039; || float || 0.0 || [0.0, 1.0] || [0.75, 0.95] || Multiply noise level with this number when all tiles have met the previous noise level. Set to 0 to disable (so rendering will stop at the noise level)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.warmup.count&#039;&#039;&#039; || int || 32 || ≥ 0 || [8, 128] || Warm up period for the convergence test expressed in samples per pixel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A Bidirectional path tracer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a eye path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHCPU&amp;quot;====&lt;br /&gt;
Engine optimized for interactive scene editing and camera movement.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to RTPATHCPUSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same properties as [[#&amp;quot;PATHCPU&amp;quot; | &amp;quot;PATHCPU&amp;quot;]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.size&#039;&#039;&#039; || int || 4 ||  ||  || render scaled down film for the first few frames after a scene edit (to make interactions more fluid)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.weight&#039;&#039;&#039; || float || 0.1 ||  ||  || description: TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenCL Render Engines ===&lt;br /&gt;
&lt;br /&gt;
OpenCL engines can run on GPUs, CPUs and other types of computing devices, they require OpenCL to run. All OpenCL render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.platform.index&#039;&#039;&#039; || int || -1 || A valid platform index || -1 || Select the OpenCL platform to use. All devices available on all platforms will be used with -1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL CPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL GPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.devices.select&#039;&#039;&#039; || string || &amp;quot;&amp;quot; || Any valid selection string || Any valid selection string || Select each OpenCL device to use. It is a string of &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;. &amp;quot;1&amp;quot; means use the device, &amp;quot;0&amp;quot; do not&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following OpenCL engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHOCL&amp;quot;====&lt;br /&gt;
OpenCL version of PATHCPU. Supports the same settings as [[#&amp;quot;PATHCPU&amp;quot; | PATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;pathocl.pixelatomics.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable pixel atomic operation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.task.count&#039;&#039;&#039; || int || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot; or &amp;gt; 0 || [64K, 1024K] || The number of tasks sent to the OpenCL device in one kernel call&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A PATHOCL version optimized for real-time rendering with fixed frame-rate and variable quality.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;PATHOCL&amp;quot; | PATHOCL]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels in the first passes. For instance 4x4 than 2x2 and than always 1x1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview.step&#039;&#039;&#039; || int || 8 || &amp;gt; 0 || [1, 32] || Each preview step is rendered for n frames&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels, outside the preview phase, in order to reduce the per frame rendering time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
OpenCL version of TILEPATHCPU.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;TILEPATHCPU&amp;quot; | TILEPATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepathocl.devices.maxtiles&#039;&#039;&#039; || int || 16 || ≥ 1 || [1, 32] || Maximum number of tiles to send in a single call to each OpenCL device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;FILESAVER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Saves everything needed to render the scene to the output path, including textures and meshes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.format&#039;&#039;&#039; || string || &amp;quot;TXT&amp;quot; || &amp;quot;TXT&amp;quot; for a text SDL format and &amp;quot;BIN&amp;quot; for a single file binary format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.filename&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene.bcf&amp;quot; || file name for &amp;quot;BIN&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.directory&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene&amp;quot; || output path for &amp;quot;TXT&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || render engine to use when rendering the scene after it was saved with FILESAVER. Any engine string from above can be used here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Experimental and debugging engines===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These engines are experimental, deprecated or are only intended for very specific purposes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRVMCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Bidir with vertex merging, currently experimental.&amp;lt;br&amp;gt;&lt;br /&gt;
Supports the same settings as [[#&amp;quot;BIDIRCPU&amp;quot; | BIDIRCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.lightpath.count&#039;&#039;&#039; || int || 16 * 1024 || &amp;gt; 0 || || Number of lightpaths per pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.startradius.scale&#039;&#039;&#039; || float || 0.003 || &amp;gt; 0 || || Photon radius of the first pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.alpha&#039;&#039;&#039; || float || 3 || &amp;gt; 0 || [0.0, 1.0] || Photon radius is multiplied with this value after every pass to reduce the radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;LIGHTCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
For testing.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sampler==&lt;br /&gt;
&lt;br /&gt;
Samplers are used by following render engines:&lt;br /&gt;
&lt;br /&gt;
* LIGHTCPU&lt;br /&gt;
* PATHCPU&lt;br /&gt;
* BIDIRCPU&lt;br /&gt;
* BIDIRVMCPU&lt;br /&gt;
* PATHOCL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.type&#039;&#039;&#039; || string || &amp;quot;SOBOL&amp;quot; || sampler type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following samplers are available:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;SOBOL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Sampler with sobol pattern.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.sobol.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;METROPOLIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Metropolis sampler.&lt;br /&gt;
Parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.largesteprate&#039;&#039;&#039; || float || 0.4 || 0 ≤ x ≤ 1 || 0 - 1 || Probability of generating a large sample mutation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.maxconsecutivereject&#039;&#039;&#039; || int || 512 || x ≥ 0 || 0 - 32768 || Number of consecutive rejects before a next mutation is forced. Low values can cause bias&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.imagemutationrate&#039;&#039;&#039; || float || 0.1 || 0 ≤ x ≤ 1 || 0 - 1 || Maximum distance over the image plane for a small mutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;RANDOM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Fully random sampler. This sampler is mostly intended for testing purpose.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.random.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.type&#039;&#039;&#039; || string || &amp;quot;BLACKMANHARRIS&amp;quot; || || || Type of pixel filter.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.width&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Filter radius in pixels. Does not have an effect on the NONE filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.xwidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.ywidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Available filters are:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;NONE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Disable pixel filtering.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BOX&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Box pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;GAUSSIAN&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Gaussian pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.gaussian.alpha&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 10.0 || Gaussian rate of falloff. Lower values give blurrier images. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL_SS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter with super-sampling (i.e. image will be filtered first with a grid of 4 pixels for each pixel).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BLACKMANHARRIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Blcakman-Harris pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
==Light Strategy==&lt;br /&gt;
&lt;br /&gt;
The direct light sampling strategy is defined by the following property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.type&#039;&#039;&#039; || string || &amp;quot;LOG_POWER&amp;quot; || &amp;quot;UNIFORM&amp;quot;, &amp;quot;POWER&amp;quot;, &amp;quot;LOG_POWER&amp;quot; or &amp;quot;DLS_CACHE&amp;quot; || N/A || Direct light sampling strategy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;UNIFORM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;UNIFORM&amp;quot; light strategy samples evenly all light sources.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POWER&amp;quot; light strategy samples the light sources based on their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;LOG_POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;LOG_POWER&amp;quot; light strategy samples the light sources based on logarithm of their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;DLS_CACHE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Build direct light sampling cache to optimize many-lights rendering, beneficial in scenes with multiple light sources with few overlap between their influence areas (e.g. a building with many disconnected rooms and interior lights).&lt;br /&gt;
&lt;br /&gt;
Options for the DLS cache:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.radius&#039;&#039;&#039; || float || 0.0 ||  || N/A || Entry radius in meters, automatic radius estimation is used if the radius is set to 0&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.normalangle&#039;&#039;&#039; || float || 25.0 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.maxpasses&#039;&#039;&#039; || int || 1024 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.convergencethreshold&#039;&#039;&#039; || float || 0.05 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.warmupsamples&#039;&#039;&#039; || int || 24 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.targetcachehitratio&#039;&#039;&#039; || float || 0.995 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxdepth&#039;&#039;&#039; || int || 4 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxsamplescount&#039;&#039;&#039; || int || 10000000 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.file&#039;&#039;&#039; || string || &amp;quot;&amp;quot; ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.safesave&#039;&#039;&#039; || bool || 1 ||  || N/A || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator==&lt;br /&gt;
&lt;br /&gt;
The ray/triangle intersection accelerator to use for the rendering is defined by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.type&#039;&#039;&#039; || string || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot;, &amp;quot;BVH&amp;quot;, &amp;quot;MBVH&amp;quot;, &amp;quot;EMBREE&amp;quot;  || &amp;quot;AUTO&amp;quot; || The intersection accelerator. &amp;quot;AUTO&amp;quot; will select the best one available for the current [[LuxRays]] intersection device. &amp;quot;EMBREE&amp;quot; is currently usable only on CPU render engines&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.instances.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || Enable instance support (or disable in order to slightly increase rendering speed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Epsilon==&lt;br /&gt;
&lt;br /&gt;
Minimum and maximum allowed value for scene epsilon can be define by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.min&#039;&#039;&#039; || float || 1e-5f || Any float value || 1e-6f ≤ x ≤ 1e-1f || Minimum allowed value for scene epsilon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.max&#039;&#039;&#039; || float || 1e-1f || Any float value || 1e-3f ≤ x ≤ 1e+2f || Maximum allowed value for scene epsilon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Film==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; of Film serialization. A backup of the output is always valid even in the case of a system failure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film OpenCL Options===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.enable&#039;&#039;&#039; || bool || 1 || enable OpenCL film operations&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.platform&#039;&#039;&#039; || unsigned int || -1 || choose which platform  will be used by the film operations. (0 is first platform, 1 second and so on. -1 for all)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.device&#039;&#039;&#039; || unsigned int || -1 || choose which device  will be used by the film operations. (0 is first device, 1 second and so on. -1 for first GPU device)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Outputs (aka AOVs)===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; for Film outputs. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The film object supports many types of outputs (aka AOVs). The complete list of supported output types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SAMPLECOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CONVERGENCE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;NOISE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SERIALIZED_FILM&#039;&#039;&#039; || N/A&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_COLOR&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outputs are enabled with the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.type&#039;&#039;&#039; || string ||  || Type of output, e.g. &amp;quot;RGBA&amp;quot; or &amp;quot;ALPHA&amp;quot; (see the list above for the available types)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.filename&#039;&#039;&#039; || string ||  || Filename to use when saving the output. The filename should use &amp;quot;.exr&amp;quot; as extension&amp;lt;br&amp;gt; for HDR outputs and &amp;quot;.png&amp;quot; for LDR outputs (see list above for which output is HDR&amp;lt;br&amp;gt; and which LDR)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.id&#039;&#039;&#039; || int ||  || Specify for the following outputs: &#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039;,&amp;lt;br&amp;gt; &#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039;, &#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039;&amp;lt;br&amp;gt; (to choose the object ID, material ID or radiance group ID of the output)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.index&#039;&#039;&#039; || int ||  || Specify for an imagepipeline output (RGB_IMAGEPIPELINE or RGBA_IMAGEPIPELINE)&amp;lt;br&amp;gt; to select the imagepipeline of the output. For example, if you have 3 imagepipelines defined,&amp;lt;br&amp;gt; and you want to specify the output of the third imagepipeline, use 2 for the &amp;quot;.index&amp;quot; property&amp;lt;br&amp;gt; of the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Bidir engine does not support all AOVs.&lt;br /&gt;
Not supported by Bidir are: EMISSION, DIRECT_DIFFUSE, DIRECT_GLOSSY, INDIRECT_DIFFUSE, INDIRECT_GLOSSY, INDIRECT_SPECULAR, DIRECT_SHADOW_MASK, INDIRECT_SHADOW_MASK, IRRADIANCE, RAYCOUNT.&lt;br /&gt;
&lt;br /&gt;
This is the list of output channel data types and sizes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RGB||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGB_IMAGEPIPELINE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGBA||float||film width x film height x 4||R, G, B, A&lt;br /&gt;
|-&lt;br /&gt;
|ALPHA||float||film width x film height x 1||Alpha value [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DEPTH||float||film width x film height x 1||Camera distance&lt;br /&gt;
|-&lt;br /&gt;
|POSITION||float||film width x film height x 3||World X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|GEOMETRY_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|SHADING_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_DIFFUSE||float||film width x film height x 3||Diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_GLOSSY||float||film width x film height x 3||Glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|EMISSION||float||film width x film height x 3||Emission R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_DIFFUSE||float||film width x film height x 3||Indirect diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_GLOSSY||float||film width x film height x 3||Indirect glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SPECULAR||float||film width x film height x 3||Indirect specular R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_MASK||float||film width x film height x 1||Material mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|RADIANCE_GROUP||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|UV||float||film width x film height x 2||Texture coordinates U, V&lt;br /&gt;
|-&lt;br /&gt;
|RAYCOUNT||float||film width x film height x 1||Ray count&lt;br /&gt;
|-&lt;br /&gt;
|BY_MATERIAL_ID||float||film width x film height x 3||By material ID&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID||uint||film width x film height x 1||Material ID&lt;br /&gt;
|-&lt;br /&gt;
|IRRADIANCE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID_MASK||float||film width x film height x 1||Object mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|BY_OBJECT_ID||float||film width x film height x 3||By object ID&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID||uint||film width x film height x 1||Object ID&lt;br /&gt;
|-&lt;br /&gt;
|SAMPLECOUNT||uint||film width x film height x 1||Sample count&lt;br /&gt;
|-&lt;br /&gt;
|CONVERGENCE||float||film width x film height x 1||The distance of each pixel from the convergence threshold&lt;br /&gt;
|-&lt;br /&gt;
|NOISE||float||film width x film height x 1||The noise estimated for each pixel&lt;br /&gt;
|-&lt;br /&gt;
|SERIALIZED_FILM||N/A||N/A||The complete Film serialized in binary format&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_COLOR||float||film width x film height x 3||Material ID converted to colors (with anti-aliasing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Channels===&lt;br /&gt;
&lt;br /&gt;
Film channels are implicitly enabled by declaring film outputs (even if the output is never used). For instance, declaring a &amp;quot;RGBA&amp;quot; output will automatically enable &amp;quot;RADIANCE_PER_PIXEL_NORMALIZED&amp;quot; (and &amp;quot;RADIANCE_PER_SCREEN_NORMALIZED&amp;quot; for BIDIRCPU) and &amp;quot;ALPHA&amp;quot;.&lt;br /&gt;
The supported channels are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Channel type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Last element is weight ?&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED||float||film width x film height x 4||Yes||One for each radiance group. Eye paths radiance.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED||float||film width x film height x 3||No||One for each radiance group. Light paths radiance. Used only by LIGHTCPU and BIDIRCPU.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_ALPHA||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RGB_IMAGEPIPELINE||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DEPTH||float||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_POSITION||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_GEOMETRY_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_SHADING_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_GLOSSY||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_EMISSION||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SPECULAR||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_UV||float||film width x film height x 2||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RAYCOUNT||float||film width x film height||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_MATERIAL_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_IRRADIANCE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_OBJECT_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the list of channels enabled by each output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output&lt;br /&gt;
!Enabled channels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || DEPTH&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || DEPTH, POSITION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || DEPTH, GEOMETRY_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || DEPTH, SHADING_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || DEPTH, MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || DIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || DIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || EMISSION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || INDIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || INDIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || INDIRECT_SPECULAR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || MATERIAL_ID, MATERIAL_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || DIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || INDIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || DEPTH, UV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || DEPTH, RAYCOUNT&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || BY_MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || IRRADIANCE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || DEPTH, OBJECT_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || OBJECT_ID, OBJECT_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || BY_OBJECT_ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: CHANNEL_RGB_IMAGEPIPELINE is always enable and the result of running the image pipeline.&lt;br /&gt;
&lt;br /&gt;
===Image pipeline===&lt;br /&gt;
&lt;br /&gt;
It is possible to define multiple image pipelines at the same time by using the &#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&#039;&#039;&#039; properties prefix. Each image pipeline takes as input the raw rendering and is a chain off image pipeline plugins. Each plugin receives previous plugin output and produces a new output.&lt;br /&gt;
&lt;br /&gt;
====Radiance Group====&lt;br /&gt;
&lt;br /&gt;
Radiance groups are used to get only the contribution of a group of lights in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
Lights can be grouped by setting their [[#Common_parameters | &#039;&#039;&#039;.id&#039;&#039;&#039;]] property to the same number, on materials this is done with the [[#Light_emission | &#039;&#039;&#039;.emission.id&#039;&#039;&#039;]] property.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the OpenCL engines only support up to 8 radiance groups (one of them is the default group).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.globalscale&#039;&#039;&#039; || float|| 1 || global weighting of radiance group &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.temperature &#039;&#039;&#039; || float || 6500.0 || light temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.rgbscale&#039;&#039;&#039; || vector || 1.0 1.0 1.0 || light color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.radiancescales.&amp;lt;id&amp;gt;.enabled&#039;&#039;&#039; || bool || 1 || enable radiance group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Image pipeline plug-ins====&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || linear tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || tonemapping scale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_REINHARD02=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_REINHARD02&amp;quot; || reinhard tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.prescale&#039;&#039;&#039; || float || 1.0 || reinhard prescale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.postscale&#039;&#039;&#039; || float || 1.2 || reinhard postscale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.burn&#039;&#039;&#039; || float || 3.75 || reinhard burn&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_AUTOLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_AUTOLINEAR&amp;quot; || automatic linear tonemapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LUXLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LUXLINEAR&amp;quot; || linear tonemapping with real camera settings&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sensitivity&#039;&#039;&#039; || float || 100.0 || ISO sensitivity&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.exposure&#039;&#039;&#039; || float || 0.001 || exposure time&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.fstop&#039;&#039;&#039; || float || 2.8 || f/aperture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: NOP=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipeline.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;NOP&amp;quot; || no parameters tonemapper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAMMA_CORRECTION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || gamma correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.value&#039;&#039;&#039; || float || 2.2 || gamma value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.table.size&#039;&#039;&#039; || unsigned int || 4096 || resolution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OUTPUT_SWITCHER=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OUTPUT_SWITCHER&amp;quot; || overwrite output&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;DEPTH&amp;quot; || channel whose values are used to overwrite&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.index&#039;&#039;&#039; || unsigned int || 0 || index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAUSSIANFILTER_3x3=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;GAUSSIANFILTER_3x3&amp;quot; || gaussian filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.15 || blurring weight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CAMERA_RESPONSE_FUNC=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || CAMERA_RESPONSE_FUNC || analog camera film simulation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Advantix_100CD&amp;quot; || film type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: BACKGROUND_IMG=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || BACKGROUND_IMG || show the background image where alpha &amp;lt; 1 (simple compositing)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || ... || background image path (e.g scenes/simple-mat/sky.exr)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || background image gamma&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.storage &#039;&#039;&#039; || string || auto || background image storage type&lt;br /&gt;
|}&lt;br /&gt;
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.&lt;br /&gt;
&lt;br /&gt;
=====Type: BLOOM=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;BLOOM&amp;quot; || bloom effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.radius&#039;&#039;&#039; || float || 0.07 || how large the bloom effect is in % of the image size (i.e. 1.0 = all image)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.25 || how strong the effect is (i.e. 0.0 = nothing, 1.0 = max. strength)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: VIGNETTING=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;VIGNETTING&amp;quot; || vignetting effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 0.4 || vignetting strength&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_ABERRATION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_ABERRATION&amp;quot; || color aberration effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || color aberration amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: MIST=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;MIST&amp;quot; || aerial perspective effect (fake fog)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.color&#039;&#039;&#039; || spectrum|| [1, 1, 1] || mist color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || mist amount&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.startdistance&#039;&#039;&#039; || float || 0 || distance from camera until where the mist effect has zero effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.enddistance&#039;&#039;&#039; || float || 10000 || distance from camera from where the mist effect has maximum effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.excludebackground&#039;&#039;&#039; || bool || false || Do not apply mist effect on pixels with infinite distance to the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CONTOUR_LINES=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;CONTOUR_LINES&amp;quot; || contour lines for IRRADIANCE AOV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.range&#039;&#039;&#039; || float|| ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.steps&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.zerogridsize&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: WHITE_BALANCE =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;WHITE_BALANCE&amp;quot; || White temperature correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.temperature&#039;&#039;&#039; || unsigned int|| 6500 || Target image temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_LUT =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_LUT&amp;quot; || Applies .cube LUT (look-up-table) to the input&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;lut.cube&amp;quot; || Filepath to a [https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf .cube LUT file]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || Linear interpolation between input (0.0) and output (1.0) of the plugin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: INTEL_OIDN =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;INTEL_OIDN&amp;quot; || Denoises the image using [https://github.com/OpenImageDenoise/oidn Intel OIDN]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.filter.type&#039;&#039;&#039; || string || &amp;quot;RT&amp;quot; || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.oidnmemory&#039;&#039;&#039; || int || 6000 || Approximate maximum amount of memory to use in megabytes (actual memory usage may be higher). Limiting memory usage may cause slower denoising due to internally splitting the image into overlapping tiles&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OPTIX_DENOISER =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OPTIX_DENOISER&amp;quot; || Denoises the image using the Nvidia OptiX denoiser&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.minspp&#039;&#039;&#039; || unsigned int || 0 || Minimum amount of samples to be rendered before the plugin is run (at lower sample numbers, it does not modify the input)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Subregion===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.subregion&#039;&#039;&#039; || vector || ... || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Rendering halt conditions===&lt;br /&gt;
&lt;br /&gt;
By default, a LuxCore rendering will never stop however you can enable one or multiple halt conditions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold&#039;&#039;&#039; || float || -1.0 || enable image convergence test and stops when the error is under the defined value. Use a value like &amp;quot;n / 256.0&amp;quot; where n is the level of error you are looking for. It may be hard to achieve a level of error smaller than 3.0 / 256.0. -1.0 disables the halt condition.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.warmup&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.step&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.filter.enable&#039;&#039;&#039; || bool || 1 || if the CONVERGENCE AOV (generated by the batch.haltnoisethreshold) should be filtered or not with a 3x3 box filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.stoprendering.enable&#039;&#039;&#039; || bool || 1 || Set this to 0 (false) if you only want to use the haltnoisethreshold settings for adaptive sampling in an endless render&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for stopping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.halttime&#039;&#039;&#039; || float || 0.0 || number of seconds before stopping the rendering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltspp&#039;&#039;&#039; || unsigned int || 0 || number of average samples per pixel before stopping the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Noise estimation===&lt;br /&gt;
&lt;br /&gt;
Image noise can be estimated and its result can be used to drive the Sobol and Random samplers to focus its sampling in the noisier regions.&lt;br /&gt;
Setting any of these properties will enable the noise estimation.&lt;br /&gt;
The adaptiveness strength is a Sampler property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.warmup&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.step&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.filter.scale&#039;&#039;&#039; || unsigned int || 4 || Box filter scale used to filter the NOISE AOV (generated by the noise estimation). Set to 0 to disable.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for adaptive sampling&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Scene file=&lt;br /&gt;
&lt;br /&gt;
==Camera==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;orthographic&amp;quot;, &amp;quot;environment&amp;quot; (360° panorama &amp;lt;br&amp;gt; mapped in latlong format) or &amp;quot;stereo&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.orig&#039;&#039;&#039; || point (float float float) || 0.0 10.0 0.0 || camera location&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.target&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || camera target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.up&#039;&#039;&#039; || vector (float float float) || (0.0, 0.0, 1.0) || camera up vector&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.fieldofview&#039;&#039;&#039; || float || 45.0 || field of view&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutteropen&#039;&#039;&#039; || float || 0.0 || camera shutter open time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutterclose&#039;&#039;&#039; || float || 0.0 || camera shutter close time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autovolume.enable&#039;&#039;&#039; || bool || true || try automatically to discover scene.camera.volume&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.volume&#039;&#039;&#039; || string ||  || the initial volume rays will travel in&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.cliphither&#039;&#039;&#039; || float || 1e-3 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clipyon&#039;&#039;&#039; || float || 1e30 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.screenwindow&#039;&#039;&#039; || list (float float float float) || 0.0 1.0 0.0 1.0 || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;environment&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.type&#039;&#039;&#039; || string || NONE || &amp;quot;NONE&amp;quot;, &amp;quot;UNIFORM&amp;quot;, &amp;quot;EXPONENTIAL&amp;quot;, &amp;quot;INVERSEEXPONENTIAL&amp;quot;, &amp;quot;GAUSSIAN&amp;quot;, &amp;quot;INVERSEGAUSSIAN&amp;quot;, &amp;quot;TRIANGULAR&amp;quot;, &amp;quot;CUSTOM&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.blades&#039;&#039;&#039; || int || 0 || Number of aperture blades&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.power&#039;&#039;&#039; || int || 3 || Distribution factor, only for &amp;quot;EXPONENTIAL&amp;quot; and &amp;quot;INVERSEEXPONENTIAL&amp;quot; types&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.image&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || only if type == &amp;quot;CUSTOM&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scalex&#039;&#039;&#039; || float || 1.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scaley&#039;&#039;&#039; || float || 1.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.stereo.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;environment_180&amp;quot;, &amp;quot;environment_360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.eyesdistance&#039;&#039;&#039; || float || 0.0626 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensdistance&#039;&#039;&#039; || float || 0.2779 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.oculusrift.barrelpostpro.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.environment.degrees&#039;&#039;&#039; || float || 360.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;environment&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensradius&#039;&#039;&#039; || float || 0.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.focaldistance&#039;&#039;&#039; || float || 10.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autofocus.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.center&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.normal&#039;&#039;&#039; || vector (float float float) || 0.0 0.0 0.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The camera supports motion blur. See [[ LuxCore_SDL_Reference_Manual_v2.0#Object_Motion_Blur | Object Motion Blur ]].&amp;lt;br&amp;gt;&lt;br /&gt;
(Only difference being that instead of the prefix &#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;&#039;&#039;&#039;, the prefix &#039;&#039;&#039;scene.camera&#039;&#039;&#039; is used when setting motion properties of the camera)&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Textures|LuxCoreRender Textures]] for a high level description and examples of the textures.&lt;br /&gt;
&lt;br /&gt;
===Mapping===&lt;br /&gt;
&lt;br /&gt;
Some texture (mostly procedural textures) supports 2D or 3D mapping parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping2d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.rotation&#039;&#039;&#039; || float || 0.0 || UV rotation (in degrees)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvscale&#039;&#039;&#039; || UV || 1.0 1.0 || UV scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvdelta&#039;&#039;&#039; || UV || 0.0 0.0 || UV translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;globalmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: add===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;add&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: subtract===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subtract&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: band===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;band&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5|| texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.interpolation&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot;|| &amp;quot;linear&amp;quot;, &amp;quot;cubic&amp;quot; or &amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset[0..n]&#039;&#039;&#039; || float || 0.0 || multiple offsets in the range of [0.0, 1.0]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value[0..n]&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || a value for each offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_blend===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_blend&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.progressiontype&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot; || linear, quadratic, easing, diagonal, spherical, quadratic_spherical, halo or radial&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.direction&#039;&#039;&#039; || string || &amp;quot;horizontal&amp;quot; || horizontal or vertical&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_clouds===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_clouds&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || hard_noise or soft_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1, voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1, voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_distortednoise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_distortednoise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noise_distortion&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distortion&#039;&#039;&#039; || float || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_magic===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_magic&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_marble===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.marbletype&#039;&#039;&#039; || string || &amp;quot;soft&amp;quot; || soft, sharp or sharper&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_musgrave===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_musgrave&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.musgravetype&#039;&#039;&#039; || string || &amp;quot;multifractal&amp;quot; || multifractal, ridged_multifractal, hybrid_multifractal, fBM or hetero_terrain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.dimension&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.lacunarity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_noise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_noise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_stucci===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_stucci&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.stuccitype&#039;&#039;&#039; || string || &amp;quot;plastic&amp;quot; || plastic, wall_in or wall_out&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_wood===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || bands, rings, bandnoise or ringnoise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_voronoi===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_voronoi&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distmetric&#039;&#039;&#039; || string || &amp;quot;actual_distance&amp;quot; || actual_distance, distance_squared, manhattan,&amp;lt;br&amp;gt; chebychev, minkowski_half, minkowski_four or minkowski&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w1&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w2&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w3&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w4&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: brick===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;brick&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bricktex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortartex&#039;&#039;&#039; || texture || 0.2 0.2 0.2 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodtex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodbias&#039;&#039;&#039; || float || 0.0 || With bias = -1, only the bricktex is used for the brick color. With bias between -1 and 1, a pseudo-random interpolation between bricktex and brickmodtex is used as brick color. With bias = 1, only the brickmodtex is used for the brick color.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickbond&#039;&#039;&#039; || string || &amp;quot;running&amp;quot; || &amp;quot;flemish&amp;quot;, &amp;quot;english&amp;quot;, &amp;quot;herringbone&amp;quot;, &amp;quot;basket&amp;quot; or &amp;quot;chain link&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickwidth&#039;&#039;&#039; || float || 0.3 || brick width&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickheight&#039;&#039;&#039; || float || 0.1 || brick height&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickdepth&#039;&#039;&#039; || float || 0.15 || brick depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortarsize&#039;&#039;&#039; || float || 0.01 ||mortar size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickrun&#039;&#039;&#039; || float || 0.75 || brick run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard3d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard3d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard2d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard2d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat1&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || float || 1.0 || constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || spectrum || (1.0, 1.0, 1.0) || RGB constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: densitygrid===&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;.data&amp;quot;, &amp;quot;.data3&amp;quot; or &amp;quot;.openvdb.file&amp;quot; to define the 3D grid values.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;densitygrid&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nx&#039;&#039;&#039; || unsigned int || || grid x size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.ny&#039;&#039;&#039; || unsigned int || || grid y size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nz&#039;&#039;&#039; || unsigned int || || grid z size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;half&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data3&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz * 3)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.file&#039;&#039;&#039; || string || || OpenVDB file name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.grid&#039;&#039;&#039; || string || || OpenVDB grid name to read from the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dots===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dots&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.inside&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.outside&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fbm===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fbm&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxk===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxk&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxn===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxn&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointalpha===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices alphas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointalpha&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointcolor===&lt;br /&gt;
&lt;br /&gt;
Use the color obtained by interpolating triangle vertices colors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointgrey===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices colors, mapped to a float value (RGB converted into greyscale).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointgrey&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || -1 || the index of the RGB channel to use. -1 means the luminance of the RGB value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hsv===&lt;br /&gt;
&lt;br /&gt;
Hue saturation value manipulation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hsv&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input color that will be manipulated&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.hue&#039;&#039;&#039; || texture || 0.5 || shift in hue (range: 0..1)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.saturation&#039;&#039;&#039; || texture || 1.0 || saturation (range: 0..inf)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 1.0 || brightness multiplier (range: 0..inf)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: imagemap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;imagemap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || name of the image file&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction value used in the image&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 || image values are multiplied by gain value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of image map wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;default&amp;quot; || extract from the image only the selected channels:&amp;lt;br&amp;gt; &amp;quot;default&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;blue&amp;quot;,&amp;lt;br&amp;gt; &amp;quot;alpha&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;colored_mean&amp;quot;, &amp;quot;rgb&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: normalmap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;normalmap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input. Is treated as an XYZ vector in tangent space.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || multiplier for adjusting normalmap height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: marble===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || marble scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.variation&#039;&#039;&#039; || float || 0.2 || marble variation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: scale===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;scale&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: uv===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: windy===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wood===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || &amp;quot;bands&amp;quot;, &amp;quot;rings&amp;quot;, &amp;quot;bandnoise&amp;quot; or &amp;quot;ringnoise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || &amp;quot;sin&amp;quot;, &amp;quot;saw&amp;quot; or &amp;quot;tri&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || &amp;quot;soft_noise&amp;quot; or &amp;quot;hard_noise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || noise size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 || noise turbulence&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 || bright&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 || contrast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wrinkled===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wrinkled&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: abs===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;abs&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: clamp===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;clamp&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.min&#039;&#039;&#039; || float || 0.0 || lower boundary of the clamping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.max&#039;&#039;&#039; || float || 1.0 || upper boundary of the clamping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: divide===&lt;br /&gt;
&lt;br /&gt;
Note: If texture2 (the divisor) is 0, 0 is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;divide&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant (dividend)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant (divisor)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: remap===&lt;br /&gt;
&lt;br /&gt;
This texture brings the value from the source range into the target range. &lt;br /&gt;
&lt;br /&gt;
Note: The value is clamped into source range before performing the remap operation, and the resulting number is also clamped into the target range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;remap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectid===&lt;br /&gt;
&lt;br /&gt;
Raw object ID (range 0 to 0xfffffffe).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectid&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidcolor===&lt;br /&gt;
&lt;br /&gt;
Object ID interpreted as color.&amp;lt;br&amp;gt;&lt;br /&gt;
The object ID is a 4 byte unsigned int. To convert to color, the lower three bytes are interpreted as r, g, b values (each range 0 to 255). The highest byte is ignored.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidnormalized===&lt;br /&gt;
&lt;br /&gt;
Normalized object ID (range 0 to 1).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidnormalized&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dotproduct ===&lt;br /&gt;
&lt;br /&gt;
Dot product of the two input vectors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dotproduct&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: power ===&lt;br /&gt;
&lt;br /&gt;
pow(base, exponent)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;power&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.base&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.exponent&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lessthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;lt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lessthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: greaterthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;gt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;greaterthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: shadingnormal ===&lt;br /&gt;
&lt;br /&gt;
Returns the shading normal of the mesh at the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;shadingnormal&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: position ===&lt;br /&gt;
&lt;br /&gt;
Returns the position of the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;position&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: splitfloat3 ===&lt;br /&gt;
&lt;br /&gt;
Extract a channel from a float3 texture. Can for example be used to get the R, G or B channel of a color texture, or to get the X, Y or Z components of a vector texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;splitfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || 0 || the channel to get from the input texture. 0 for first channel, 1 for second, 2 for third channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: makefloat3 ===&lt;br /&gt;
&lt;br /&gt;
Combine three float textures into one float3 texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;makefloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture3&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: blackbody===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blackbody&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.temperature&#039;&#039;&#039; || float || 6500 || emission temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.normalize&#039;&#039;&#039; || bool || false || normalize the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: irregulardata===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;irregulardata&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wavelengths&#039;&#039;&#039; || vector || 580.0 620.0 660.0|| wavelenghts&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || vector || 0.0 0.000015 0.0|| data (length should match wavelength&#039;s length)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lampspectrum===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lampspectrum&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Daylight&amp;quot; || lamp light spectrum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: Fresnel Textures===&lt;br /&gt;
&lt;br /&gt;
Textures for loading optical data&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelcolor====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelcolor || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.kr&#039;&#039;&#039; || vector || 0.5 0.0 0.0 || reflection color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelpreset====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || aluminium || fresnel preset (&amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelsopra====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Au.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelluxpop====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Cr.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: distort====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || distort || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0.0 || texture name or constant; input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || texture || 0.0 || texture name or constant; offset to add to the hitpoint coordinates and UV values before evaluating the input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || strength multiplier, is multiplied with the offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Volumes|LuxCoreRender Volumes]] for a high level description and examples of the volumes.&lt;br /&gt;
&lt;br /&gt;
All volumes share these properties&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.priority&#039;&#039;&#039; || unsigned int|| 0|| volume priority (when volumes overlap, the one with highest priority overrides the others)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.ior&#039;&#039;&#039; || texture|| ... || index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.absorption&#039;&#039;&#039; ||  texture || ... || absorption texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission &#039;&#039;&#039; ||  texture || ... || emission &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission.id &#039;&#039;&#039; || unsigned int || ... || emission ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Clear===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Homogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || homogeneous|| volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Heterogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || heterogeneous || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.size&#039;&#039;&#039; || float || ... || step size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.maxcount&#039;&#039;&#039; || unsigned int || ... || step maximum count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Materials==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Materials|LuxCoreRender Materials]] for a high level description and examples of the materials.&lt;br /&gt;
&lt;br /&gt;
===Common properties===&lt;br /&gt;
&lt;br /&gt;
Common material properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumptex&#039;&#039;&#039; || texture || || texture to use for the bump mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.normaltex&#039;&#039;&#039; || texture || || texture to use for the normal mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || number of rays used to sample this material. -1 means use the default global value. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumpsamplingdistance&#039;&#039;&#039; || float || 0.001 || set the offset used to sample bump/normal mapping.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.interior&#039;&#039;&#039; || string || vol1 || name of interior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.exterior&#039;&#039;&#039; || string || vol2 || name of exterior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.id&#039;&#039;&#039; || int|| ... || material id&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.transparency&#039;&#039;&#039; || texture || 1.0 || transparency of the material. 1 for opaque, 0 for fully transparent&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.shadowcatcher.enable&#039;&#039;&#039; || bool || false || If true, the material will be transparent where hit by direct light and opaque otherwise (alpha transparency). Used for compositing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Normal maps====&lt;br /&gt;
Normal maps are set first as a texture type and then assigned to the material. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scene.textures.normmap.type = imagemap&lt;br /&gt;
scene.textures.normmap.file = scenes/bump/normal.png&lt;br /&gt;
scene.textures.normmap.gamma = 1&lt;br /&gt;
&lt;br /&gt;
scene.materials.mat_white.type = matte&lt;br /&gt;
scene.materials.mat_white.kd = 0.8 0.8 0.8&lt;br /&gt;
scene.materials.mat_white.normaltex = normmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Light emission====&lt;br /&gt;
&lt;br /&gt;
All materials can emit light:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || color of the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || multiplier for lamp brigthness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesblob&#039;&#039;&#039; || blob || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light from this material. &amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.theta&#039;&#039;&#039; || float || 90.0 || How directional the light is emitted, set as the half-angle of the light source. Default is 90°.&amp;lt;br&amp;gt; Smaller values mean that more light is emitted in the direction of the face normals and less to the sides.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light source compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: archglass===&lt;br /&gt;
&lt;br /&gt;
This material should be used to replace glass material of windows when rendering architectural interiors. It allows direct light to pass trough.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;archglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: carpaint===&lt;br /&gt;
&lt;br /&gt;
Car Paint is an advanced glossy material, simulating a diffuse surface with mutliple reflective coatings.&lt;br /&gt;
&lt;br /&gt;
The available presets for the carpaint material are:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;ford f8&amp;quot;&lt;br /&gt;
*&amp;quot;polaris silber&amp;quot;&lt;br /&gt;
*&amp;quot;opel titan&amp;quot;&lt;br /&gt;
*&amp;quot;bmw339&amp;quot;&lt;br /&gt;
*&amp;quot;2k acrylack&amp;quot;&lt;br /&gt;
*&amp;quot;white&amp;quot;&lt;br /&gt;
*&amp;quot;blue&amp;quot;&lt;br /&gt;
*&amp;quot;blue matte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;carpaint&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;ford f8&amp;quot; || one of the avilable presets&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || absorption color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || absorption depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || diffuse color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: cloth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;cloth&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;denim&amp;quot; || denim, silk_charmeuse, silk_shantung, cotton_twill, wool_garbardine or polyester_lining_cloth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_u&#039;&#039;&#039; || float || 100.0 || thread count in the u direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_v&#039;&#039;&#039; || float || 100.0 || thread count in the v direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: disney===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;disney&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.basecolor&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || Base color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.subsurface&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.roughness&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.metallic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.specular&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.speculartint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoat&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoatgloss&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.anisotropic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheen&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheentint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmamount&#039;&#039;&#039; || texture || none || Linear interpolation between no film (0) and full film effect (1) for artistic control.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.cauchyb&#039;&#039;&#039; || texture || 0.0 || if defined and &amp;gt; 0.0, enable dispersion. The value is the B term of the [https://en.wikipedia.org/wiki/Cauchy%27s_equation Cauchy&#039;s equation]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossy2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossy2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossytranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossytranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmission color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks_bf&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant backface specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of backface coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d_bf&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the backface depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the backface coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce_bf&#039;&#039;&#039; || bool || false || backface simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossycoating===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossycoating&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.base&#039;&#039;&#039; || string || || name of base material, the coating layer is added on top of this material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: matte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;matte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the matte material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mattetranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mattetranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmitted color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: metal2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;metal2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.fresnel&#039;&#039;&#039; || fresnel texture || ... || [[#Type:_Fresnel_Textures | fresnel texture]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;aluminium&amp;quot; || (DEPRECATED) &amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.n&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxn texture on overwrite the .preset property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.k&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxk texture on overwrite the .preset property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mirror===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mirror&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
This material can be used to mix 2 other materials.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material1&#039;&#039;&#039; || string || mat1 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material2&#039;&#039;&#039; || string || mat2 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture or constant value used to mix the materials&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: null===&lt;br /&gt;
&lt;br /&gt;
This is empty, not visible material. It can be combined by using mix material with others. It is often used in combination with the alpha channel of an image map to render leafs, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;null&amp;quot; || type of material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughglass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughmatte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughmatte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the roughmatte material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sigma&#039;&#039;&#039; || texture || 0.0 || the sigma parameter in the Oren-Nayer shader in degrees. Zero for pure Lambertian reflection&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: velvet===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;velvet&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || color of the material&#039;s fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p1&#039;&#039;&#039; || texture || -2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p2&#039;&#039;&#039; || texture || 20.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p3&#039;&#039;&#039; || texture || 2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.thickness&#039;&#039;&#039; || texture || 0.1 || height of the fuzz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.material&#039;&#039;&#039; || string || || type of object material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.shape&#039;&#039;&#039; || string || || name of [[#Shapes | shape]] with the triangle mesh description.Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same shape, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.ply&#039;&#039;&#039; || string || || &#039;&#039;&#039;(Deprecated, use .shape instead)&#039;&#039;&#039; name of [http://en.wikipedia.org/wiki/PLY_(file_format) PLY] file with the triangle mesh description.&amp;lt;br&amp;gt;Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same file, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.vertices&#039;&#039;&#039; || float || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of float values defining the vertices of the mesh (i.e. 3 coordinates for each vertex).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.faces&#039;&#039;&#039; || unsigned int || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of unsigned int values defining the triangles of the mesh (i.e. 3 index of vertices for each triangle).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.id&#039;&#039;&#039; || unsigned int || || object ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.camerainvisible&#039;&#039;&#039; || bool || false || toggle visibility for camera rays. If set to true, the object will not show up in camera rays, but it will still be visible in reflections, refractions, shadows, indirect light etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Object Motion Blur===&lt;br /&gt;
&lt;br /&gt;
LuxCore supports transformation motion blur for objects.&lt;br /&gt;
Motion blur is enabled if an object has a motion system defined as described below.&lt;br /&gt;
&lt;br /&gt;
A motion system consists of steps (at least 2). Each step has a time (in seconds) and a transformation matrix of the object at this point in time.&lt;br /&gt;
Step indices start at 0. The times have to be monotonic (each greater than the last).&lt;br /&gt;
&lt;br /&gt;
Note that the embree accelerator only supports a maximum of 129 time steps.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.time&#039;&#039;&#039; || float || || time (in seconds) of the step&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix of the object at the given step&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Shapes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: mesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mesh&amp;quot; || mesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.ply&#039;&#039;&#039; || string || ... || mesh path (e.g &#039;&#039;scenes/luxball/luxball-shell.ply&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: inlinedmesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;inlinedmesh&amp;quot; || inlinedmesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.vertices&#039;&#039;&#039; || vector || ... || inlinedmesh vertices (e.g 0.0 0.0 0.0  1.0 0.0 0.0  0.0 1.0 0.0)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.faces&#039;&#039;&#039; || vector || ... || inlinedmesh faces (e.g 0 1 2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: pointiness===&lt;br /&gt;
&lt;br /&gt;
Contains surface curvature information in vertex alpha channel.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access this information in materials via a hitpointalpha texture.&amp;lt;br&amp;gt;&lt;br /&gt;
The values range from -1 to 1 (float).&amp;lt;br&amp;gt;&lt;br /&gt;
Values from -1 to 0 are concave, while values from 0 to 1 are convex.&lt;br /&gt;
&lt;br /&gt;
[[ Shape:_Pointiness | Examples ]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;pointiness&amp;quot; || pointiness shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || pointiness source (a mesh shape)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: strands===&lt;br /&gt;
&lt;br /&gt;
Can be used for hair, fur, grass etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you need to define the camera before defining any strands shapes, because the tesselation process is viewpoint-dependent.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;strands&amp;quot; || strands shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.file&#039;&#039;&#039; || string || ... || strands file (&#039;&#039;scenes/strands/straight.hair&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Strands tessellation methods====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbon&amp;quot; || ribbon tessellation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.usecameraposition&#039;&#039;&#039; || bool || 1 || use camera position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbonadaptive&amp;quot; || ribbon adaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.maxdepth&#039;&#039;&#039; || unsigned int || 12 || max tessellation depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.error &#039;&#039;&#039; || float || 0.0075 || max tessellation error &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solid&amp;quot; || solid tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solid.sidecount &#039;&#039;&#039; || unsigned int || 12 || tessellation&#039;s side count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solidadaptive&amp;quot; || solidadaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.sidecount &#039;&#039;&#039; || unsigned int || 8 || tessellation&#039;s side count&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.maxdepth&#039;&#039;&#039; || unsigned int || 16 || tessellation&#039;s max depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.error&#039;&#039;&#039; || float || 0.05 || tessellation&#039;s max error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: group===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: displacement===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: subdiv===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subdiv&amp;quot; || subdivided shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || source mesh name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxlevel&#039;&#039;&#039; || unsigned integer || 2 || maximum level of subdivision&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxedgescreensize&#039;&#039;&#039; || float || 0.0 || maximum edge screen size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.adaptive&#039;&#039;&#039; || bool || 1 || Adaptive refinement / Uniform refinement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: harlequin===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: simplify===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: islandaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: randomtriangleaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
==Light sources==&lt;br /&gt;
&lt;br /&gt;
Check [[Lighting|LuxCoreRender Lighting]] for an high level description and example of the light sources.&lt;br /&gt;
&lt;br /&gt;
===Common parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || intensity of the light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light for this light source.&amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sun===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sun&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.relsize&#039;&#039;&#039; || float || 1.0 || relative size to the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sky2===&lt;br /&gt;
&lt;br /&gt;
Hosek-Wilkie sky model.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sky2&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || vector || ... || gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.groundalbedo&#039;&#039;&#039; || vector || 0.5 0.5 0.5 || ground albedo&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.enable&#039;&#039;&#039; || bool || 1 || enable ground color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.color&#039;&#039;&#039; || vector|| ... || RGB ground color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: infinite===&lt;br /&gt;
&lt;br /&gt;
Spherical lightsource surrounding the scene at infinite distance.&amp;lt;br&amp;gt;&lt;br /&gt;
Used for image based lighting (IBL) and HDR environment lighting if the file is a high dynamic range image.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;infinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || filename of the environment map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction used by the image map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || environment map storage type (&amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot; or &amp;quot;float&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.sampleupperhemisphereonly&#039;&#039;&#039; || bool || false || an option set to black the lower hemisphere. Mostly useful for shadow catchers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: point===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;point&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mappoint===&lt;br /&gt;
&lt;br /&gt;
Point light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mappoint&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sphere===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mapsphere===&lt;br /&gt;
&lt;br /&gt;
Sphere light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mapsphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: spot===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;spot&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.coneangle&#039;&#039;&#039; || float || 30.0 || angle in degrees of the spotlight cone&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.conedeltaangle&#039;&#039;&#039; || float || 5.0 || angle at which the spotlight intensity starts to fade from the edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: projection===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;projection&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.fov&#039;&#039;&#039; || float || 45.0 || field of view in terms of angular spread along the shorter image axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || filename of the image to project. If not specified, a constat light color will be used.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constantinfinite===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constantinfinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sharpdistant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sharpdistant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: distant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;distant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.theta&#039;&#039;&#039; || float || 10.0 || half angle of the light source in degree. Must be &amp;gt; 0 for soft shadows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: laser===&lt;br /&gt;
&lt;br /&gt;
A light source emitting parallel light rays (like sharpdistant light, but starting inside the scene instead of infinitely far away).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;laser&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 0.01 || radius of the laser beam&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2714</id>
		<title>LuxCore SDL Reference Manual v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2714"/>
		<updated>2026-06-07T10:19:57Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Camera */  reformat table&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The scene description language (SDL) is used to configure the renderer and to define objects, materials, textures etc. in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
The file ending of the render configuration file is &amp;quot;.cfg&amp;quot;, for the scene file it&#039;s &amp;quot;.scn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These files are usually created by exporter plugins, e.g. BlendLuxCore.&amp;lt;br&amp;gt;&lt;br /&gt;
This wiki page is primarily a reference for exporter developers, normal end-users should not need to edit cfg/scn files by hand.&lt;br /&gt;
&lt;br /&gt;
Sometimes the API is updated faster than the wiki, in this case you can look at the code directly: https://github.com/LuxCoreRender/LuxCore/tree/master/src/slg/scene&lt;br /&gt;
&lt;br /&gt;
Note that matrices are passed as flat lists in column-major form.&lt;br /&gt;
&lt;br /&gt;
=Render configuration file=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;resumerendering.filesafe&#039;&#039;&#039; || bool || 1 || enable/disable &amp;quot;safe save&amp;quot; mode for resume rendering file. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Seed==&lt;br /&gt;
&lt;br /&gt;
The global seed value that is used to generate random numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Two images rendered with the same seed will have the same noise pattern.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.seed&#039;&#039;&#039; || unsigned int || 1 || min 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Periodic save==&lt;br /&gt;
&lt;br /&gt;
Options related to periodic save operations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.period&#039;&#039;&#039; || float || 0 || save the resume rendering file every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.filename&#039;&#039;&#039; || string || &amp;quot;resume.rsm&amp;quot; || the name to use to save the rendering resume information periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.period&#039;&#039;&#039; || float || 0 || save the Film every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.filename&#039;&#039;&#039; || string || &amp;quot;film.flm&amp;quot; || the name to use to save the film periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.outputs.period&#039;&#039;&#039; || float || 600 || save all Film outputs every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Render Engine==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || engine type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPU Render Engines ===&lt;br /&gt;
&lt;br /&gt;
CPU render engines are written in C++ and don&#039;t require OpenCL. All CPU render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;native.threads.count&#039;&#039;&#039; || int || CPU core count || &amp;gt; 0 || &amp;gt; 0 || The number of threads will be used for the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following CPU engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A path tracer with full image plane rendering (i.e. supporting Metropolis sampler).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHCPU&amp;quot;====&lt;br /&gt;
Biased path tracer with many control options and support for tile rendering.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepath.sampling.aa.size&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, 13] || All diffuse/glossy/specular samples are multiplied with the squared aa size: final_samples = aa^2 * (diffuse^2 + glossy^2 + specular^2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.size&#039;&#039;&#039; || int || 32 || ≥ 8 || [8, 256] || Tile size in pixels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || o or 1 || Re-render the image until a halt threshold is met or indefinitely&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold&#039;&#039;&#039; || float || 6.0 / 256.0 || &amp;gt; 0.0 || [1.0 / 256.0, 6.0 / 256.0] || Target noise level&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold.reduction&#039;&#039;&#039; || float || 0.0 || [0.0, 1.0] || [0.75, 0.95] || Multiply noise level with this number when all tiles have met the previous noise level. Set to 0 to disable (so rendering will stop at the noise level)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.warmup.count&#039;&#039;&#039; || int || 32 || ≥ 0 || [8, 128] || Warm up period for the convergence test expressed in samples per pixel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A Bidirectional path tracer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a eye path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHCPU&amp;quot;====&lt;br /&gt;
Engine optimized for interactive scene editing and camera movement.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to RTPATHCPUSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same properties as [[#&amp;quot;PATHCPU&amp;quot; | &amp;quot;PATHCPU&amp;quot;]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.size&#039;&#039;&#039; || int || 4 ||  ||  || render scaled down film for the first few frames after a scene edit (to make interactions more fluid)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.weight&#039;&#039;&#039; || float || 0.1 ||  ||  || description: TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenCL Render Engines ===&lt;br /&gt;
&lt;br /&gt;
OpenCL engines can run on GPUs, CPUs and other types of computing devices, they require OpenCL to run. All OpenCL render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.platform.index&#039;&#039;&#039; || int || -1 || A valid platform index || -1 || Select the OpenCL platform to use. All devices available on all platforms will be used with -1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL CPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL GPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.devices.select&#039;&#039;&#039; || string || &amp;quot;&amp;quot; || Any valid selection string || Any valid selection string || Select each OpenCL device to use. It is a string of &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;. &amp;quot;1&amp;quot; means use the device, &amp;quot;0&amp;quot; do not&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following OpenCL engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHOCL&amp;quot;====&lt;br /&gt;
OpenCL version of PATHCPU. Supports the same settings as [[#&amp;quot;PATHCPU&amp;quot; | PATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;pathocl.pixelatomics.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable pixel atomic operation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.task.count&#039;&#039;&#039; || int || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot; or &amp;gt; 0 || [64K, 1024K] || The number of tasks sent to the OpenCL device in one kernel call&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A PATHOCL version optimized for real-time rendering with fixed frame-rate and variable quality.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;PATHOCL&amp;quot; | PATHOCL]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels in the first passes. For instance 4x4 than 2x2 and than always 1x1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview.step&#039;&#039;&#039; || int || 8 || &amp;gt; 0 || [1, 32] || Each preview step is rendered for n frames&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels, outside the preview phase, in order to reduce the per frame rendering time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
OpenCL version of TILEPATHCPU.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;TILEPATHCPU&amp;quot; | TILEPATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepathocl.devices.maxtiles&#039;&#039;&#039; || int || 16 || ≥ 1 || [1, 32] || Maximum number of tiles to send in a single call to each OpenCL device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;FILESAVER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Saves everything needed to render the scene to the output path, including textures and meshes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.format&#039;&#039;&#039; || string || &amp;quot;TXT&amp;quot; || &amp;quot;TXT&amp;quot; for a text SDL format and &amp;quot;BIN&amp;quot; for a single file binary format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.filename&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene.bcf&amp;quot; || file name for &amp;quot;BIN&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.directory&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene&amp;quot; || output path for &amp;quot;TXT&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || render engine to use when rendering the scene after it was saved with FILESAVER. Any engine string from above can be used here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Experimental and debugging engines===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These engines are experimental, deprecated or are only intended for very specific purposes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRVMCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Bidir with vertex merging, currently experimental.&amp;lt;br&amp;gt;&lt;br /&gt;
Supports the same settings as [[#&amp;quot;BIDIRCPU&amp;quot; | BIDIRCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.lightpath.count&#039;&#039;&#039; || int || 16 * 1024 || &amp;gt; 0 || || Number of lightpaths per pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.startradius.scale&#039;&#039;&#039; || float || 0.003 || &amp;gt; 0 || || Photon radius of the first pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.alpha&#039;&#039;&#039; || float || 3 || &amp;gt; 0 || [0.0, 1.0] || Photon radius is multiplied with this value after every pass to reduce the radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;LIGHTCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
For testing.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sampler==&lt;br /&gt;
&lt;br /&gt;
Samplers are used by following render engines:&lt;br /&gt;
&lt;br /&gt;
* LIGHTCPU&lt;br /&gt;
* PATHCPU&lt;br /&gt;
* BIDIRCPU&lt;br /&gt;
* BIDIRVMCPU&lt;br /&gt;
* PATHOCL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.type&#039;&#039;&#039; || string || &amp;quot;SOBOL&amp;quot; || sampler type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following samplers are available:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;SOBOL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Sampler with sobol pattern.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.sobol.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;METROPOLIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Metropolis sampler.&lt;br /&gt;
Parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.largesteprate&#039;&#039;&#039; || float || 0.4 || 0 ≤ x ≤ 1 || 0 - 1 || Probability of generating a large sample mutation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.maxconsecutivereject&#039;&#039;&#039; || int || 512 || x ≥ 0 || 0 - 32768 || Number of consecutive rejects before a next mutation is forced. Low values can cause bias&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.imagemutationrate&#039;&#039;&#039; || float || 0.1 || 0 ≤ x ≤ 1 || 0 - 1 || Maximum distance over the image plane for a small mutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;RANDOM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Fully random sampler. This sampler is mostly intended for testing purpose.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.random.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.type&#039;&#039;&#039; || string || &amp;quot;BLACKMANHARRIS&amp;quot; || || || Type of pixel filter.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.width&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Filter radius in pixels. Does not have an effect on the NONE filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.xwidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.ywidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Available filters are:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;NONE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Disable pixel filtering.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BOX&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Box pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;GAUSSIAN&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Gaussian pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.gaussian.alpha&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 10.0 || Gaussian rate of falloff. Lower values give blurrier images. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL_SS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter with super-sampling (i.e. image will be filtered first with a grid of 4 pixels for each pixel).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BLACKMANHARRIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Blcakman-Harris pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
==Light Strategy==&lt;br /&gt;
&lt;br /&gt;
The direct light sampling strategy is defined by the following property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.type&#039;&#039;&#039; || string || &amp;quot;LOG_POWER&amp;quot; || &amp;quot;UNIFORM&amp;quot;, &amp;quot;POWER&amp;quot;, &amp;quot;LOG_POWER&amp;quot; or &amp;quot;DLS_CACHE&amp;quot; || N/A || Direct light sampling strategy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;UNIFORM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;UNIFORM&amp;quot; light strategy samples evenly all light sources.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POWER&amp;quot; light strategy samples the light sources based on their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;LOG_POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;LOG_POWER&amp;quot; light strategy samples the light sources based on logarithm of their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;DLS_CACHE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Build direct light sampling cache to optimize many-lights rendering, beneficial in scenes with multiple light sources with few overlap between their influence areas (e.g. a building with many disconnected rooms and interior lights).&lt;br /&gt;
&lt;br /&gt;
Options for the DLS cache:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.radius&#039;&#039;&#039; || float || 0.0 ||  || N/A || Entry radius in meters, automatic radius estimation is used if the radius is set to 0&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.normalangle&#039;&#039;&#039; || float || 25.0 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.maxpasses&#039;&#039;&#039; || int || 1024 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.convergencethreshold&#039;&#039;&#039; || float || 0.05 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.warmupsamples&#039;&#039;&#039; || int || 24 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.targetcachehitratio&#039;&#039;&#039; || float || 0.995 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxdepth&#039;&#039;&#039; || int || 4 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxsamplescount&#039;&#039;&#039; || int || 10000000 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.file&#039;&#039;&#039; || string || &amp;quot;&amp;quot; ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.safesave&#039;&#039;&#039; || bool || 1 ||  || N/A || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator==&lt;br /&gt;
&lt;br /&gt;
The ray/triangle intersection accelerator to use for the rendering is defined by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.type&#039;&#039;&#039; || string || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot;, &amp;quot;BVH&amp;quot;, &amp;quot;MBVH&amp;quot;, &amp;quot;EMBREE&amp;quot;  || &amp;quot;AUTO&amp;quot; || The intersection accelerator. &amp;quot;AUTO&amp;quot; will select the best one available for the current [[LuxRays]] intersection device. &amp;quot;EMBREE&amp;quot; is currently usable only on CPU render engines&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.instances.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || Enable instance support (or disable in order to slightly increase rendering speed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Epsilon==&lt;br /&gt;
&lt;br /&gt;
Minimum and maximum allowed value for scene epsilon can be define by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.min&#039;&#039;&#039; || float || 1e-5f || Any float value || 1e-6f ≤ x ≤ 1e-1f || Minimum allowed value for scene epsilon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.max&#039;&#039;&#039; || float || 1e-1f || Any float value || 1e-3f ≤ x ≤ 1e+2f || Maximum allowed value for scene epsilon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Film==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; of Film serialization. A backup of the output is always valid even in the case of a system failure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film OpenCL Options===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.enable&#039;&#039;&#039; || bool || 1 || enable OpenCL film operations&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.platform&#039;&#039;&#039; || unsigned int || -1 || choose which platform  will be used by the film operations. (0 is first platform, 1 second and so on. -1 for all)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.device&#039;&#039;&#039; || unsigned int || -1 || choose which device  will be used by the film operations. (0 is first device, 1 second and so on. -1 for first GPU device)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Outputs (aka AOVs)===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; for Film outputs. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The film object supports many types of outputs (aka AOVs). The complete list of supported output types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SAMPLECOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CONVERGENCE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;NOISE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SERIALIZED_FILM&#039;&#039;&#039; || N/A&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_COLOR&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outputs are enabled with the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.type&#039;&#039;&#039; || string ||  || Type of output, e.g. &amp;quot;RGBA&amp;quot; or &amp;quot;ALPHA&amp;quot; (see the list above for the available types)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.filename&#039;&#039;&#039; || string ||  || Filename to use when saving the output. The filename should use &amp;quot;.exr&amp;quot; as extension&amp;lt;br&amp;gt; for HDR outputs and &amp;quot;.png&amp;quot; for LDR outputs (see list above for which output is HDR&amp;lt;br&amp;gt; and which LDR)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.id&#039;&#039;&#039; || int ||  || Specify for the following outputs: &#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039;,&amp;lt;br&amp;gt; &#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039;, &#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039;&amp;lt;br&amp;gt; (to choose the object ID, material ID or radiance group ID of the output)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.index&#039;&#039;&#039; || int ||  || Specify for an imagepipeline output (RGB_IMAGEPIPELINE or RGBA_IMAGEPIPELINE)&amp;lt;br&amp;gt; to select the imagepipeline of the output. For example, if you have 3 imagepipelines defined,&amp;lt;br&amp;gt; and you want to specify the output of the third imagepipeline, use 2 for the &amp;quot;.index&amp;quot; property&amp;lt;br&amp;gt; of the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Bidir engine does not support all AOVs.&lt;br /&gt;
Not supported by Bidir are: EMISSION, DIRECT_DIFFUSE, DIRECT_GLOSSY, INDIRECT_DIFFUSE, INDIRECT_GLOSSY, INDIRECT_SPECULAR, DIRECT_SHADOW_MASK, INDIRECT_SHADOW_MASK, IRRADIANCE, RAYCOUNT.&lt;br /&gt;
&lt;br /&gt;
This is the list of output channel data types and sizes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RGB||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGB_IMAGEPIPELINE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGBA||float||film width x film height x 4||R, G, B, A&lt;br /&gt;
|-&lt;br /&gt;
|ALPHA||float||film width x film height x 1||Alpha value [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DEPTH||float||film width x film height x 1||Camera distance&lt;br /&gt;
|-&lt;br /&gt;
|POSITION||float||film width x film height x 3||World X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|GEOMETRY_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|SHADING_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_DIFFUSE||float||film width x film height x 3||Diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_GLOSSY||float||film width x film height x 3||Glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|EMISSION||float||film width x film height x 3||Emission R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_DIFFUSE||float||film width x film height x 3||Indirect diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_GLOSSY||float||film width x film height x 3||Indirect glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SPECULAR||float||film width x film height x 3||Indirect specular R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_MASK||float||film width x film height x 1||Material mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|RADIANCE_GROUP||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|UV||float||film width x film height x 2||Texture coordinates U, V&lt;br /&gt;
|-&lt;br /&gt;
|RAYCOUNT||float||film width x film height x 1||Ray count&lt;br /&gt;
|-&lt;br /&gt;
|BY_MATERIAL_ID||float||film width x film height x 3||By material ID&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID||uint||film width x film height x 1||Material ID&lt;br /&gt;
|-&lt;br /&gt;
|IRRADIANCE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID_MASK||float||film width x film height x 1||Object mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|BY_OBJECT_ID||float||film width x film height x 3||By object ID&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID||uint||film width x film height x 1||Object ID&lt;br /&gt;
|-&lt;br /&gt;
|SAMPLECOUNT||uint||film width x film height x 1||Sample count&lt;br /&gt;
|-&lt;br /&gt;
|CONVERGENCE||float||film width x film height x 1||The distance of each pixel from the convergence threshold&lt;br /&gt;
|-&lt;br /&gt;
|NOISE||float||film width x film height x 1||The noise estimated for each pixel&lt;br /&gt;
|-&lt;br /&gt;
|SERIALIZED_FILM||N/A||N/A||The complete Film serialized in binary format&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_COLOR||float||film width x film height x 3||Material ID converted to colors (with anti-aliasing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Channels===&lt;br /&gt;
&lt;br /&gt;
Film channels are implicitly enabled by declaring film outputs (even if the output is never used). For instance, declaring a &amp;quot;RGBA&amp;quot; output will automatically enable &amp;quot;RADIANCE_PER_PIXEL_NORMALIZED&amp;quot; (and &amp;quot;RADIANCE_PER_SCREEN_NORMALIZED&amp;quot; for BIDIRCPU) and &amp;quot;ALPHA&amp;quot;.&lt;br /&gt;
The supported channels are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Channel type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Last element is weight ?&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED||float||film width x film height x 4||Yes||One for each radiance group. Eye paths radiance.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED||float||film width x film height x 3||No||One for each radiance group. Light paths radiance. Used only by LIGHTCPU and BIDIRCPU.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_ALPHA||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RGB_IMAGEPIPELINE||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DEPTH||float||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_POSITION||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_GEOMETRY_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_SHADING_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_GLOSSY||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_EMISSION||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SPECULAR||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_UV||float||film width x film height x 2||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RAYCOUNT||float||film width x film height||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_MATERIAL_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_IRRADIANCE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_OBJECT_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the list of channels enabled by each output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output&lt;br /&gt;
!Enabled channels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || DEPTH&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || DEPTH, POSITION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || DEPTH, GEOMETRY_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || DEPTH, SHADING_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || DEPTH, MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || DIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || DIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || EMISSION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || INDIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || INDIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || INDIRECT_SPECULAR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || MATERIAL_ID, MATERIAL_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || DIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || INDIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || DEPTH, UV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || DEPTH, RAYCOUNT&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || BY_MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || IRRADIANCE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || DEPTH, OBJECT_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || OBJECT_ID, OBJECT_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || BY_OBJECT_ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: CHANNEL_RGB_IMAGEPIPELINE is always enable and the result of running the image pipeline.&lt;br /&gt;
&lt;br /&gt;
===Image pipeline===&lt;br /&gt;
&lt;br /&gt;
It is possible to define multiple image pipelines at the same time by using the &#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&#039;&#039;&#039; properties prefix. Each image pipeline takes as input the raw rendering and is a chain off image pipeline plugins. Each plugin receives previous plugin output and produces a new output.&lt;br /&gt;
&lt;br /&gt;
====Radiance Group====&lt;br /&gt;
&lt;br /&gt;
Radiance groups are used to get only the contribution of a group of lights in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
Lights can be grouped by setting their [[#Common_parameters | &#039;&#039;&#039;.id&#039;&#039;&#039;]] property to the same number, on materials this is done with the [[#Light_emission | &#039;&#039;&#039;.emission.id&#039;&#039;&#039;]] property.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the OpenCL engines only support up to 8 radiance groups (one of them is the default group).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.globalscale&#039;&#039;&#039; || float|| 1 || global weighting of radiance group &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.temperature &#039;&#039;&#039; || float || 6500.0 || light temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.rgbscale&#039;&#039;&#039; || vector || 1.0 1.0 1.0 || light color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.radiancescales.&amp;lt;id&amp;gt;.enabled&#039;&#039;&#039; || bool || 1 || enable radiance group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Image pipeline plug-ins====&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || linear tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || tonemapping scale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_REINHARD02=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_REINHARD02&amp;quot; || reinhard tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.prescale&#039;&#039;&#039; || float || 1.0 || reinhard prescale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.postscale&#039;&#039;&#039; || float || 1.2 || reinhard postscale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.burn&#039;&#039;&#039; || float || 3.75 || reinhard burn&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_AUTOLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_AUTOLINEAR&amp;quot; || automatic linear tonemapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LUXLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LUXLINEAR&amp;quot; || linear tonemapping with real camera settings&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sensitivity&#039;&#039;&#039; || float || 100.0 || ISO sensitivity&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.exposure&#039;&#039;&#039; || float || 0.001 || exposure time&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.fstop&#039;&#039;&#039; || float || 2.8 || f/aperture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: NOP=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipeline.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;NOP&amp;quot; || no parameters tonemapper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAMMA_CORRECTION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || gamma correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.value&#039;&#039;&#039; || float || 2.2 || gamma value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.table.size&#039;&#039;&#039; || unsigned int || 4096 || resolution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OUTPUT_SWITCHER=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OUTPUT_SWITCHER&amp;quot; || overwrite output&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;DEPTH&amp;quot; || channel whose values are used to overwrite&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.index&#039;&#039;&#039; || unsigned int || 0 || index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAUSSIANFILTER_3x3=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;GAUSSIANFILTER_3x3&amp;quot; || gaussian filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.15 || blurring weight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CAMERA_RESPONSE_FUNC=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || CAMERA_RESPONSE_FUNC || analog camera film simulation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Advantix_100CD&amp;quot; || film type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: BACKGROUND_IMG=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || BACKGROUND_IMG || show the background image where alpha &amp;lt; 1 (simple compositing)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || ... || background image path (e.g scenes/simple-mat/sky.exr)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || background image gamma&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.storage &#039;&#039;&#039; || string || auto || background image storage type&lt;br /&gt;
|}&lt;br /&gt;
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.&lt;br /&gt;
&lt;br /&gt;
=====Type: BLOOM=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;BLOOM&amp;quot; || bloom effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.radius&#039;&#039;&#039; || float || 0.07 || how large the bloom effect is in % of the image size (i.e. 1.0 = all image)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.25 || how strong the effect is (i.e. 0.0 = nothing, 1.0 = max. strength)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: VIGNETTING=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;VIGNETTING&amp;quot; || vignetting effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 0.4 || vignetting strength&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_ABERRATION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_ABERRATION&amp;quot; || color aberration effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || color aberration amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: MIST=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;MIST&amp;quot; || aerial perspective effect (fake fog)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.color&#039;&#039;&#039; || spectrum|| [1, 1, 1] || mist color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || mist amount&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.startdistance&#039;&#039;&#039; || float || 0 || distance from camera until where the mist effect has zero effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.enddistance&#039;&#039;&#039; || float || 10000 || distance from camera from where the mist effect has maximum effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.excludebackground&#039;&#039;&#039; || bool || false || Do not apply mist effect on pixels with infinite distance to the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CONTOUR_LINES=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;CONTOUR_LINES&amp;quot; || contour lines for IRRADIANCE AOV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.range&#039;&#039;&#039; || float|| ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.steps&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.zerogridsize&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: WHITE_BALANCE =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;WHITE_BALANCE&amp;quot; || White temperature correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.temperature&#039;&#039;&#039; || unsigned int|| 6500 || Target image temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_LUT =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_LUT&amp;quot; || Applies .cube LUT (look-up-table) to the input&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;lut.cube&amp;quot; || Filepath to a [https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf .cube LUT file]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || Linear interpolation between input (0.0) and output (1.0) of the plugin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: INTEL_OIDN =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;INTEL_OIDN&amp;quot; || Denoises the image using [https://github.com/OpenImageDenoise/oidn Intel OIDN]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.filter.type&#039;&#039;&#039; || string || &amp;quot;RT&amp;quot; || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.oidnmemory&#039;&#039;&#039; || int || 6000 || Approximate maximum amount of memory to use in megabytes (actual memory usage may be higher). Limiting memory usage may cause slower denoising due to internally splitting the image into overlapping tiles&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OPTIX_DENOISER =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OPTIX_DENOISER&amp;quot; || Denoises the image using the Nvidia OptiX denoiser&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.minspp&#039;&#039;&#039; || unsigned int || 0 || Minimum amount of samples to be rendered before the plugin is run (at lower sample numbers, it does not modify the input)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Subregion===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.subregion&#039;&#039;&#039; || vector || ... || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Rendering halt conditions===&lt;br /&gt;
&lt;br /&gt;
By default, a LuxCore rendering will never stop however you can enable one or multiple halt conditions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold&#039;&#039;&#039; || float || -1.0 || enable image convergence test and stops when the error is under the defined value. Use a value like &amp;quot;n / 256.0&amp;quot; where n is the level of error you are looking for. It may be hard to achieve a level of error smaller than 3.0 / 256.0. -1.0 disables the halt condition.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.warmup&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.step&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.filter.enable&#039;&#039;&#039; || bool || 1 || if the CONVERGENCE AOV (generated by the batch.haltnoisethreshold) should be filtered or not with a 3x3 box filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.stoprendering.enable&#039;&#039;&#039; || bool || 1 || Set this to 0 (false) if you only want to use the haltnoisethreshold settings for adaptive sampling in an endless render&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for stopping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.halttime&#039;&#039;&#039; || float || 0.0 || number of seconds before stopping the rendering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltspp&#039;&#039;&#039; || unsigned int || 0 || number of average samples per pixel before stopping the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Noise estimation===&lt;br /&gt;
&lt;br /&gt;
Image noise can be estimated and its result can be used to drive the Sobol and Random samplers to focus its sampling in the noisier regions.&lt;br /&gt;
Setting any of these properties will enable the noise estimation.&lt;br /&gt;
The adaptiveness strength is a Sampler property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.warmup&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.step&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.filter.scale&#039;&#039;&#039; || unsigned int || 4 || Box filter scale used to filter the NOISE AOV (generated by the noise estimation). Set to 0 to disable.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for adaptive sampling&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Scene file=&lt;br /&gt;
&lt;br /&gt;
==Camera==&lt;br /&gt;
&lt;br /&gt;
General parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;orthographic&amp;quot;, &amp;quot;environment&amp;quot; (360° panorama &amp;lt;br&amp;gt; mapped in latlong format) or &amp;quot;stereo&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.orig&#039;&#039;&#039; || point (float float float) || 0.0 10.0 0.0 || camera location&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.target&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || camera target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.up&#039;&#039;&#039; || vector (float float float) || (0.0, 0.0, 1.0) || camera up vector&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.fieldofview&#039;&#039;&#039; || float || 45.0 || field of view&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutteropen&#039;&#039;&#039; || float || 0.0 || camera shutter open time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutterclose&#039;&#039;&#039; || float || 0.0 || camera shutter close time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autovolume.enable&#039;&#039;&#039; || bool || true || try automatically to discover scene.camera.volume&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.volume&#039;&#039;&#039; || string ||  || the initial volume rays will travel in&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.cliphither&#039;&#039;&#039; || float || 1e-3 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clipyon&#039;&#039;&#039; || float || 1e30 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.screenwindow&#039;&#039;&#039; || list (float float float float) || 0.0 1.0 0.0 1.0 || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;environment&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.type&#039;&#039;&#039; || string || NONE || &amp;quot;NONE&amp;quot;, &amp;quot;UNIFORM&amp;quot;, &amp;quot;EXPONENTIAL&amp;quot;, &amp;quot;INVERSEEXPONENTIAL&amp;quot;, &amp;quot;GAUSSIAN&amp;quot;, &amp;quot;INVERSEGAUSSIAN&amp;quot;, &amp;quot;TRIANGULAR&amp;quot;, &amp;quot;CUSTOM&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.blades&#039;&#039;&#039; || int || 0 || Number of aperture blades&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.power&#039;&#039;&#039; || int || 3 || Distribution factor, only for &amp;quot;EXPONENTIAL&amp;quot; and &amp;quot;INVERSEEXPONENTIAL&amp;quot; types&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.image&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || only if type == &amp;quot;CUSTOM&amp;quot;&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scalex&#039;&#039;&#039; || float || 1.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scaley&#039;&#039;&#039; || float || 1.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.stereo.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;environment_180&amp;quot;, &amp;quot;environment_360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.eyesdistance&#039;&#039;&#039; || float || 0.0626 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensdistance&#039;&#039;&#039; || float || 0.2779 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.oculusrift.barrelpostpro.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.environment.degrees&#039;&#039;&#039; || float || 360.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;environment&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensradius&#039;&#039;&#039; || float || 0.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.focaldistance&#039;&#039;&#039; || float || 10.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autofocus.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.enable&#039;&#039;&#039; || bool || false || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.center&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.normal&#039;&#039;&#039; || vector (float float float) || 0.0 0.0 0.0 || TBD&amp;lt;br&amp;gt;(Only for &amp;quot;perspective&amp;quot;/&amp;quot;orthographic&amp;quot;/&amp;quot;stereo&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The camera supports motion blur. See [[ LuxCore_SDL_Reference_Manual_v2.0#Object_Motion_Blur | Object Motion Blur ]].&amp;lt;br&amp;gt;&lt;br /&gt;
(Only difference being that instead of the prefix &#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;&#039;&#039;&#039;, the prefix &#039;&#039;&#039;scene.camera&#039;&#039;&#039; is used when setting motion properties of the camera)&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Textures|LuxCoreRender Textures]] for a high level description and examples of the textures.&lt;br /&gt;
&lt;br /&gt;
===Mapping===&lt;br /&gt;
&lt;br /&gt;
Some texture (mostly procedural textures) supports 2D or 3D mapping parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping2d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.rotation&#039;&#039;&#039; || float || 0.0 || UV rotation (in degrees)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvscale&#039;&#039;&#039; || UV || 1.0 1.0 || UV scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvdelta&#039;&#039;&#039; || UV || 0.0 0.0 || UV translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;globalmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: add===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;add&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: subtract===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subtract&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: band===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;band&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5|| texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.interpolation&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot;|| &amp;quot;linear&amp;quot;, &amp;quot;cubic&amp;quot; or &amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset[0..n]&#039;&#039;&#039; || float || 0.0 || multiple offsets in the range of [0.0, 1.0]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value[0..n]&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || a value for each offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_blend===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_blend&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.progressiontype&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot; || linear, quadratic, easing, diagonal, spherical, quadratic_spherical, halo or radial&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.direction&#039;&#039;&#039; || string || &amp;quot;horizontal&amp;quot; || horizontal or vertical&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_clouds===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_clouds&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || hard_noise or soft_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1, voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1, voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_distortednoise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_distortednoise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noise_distortion&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distortion&#039;&#039;&#039; || float || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_magic===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_magic&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_marble===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.marbletype&#039;&#039;&#039; || string || &amp;quot;soft&amp;quot; || soft, sharp or sharper&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_musgrave===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_musgrave&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.musgravetype&#039;&#039;&#039; || string || &amp;quot;multifractal&amp;quot; || multifractal, ridged_multifractal, hybrid_multifractal, fBM or hetero_terrain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.dimension&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.lacunarity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_noise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_noise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_stucci===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_stucci&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.stuccitype&#039;&#039;&#039; || string || &amp;quot;plastic&amp;quot; || plastic, wall_in or wall_out&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_wood===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || bands, rings, bandnoise or ringnoise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_voronoi===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_voronoi&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distmetric&#039;&#039;&#039; || string || &amp;quot;actual_distance&amp;quot; || actual_distance, distance_squared, manhattan,&amp;lt;br&amp;gt; chebychev, minkowski_half, minkowski_four or minkowski&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w1&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w2&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w3&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w4&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: brick===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;brick&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bricktex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortartex&#039;&#039;&#039; || texture || 0.2 0.2 0.2 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodtex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodbias&#039;&#039;&#039; || float || 0.0 || With bias = -1, only the bricktex is used for the brick color. With bias between -1 and 1, a pseudo-random interpolation between bricktex and brickmodtex is used as brick color. With bias = 1, only the brickmodtex is used for the brick color.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickbond&#039;&#039;&#039; || string || &amp;quot;running&amp;quot; || &amp;quot;flemish&amp;quot;, &amp;quot;english&amp;quot;, &amp;quot;herringbone&amp;quot;, &amp;quot;basket&amp;quot; or &amp;quot;chain link&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickwidth&#039;&#039;&#039; || float || 0.3 || brick width&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickheight&#039;&#039;&#039; || float || 0.1 || brick height&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickdepth&#039;&#039;&#039; || float || 0.15 || brick depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortarsize&#039;&#039;&#039; || float || 0.01 ||mortar size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickrun&#039;&#039;&#039; || float || 0.75 || brick run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard3d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard3d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard2d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard2d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat1&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || float || 1.0 || constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || spectrum || (1.0, 1.0, 1.0) || RGB constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: densitygrid===&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;.data&amp;quot;, &amp;quot;.data3&amp;quot; or &amp;quot;.openvdb.file&amp;quot; to define the 3D grid values.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;densitygrid&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nx&#039;&#039;&#039; || unsigned int || || grid x size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.ny&#039;&#039;&#039; || unsigned int || || grid y size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nz&#039;&#039;&#039; || unsigned int || || grid z size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;half&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data3&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz * 3)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.file&#039;&#039;&#039; || string || || OpenVDB file name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.grid&#039;&#039;&#039; || string || || OpenVDB grid name to read from the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dots===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dots&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.inside&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.outside&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fbm===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fbm&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxk===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxk&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxn===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxn&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointalpha===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices alphas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointalpha&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointcolor===&lt;br /&gt;
&lt;br /&gt;
Use the color obtained by interpolating triangle vertices colors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointgrey===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices colors, mapped to a float value (RGB converted into greyscale).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointgrey&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || -1 || the index of the RGB channel to use. -1 means the luminance of the RGB value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hsv===&lt;br /&gt;
&lt;br /&gt;
Hue saturation value manipulation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hsv&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input color that will be manipulated&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.hue&#039;&#039;&#039; || texture || 0.5 || shift in hue (range: 0..1)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.saturation&#039;&#039;&#039; || texture || 1.0 || saturation (range: 0..inf)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 1.0 || brightness multiplier (range: 0..inf)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: imagemap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;imagemap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || name of the image file&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction value used in the image&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 || image values are multiplied by gain value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of image map wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;default&amp;quot; || extract from the image only the selected channels:&amp;lt;br&amp;gt; &amp;quot;default&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;blue&amp;quot;,&amp;lt;br&amp;gt; &amp;quot;alpha&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;colored_mean&amp;quot;, &amp;quot;rgb&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: normalmap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;normalmap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input. Is treated as an XYZ vector in tangent space.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || multiplier for adjusting normalmap height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: marble===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || marble scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.variation&#039;&#039;&#039; || float || 0.2 || marble variation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: scale===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;scale&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: uv===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: windy===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wood===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || &amp;quot;bands&amp;quot;, &amp;quot;rings&amp;quot;, &amp;quot;bandnoise&amp;quot; or &amp;quot;ringnoise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || &amp;quot;sin&amp;quot;, &amp;quot;saw&amp;quot; or &amp;quot;tri&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || &amp;quot;soft_noise&amp;quot; or &amp;quot;hard_noise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || noise size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 || noise turbulence&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 || bright&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 || contrast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wrinkled===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wrinkled&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: abs===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;abs&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: clamp===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;clamp&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.min&#039;&#039;&#039; || float || 0.0 || lower boundary of the clamping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.max&#039;&#039;&#039; || float || 1.0 || upper boundary of the clamping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: divide===&lt;br /&gt;
&lt;br /&gt;
Note: If texture2 (the divisor) is 0, 0 is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;divide&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant (dividend)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant (divisor)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: remap===&lt;br /&gt;
&lt;br /&gt;
This texture brings the value from the source range into the target range. &lt;br /&gt;
&lt;br /&gt;
Note: The value is clamped into source range before performing the remap operation, and the resulting number is also clamped into the target range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;remap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectid===&lt;br /&gt;
&lt;br /&gt;
Raw object ID (range 0 to 0xfffffffe).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectid&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidcolor===&lt;br /&gt;
&lt;br /&gt;
Object ID interpreted as color.&amp;lt;br&amp;gt;&lt;br /&gt;
The object ID is a 4 byte unsigned int. To convert to color, the lower three bytes are interpreted as r, g, b values (each range 0 to 255). The highest byte is ignored.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidnormalized===&lt;br /&gt;
&lt;br /&gt;
Normalized object ID (range 0 to 1).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidnormalized&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dotproduct ===&lt;br /&gt;
&lt;br /&gt;
Dot product of the two input vectors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dotproduct&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: power ===&lt;br /&gt;
&lt;br /&gt;
pow(base, exponent)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;power&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.base&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.exponent&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lessthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;lt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lessthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: greaterthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;gt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;greaterthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: shadingnormal ===&lt;br /&gt;
&lt;br /&gt;
Returns the shading normal of the mesh at the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;shadingnormal&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: position ===&lt;br /&gt;
&lt;br /&gt;
Returns the position of the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;position&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: splitfloat3 ===&lt;br /&gt;
&lt;br /&gt;
Extract a channel from a float3 texture. Can for example be used to get the R, G or B channel of a color texture, or to get the X, Y or Z components of a vector texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;splitfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || 0 || the channel to get from the input texture. 0 for first channel, 1 for second, 2 for third channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: makefloat3 ===&lt;br /&gt;
&lt;br /&gt;
Combine three float textures into one float3 texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;makefloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture3&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: blackbody===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blackbody&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.temperature&#039;&#039;&#039; || float || 6500 || emission temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.normalize&#039;&#039;&#039; || bool || false || normalize the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: irregulardata===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;irregulardata&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wavelengths&#039;&#039;&#039; || vector || 580.0 620.0 660.0|| wavelenghts&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || vector || 0.0 0.000015 0.0|| data (length should match wavelength&#039;s length)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lampspectrum===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lampspectrum&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Daylight&amp;quot; || lamp light spectrum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: Fresnel Textures===&lt;br /&gt;
&lt;br /&gt;
Textures for loading optical data&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelcolor====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelcolor || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.kr&#039;&#039;&#039; || vector || 0.5 0.0 0.0 || reflection color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelpreset====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || aluminium || fresnel preset (&amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelsopra====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Au.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelluxpop====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Cr.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: distort====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || distort || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0.0 || texture name or constant; input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || texture || 0.0 || texture name or constant; offset to add to the hitpoint coordinates and UV values before evaluating the input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || strength multiplier, is multiplied with the offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Volumes|LuxCoreRender Volumes]] for a high level description and examples of the volumes.&lt;br /&gt;
&lt;br /&gt;
All volumes share these properties&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.priority&#039;&#039;&#039; || unsigned int|| 0|| volume priority (when volumes overlap, the one with highest priority overrides the others)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.ior&#039;&#039;&#039; || texture|| ... || index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.absorption&#039;&#039;&#039; ||  texture || ... || absorption texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission &#039;&#039;&#039; ||  texture || ... || emission &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission.id &#039;&#039;&#039; || unsigned int || ... || emission ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Clear===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Homogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || homogeneous|| volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Heterogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || heterogeneous || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.size&#039;&#039;&#039; || float || ... || step size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.maxcount&#039;&#039;&#039; || unsigned int || ... || step maximum count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Materials==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Materials|LuxCoreRender Materials]] for a high level description and examples of the materials.&lt;br /&gt;
&lt;br /&gt;
===Common properties===&lt;br /&gt;
&lt;br /&gt;
Common material properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumptex&#039;&#039;&#039; || texture || || texture to use for the bump mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.normaltex&#039;&#039;&#039; || texture || || texture to use for the normal mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || number of rays used to sample this material. -1 means use the default global value. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumpsamplingdistance&#039;&#039;&#039; || float || 0.001 || set the offset used to sample bump/normal mapping.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.interior&#039;&#039;&#039; || string || vol1 || name of interior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.exterior&#039;&#039;&#039; || string || vol2 || name of exterior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.id&#039;&#039;&#039; || int|| ... || material id&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.transparency&#039;&#039;&#039; || texture || 1.0 || transparency of the material. 1 for opaque, 0 for fully transparent&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.shadowcatcher.enable&#039;&#039;&#039; || bool || false || If true, the material will be transparent where hit by direct light and opaque otherwise (alpha transparency). Used for compositing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Normal maps====&lt;br /&gt;
Normal maps are set first as a texture type and then assigned to the material. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scene.textures.normmap.type = imagemap&lt;br /&gt;
scene.textures.normmap.file = scenes/bump/normal.png&lt;br /&gt;
scene.textures.normmap.gamma = 1&lt;br /&gt;
&lt;br /&gt;
scene.materials.mat_white.type = matte&lt;br /&gt;
scene.materials.mat_white.kd = 0.8 0.8 0.8&lt;br /&gt;
scene.materials.mat_white.normaltex = normmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Light emission====&lt;br /&gt;
&lt;br /&gt;
All materials can emit light:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || color of the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || multiplier for lamp brigthness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesblob&#039;&#039;&#039; || blob || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light from this material. &amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.theta&#039;&#039;&#039; || float || 90.0 || How directional the light is emitted, set as the half-angle of the light source. Default is 90°.&amp;lt;br&amp;gt; Smaller values mean that more light is emitted in the direction of the face normals and less to the sides.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light source compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: archglass===&lt;br /&gt;
&lt;br /&gt;
This material should be used to replace glass material of windows when rendering architectural interiors. It allows direct light to pass trough.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;archglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: carpaint===&lt;br /&gt;
&lt;br /&gt;
Car Paint is an advanced glossy material, simulating a diffuse surface with mutliple reflective coatings.&lt;br /&gt;
&lt;br /&gt;
The available presets for the carpaint material are:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;ford f8&amp;quot;&lt;br /&gt;
*&amp;quot;polaris silber&amp;quot;&lt;br /&gt;
*&amp;quot;opel titan&amp;quot;&lt;br /&gt;
*&amp;quot;bmw339&amp;quot;&lt;br /&gt;
*&amp;quot;2k acrylack&amp;quot;&lt;br /&gt;
*&amp;quot;white&amp;quot;&lt;br /&gt;
*&amp;quot;blue&amp;quot;&lt;br /&gt;
*&amp;quot;blue matte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;carpaint&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;ford f8&amp;quot; || one of the avilable presets&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || absorption color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || absorption depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || diffuse color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: cloth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;cloth&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;denim&amp;quot; || denim, silk_charmeuse, silk_shantung, cotton_twill, wool_garbardine or polyester_lining_cloth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_u&#039;&#039;&#039; || float || 100.0 || thread count in the u direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_v&#039;&#039;&#039; || float || 100.0 || thread count in the v direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: disney===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;disney&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.basecolor&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || Base color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.subsurface&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.roughness&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.metallic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.specular&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.speculartint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoat&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoatgloss&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.anisotropic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheen&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheentint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmamount&#039;&#039;&#039; || texture || none || Linear interpolation between no film (0) and full film effect (1) for artistic control.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.cauchyb&#039;&#039;&#039; || texture || 0.0 || if defined and &amp;gt; 0.0, enable dispersion. The value is the B term of the [https://en.wikipedia.org/wiki/Cauchy%27s_equation Cauchy&#039;s equation]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossy2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossy2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossytranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossytranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmission color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks_bf&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant backface specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of backface coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d_bf&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the backface depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the backface coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce_bf&#039;&#039;&#039; || bool || false || backface simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossycoating===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossycoating&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.base&#039;&#039;&#039; || string || || name of base material, the coating layer is added on top of this material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: matte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;matte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the matte material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mattetranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mattetranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmitted color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: metal2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;metal2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.fresnel&#039;&#039;&#039; || fresnel texture || ... || [[#Type:_Fresnel_Textures | fresnel texture]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;aluminium&amp;quot; || (DEPRECATED) &amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.n&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxn texture on overwrite the .preset property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.k&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxk texture on overwrite the .preset property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mirror===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mirror&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
This material can be used to mix 2 other materials.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material1&#039;&#039;&#039; || string || mat1 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material2&#039;&#039;&#039; || string || mat2 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture or constant value used to mix the materials&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: null===&lt;br /&gt;
&lt;br /&gt;
This is empty, not visible material. It can be combined by using mix material with others. It is often used in combination with the alpha channel of an image map to render leafs, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;null&amp;quot; || type of material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughglass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughmatte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughmatte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the roughmatte material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sigma&#039;&#039;&#039; || texture || 0.0 || the sigma parameter in the Oren-Nayer shader in degrees. Zero for pure Lambertian reflection&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: velvet===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;velvet&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || color of the material&#039;s fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p1&#039;&#039;&#039; || texture || -2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p2&#039;&#039;&#039; || texture || 20.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p3&#039;&#039;&#039; || texture || 2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.thickness&#039;&#039;&#039; || texture || 0.1 || height of the fuzz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.material&#039;&#039;&#039; || string || || type of object material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.shape&#039;&#039;&#039; || string || || name of [[#Shapes | shape]] with the triangle mesh description.Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same shape, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.ply&#039;&#039;&#039; || string || || &#039;&#039;&#039;(Deprecated, use .shape instead)&#039;&#039;&#039; name of [http://en.wikipedia.org/wiki/PLY_(file_format) PLY] file with the triangle mesh description.&amp;lt;br&amp;gt;Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same file, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.vertices&#039;&#039;&#039; || float || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of float values defining the vertices of the mesh (i.e. 3 coordinates for each vertex).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.faces&#039;&#039;&#039; || unsigned int || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of unsigned int values defining the triangles of the mesh (i.e. 3 index of vertices for each triangle).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.id&#039;&#039;&#039; || unsigned int || || object ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.camerainvisible&#039;&#039;&#039; || bool || false || toggle visibility for camera rays. If set to true, the object will not show up in camera rays, but it will still be visible in reflections, refractions, shadows, indirect light etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Object Motion Blur===&lt;br /&gt;
&lt;br /&gt;
LuxCore supports transformation motion blur for objects.&lt;br /&gt;
Motion blur is enabled if an object has a motion system defined as described below.&lt;br /&gt;
&lt;br /&gt;
A motion system consists of steps (at least 2). Each step has a time (in seconds) and a transformation matrix of the object at this point in time.&lt;br /&gt;
Step indices start at 0. The times have to be monotonic (each greater than the last).&lt;br /&gt;
&lt;br /&gt;
Note that the embree accelerator only supports a maximum of 129 time steps.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.time&#039;&#039;&#039; || float || || time (in seconds) of the step&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix of the object at the given step&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Shapes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: mesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mesh&amp;quot; || mesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.ply&#039;&#039;&#039; || string || ... || mesh path (e.g &#039;&#039;scenes/luxball/luxball-shell.ply&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: inlinedmesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;inlinedmesh&amp;quot; || inlinedmesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.vertices&#039;&#039;&#039; || vector || ... || inlinedmesh vertices (e.g 0.0 0.0 0.0  1.0 0.0 0.0  0.0 1.0 0.0)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.faces&#039;&#039;&#039; || vector || ... || inlinedmesh faces (e.g 0 1 2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: pointiness===&lt;br /&gt;
&lt;br /&gt;
Contains surface curvature information in vertex alpha channel.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access this information in materials via a hitpointalpha texture.&amp;lt;br&amp;gt;&lt;br /&gt;
The values range from -1 to 1 (float).&amp;lt;br&amp;gt;&lt;br /&gt;
Values from -1 to 0 are concave, while values from 0 to 1 are convex.&lt;br /&gt;
&lt;br /&gt;
[[ Shape:_Pointiness | Examples ]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;pointiness&amp;quot; || pointiness shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || pointiness source (a mesh shape)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: strands===&lt;br /&gt;
&lt;br /&gt;
Can be used for hair, fur, grass etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you need to define the camera before defining any strands shapes, because the tesselation process is viewpoint-dependent.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;strands&amp;quot; || strands shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.file&#039;&#039;&#039; || string || ... || strands file (&#039;&#039;scenes/strands/straight.hair&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Strands tessellation methods====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbon&amp;quot; || ribbon tessellation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.usecameraposition&#039;&#039;&#039; || bool || 1 || use camera position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbonadaptive&amp;quot; || ribbon adaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.maxdepth&#039;&#039;&#039; || unsigned int || 12 || max tessellation depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.error &#039;&#039;&#039; || float || 0.0075 || max tessellation error &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solid&amp;quot; || solid tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solid.sidecount &#039;&#039;&#039; || unsigned int || 12 || tessellation&#039;s side count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solidadaptive&amp;quot; || solidadaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.sidecount &#039;&#039;&#039; || unsigned int || 8 || tessellation&#039;s side count&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.maxdepth&#039;&#039;&#039; || unsigned int || 16 || tessellation&#039;s max depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.error&#039;&#039;&#039; || float || 0.05 || tessellation&#039;s max error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: group===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: displacement===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: subdiv===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subdiv&amp;quot; || subdivided shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || source mesh name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxlevel&#039;&#039;&#039; || unsigned integer || 2 || maximum level of subdivision&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxedgescreensize&#039;&#039;&#039; || float || 0.0 || maximum edge screen size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.adaptive&#039;&#039;&#039; || bool || 1 || Adaptive refinement / Uniform refinement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: harlequin===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: simplify===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: islandaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: randomtriangleaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
==Light sources==&lt;br /&gt;
&lt;br /&gt;
Check [[Lighting|LuxCoreRender Lighting]] for an high level description and example of the light sources.&lt;br /&gt;
&lt;br /&gt;
===Common parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || intensity of the light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light for this light source.&amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sun===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sun&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.relsize&#039;&#039;&#039; || float || 1.0 || relative size to the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sky2===&lt;br /&gt;
&lt;br /&gt;
Hosek-Wilkie sky model.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sky2&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || vector || ... || gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.groundalbedo&#039;&#039;&#039; || vector || 0.5 0.5 0.5 || ground albedo&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.enable&#039;&#039;&#039; || bool || 1 || enable ground color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.color&#039;&#039;&#039; || vector|| ... || RGB ground color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: infinite===&lt;br /&gt;
&lt;br /&gt;
Spherical lightsource surrounding the scene at infinite distance.&amp;lt;br&amp;gt;&lt;br /&gt;
Used for image based lighting (IBL) and HDR environment lighting if the file is a high dynamic range image.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;infinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || filename of the environment map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction used by the image map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || environment map storage type (&amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot; or &amp;quot;float&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.sampleupperhemisphereonly&#039;&#039;&#039; || bool || false || an option set to black the lower hemisphere. Mostly useful for shadow catchers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: point===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;point&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mappoint===&lt;br /&gt;
&lt;br /&gt;
Point light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mappoint&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sphere===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mapsphere===&lt;br /&gt;
&lt;br /&gt;
Sphere light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mapsphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: spot===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;spot&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.coneangle&#039;&#039;&#039; || float || 30.0 || angle in degrees of the spotlight cone&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.conedeltaangle&#039;&#039;&#039; || float || 5.0 || angle at which the spotlight intensity starts to fade from the edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: projection===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;projection&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.fov&#039;&#039;&#039; || float || 45.0 || field of view in terms of angular spread along the shorter image axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || filename of the image to project. If not specified, a constat light color will be used.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constantinfinite===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constantinfinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sharpdistant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sharpdistant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: distant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;distant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.theta&#039;&#039;&#039; || float || 10.0 || half angle of the light source in degree. Must be &amp;gt; 0 for soft shadows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: laser===&lt;br /&gt;
&lt;br /&gt;
A light source emitting parallel light rays (like sharpdistant light, but starting inside the scene instead of infinitely far away).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;laser&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 0.01 || radius of the laser beam&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2713</id>
		<title>LuxCore SDL Reference Manual v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2713"/>
		<updated>2026-06-07T09:22:23Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Camera */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The scene description language (SDL) is used to configure the renderer and to define objects, materials, textures etc. in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
The file ending of the render configuration file is &amp;quot;.cfg&amp;quot;, for the scene file it&#039;s &amp;quot;.scn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These files are usually created by exporter plugins, e.g. BlendLuxCore.&amp;lt;br&amp;gt;&lt;br /&gt;
This wiki page is primarily a reference for exporter developers, normal end-users should not need to edit cfg/scn files by hand.&lt;br /&gt;
&lt;br /&gt;
Sometimes the API is updated faster than the wiki, in this case you can look at the code directly: https://github.com/LuxCoreRender/LuxCore/tree/master/src/slg/scene&lt;br /&gt;
&lt;br /&gt;
Note that matrices are passed as flat lists in column-major form.&lt;br /&gt;
&lt;br /&gt;
=Render configuration file=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;resumerendering.filesafe&#039;&#039;&#039; || bool || 1 || enable/disable &amp;quot;safe save&amp;quot; mode for resume rendering file. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Seed==&lt;br /&gt;
&lt;br /&gt;
The global seed value that is used to generate random numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Two images rendered with the same seed will have the same noise pattern.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.seed&#039;&#039;&#039; || unsigned int || 1 || min 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Periodic save==&lt;br /&gt;
&lt;br /&gt;
Options related to periodic save operations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.period&#039;&#039;&#039; || float || 0 || save the resume rendering file every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.filename&#039;&#039;&#039; || string || &amp;quot;resume.rsm&amp;quot; || the name to use to save the rendering resume information periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.period&#039;&#039;&#039; || float || 0 || save the Film every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.filename&#039;&#039;&#039; || string || &amp;quot;film.flm&amp;quot; || the name to use to save the film periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.outputs.period&#039;&#039;&#039; || float || 600 || save all Film outputs every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Render Engine==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || engine type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPU Render Engines ===&lt;br /&gt;
&lt;br /&gt;
CPU render engines are written in C++ and don&#039;t require OpenCL. All CPU render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;native.threads.count&#039;&#039;&#039; || int || CPU core count || &amp;gt; 0 || &amp;gt; 0 || The number of threads will be used for the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following CPU engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A path tracer with full image plane rendering (i.e. supporting Metropolis sampler).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHCPU&amp;quot;====&lt;br /&gt;
Biased path tracer with many control options and support for tile rendering.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepath.sampling.aa.size&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, 13] || All diffuse/glossy/specular samples are multiplied with the squared aa size: final_samples = aa^2 * (diffuse^2 + glossy^2 + specular^2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.size&#039;&#039;&#039; || int || 32 || ≥ 8 || [8, 256] || Tile size in pixels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || o or 1 || Re-render the image until a halt threshold is met or indefinitely&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold&#039;&#039;&#039; || float || 6.0 / 256.0 || &amp;gt; 0.0 || [1.0 / 256.0, 6.0 / 256.0] || Target noise level&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold.reduction&#039;&#039;&#039; || float || 0.0 || [0.0, 1.0] || [0.75, 0.95] || Multiply noise level with this number when all tiles have met the previous noise level. Set to 0 to disable (so rendering will stop at the noise level)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.warmup.count&#039;&#039;&#039; || int || 32 || ≥ 0 || [8, 128] || Warm up period for the convergence test expressed in samples per pixel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A Bidirectional path tracer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a eye path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHCPU&amp;quot;====&lt;br /&gt;
Engine optimized for interactive scene editing and camera movement.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to RTPATHCPUSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same properties as [[#&amp;quot;PATHCPU&amp;quot; | &amp;quot;PATHCPU&amp;quot;]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.size&#039;&#039;&#039; || int || 4 ||  ||  || render scaled down film for the first few frames after a scene edit (to make interactions more fluid)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.weight&#039;&#039;&#039; || float || 0.1 ||  ||  || description: TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenCL Render Engines ===&lt;br /&gt;
&lt;br /&gt;
OpenCL engines can run on GPUs, CPUs and other types of computing devices, they require OpenCL to run. All OpenCL render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.platform.index&#039;&#039;&#039; || int || -1 || A valid platform index || -1 || Select the OpenCL platform to use. All devices available on all platforms will be used with -1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL CPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL GPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.devices.select&#039;&#039;&#039; || string || &amp;quot;&amp;quot; || Any valid selection string || Any valid selection string || Select each OpenCL device to use. It is a string of &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;. &amp;quot;1&amp;quot; means use the device, &amp;quot;0&amp;quot; do not&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following OpenCL engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHOCL&amp;quot;====&lt;br /&gt;
OpenCL version of PATHCPU. Supports the same settings as [[#&amp;quot;PATHCPU&amp;quot; | PATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;pathocl.pixelatomics.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable pixel atomic operation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.task.count&#039;&#039;&#039; || int || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot; or &amp;gt; 0 || [64K, 1024K] || The number of tasks sent to the OpenCL device in one kernel call&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A PATHOCL version optimized for real-time rendering with fixed frame-rate and variable quality.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;PATHOCL&amp;quot; | PATHOCL]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels in the first passes. For instance 4x4 than 2x2 and than always 1x1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview.step&#039;&#039;&#039; || int || 8 || &amp;gt; 0 || [1, 32] || Each preview step is rendered for n frames&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels, outside the preview phase, in order to reduce the per frame rendering time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
OpenCL version of TILEPATHCPU.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;TILEPATHCPU&amp;quot; | TILEPATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepathocl.devices.maxtiles&#039;&#039;&#039; || int || 16 || ≥ 1 || [1, 32] || Maximum number of tiles to send in a single call to each OpenCL device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;FILESAVER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Saves everything needed to render the scene to the output path, including textures and meshes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.format&#039;&#039;&#039; || string || &amp;quot;TXT&amp;quot; || &amp;quot;TXT&amp;quot; for a text SDL format and &amp;quot;BIN&amp;quot; for a single file binary format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.filename&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene.bcf&amp;quot; || file name for &amp;quot;BIN&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.directory&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene&amp;quot; || output path for &amp;quot;TXT&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || render engine to use when rendering the scene after it was saved with FILESAVER. Any engine string from above can be used here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Experimental and debugging engines===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These engines are experimental, deprecated or are only intended for very specific purposes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRVMCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Bidir with vertex merging, currently experimental.&amp;lt;br&amp;gt;&lt;br /&gt;
Supports the same settings as [[#&amp;quot;BIDIRCPU&amp;quot; | BIDIRCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.lightpath.count&#039;&#039;&#039; || int || 16 * 1024 || &amp;gt; 0 || || Number of lightpaths per pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.startradius.scale&#039;&#039;&#039; || float || 0.003 || &amp;gt; 0 || || Photon radius of the first pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.alpha&#039;&#039;&#039; || float || 3 || &amp;gt; 0 || [0.0, 1.0] || Photon radius is multiplied with this value after every pass to reduce the radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;LIGHTCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
For testing.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sampler==&lt;br /&gt;
&lt;br /&gt;
Samplers are used by following render engines:&lt;br /&gt;
&lt;br /&gt;
* LIGHTCPU&lt;br /&gt;
* PATHCPU&lt;br /&gt;
* BIDIRCPU&lt;br /&gt;
* BIDIRVMCPU&lt;br /&gt;
* PATHOCL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.type&#039;&#039;&#039; || string || &amp;quot;SOBOL&amp;quot; || sampler type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following samplers are available:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;SOBOL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Sampler with sobol pattern.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.sobol.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;METROPOLIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Metropolis sampler.&lt;br /&gt;
Parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.largesteprate&#039;&#039;&#039; || float || 0.4 || 0 ≤ x ≤ 1 || 0 - 1 || Probability of generating a large sample mutation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.maxconsecutivereject&#039;&#039;&#039; || int || 512 || x ≥ 0 || 0 - 32768 || Number of consecutive rejects before a next mutation is forced. Low values can cause bias&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.imagemutationrate&#039;&#039;&#039; || float || 0.1 || 0 ≤ x ≤ 1 || 0 - 1 || Maximum distance over the image plane for a small mutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;RANDOM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Fully random sampler. This sampler is mostly intended for testing purpose.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.random.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.type&#039;&#039;&#039; || string || &amp;quot;BLACKMANHARRIS&amp;quot; || || || Type of pixel filter.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.width&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Filter radius in pixels. Does not have an effect on the NONE filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.xwidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.ywidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Available filters are:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;NONE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Disable pixel filtering.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BOX&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Box pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;GAUSSIAN&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Gaussian pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.gaussian.alpha&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 10.0 || Gaussian rate of falloff. Lower values give blurrier images. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL_SS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter with super-sampling (i.e. image will be filtered first with a grid of 4 pixels for each pixel).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BLACKMANHARRIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Blcakman-Harris pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
==Light Strategy==&lt;br /&gt;
&lt;br /&gt;
The direct light sampling strategy is defined by the following property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.type&#039;&#039;&#039; || string || &amp;quot;LOG_POWER&amp;quot; || &amp;quot;UNIFORM&amp;quot;, &amp;quot;POWER&amp;quot;, &amp;quot;LOG_POWER&amp;quot; or &amp;quot;DLS_CACHE&amp;quot; || N/A || Direct light sampling strategy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;UNIFORM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;UNIFORM&amp;quot; light strategy samples evenly all light sources.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POWER&amp;quot; light strategy samples the light sources based on their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;LOG_POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;LOG_POWER&amp;quot; light strategy samples the light sources based on logarithm of their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;DLS_CACHE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Build direct light sampling cache to optimize many-lights rendering, beneficial in scenes with multiple light sources with few overlap between their influence areas (e.g. a building with many disconnected rooms and interior lights).&lt;br /&gt;
&lt;br /&gt;
Options for the DLS cache:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.radius&#039;&#039;&#039; || float || 0.0 ||  || N/A || Entry radius in meters, automatic radius estimation is used if the radius is set to 0&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.normalangle&#039;&#039;&#039; || float || 25.0 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.maxpasses&#039;&#039;&#039; || int || 1024 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.convergencethreshold&#039;&#039;&#039; || float || 0.05 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.warmupsamples&#039;&#039;&#039; || int || 24 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.targetcachehitratio&#039;&#039;&#039; || float || 0.995 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxdepth&#039;&#039;&#039; || int || 4 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxsamplescount&#039;&#039;&#039; || int || 10000000 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.file&#039;&#039;&#039; || string || &amp;quot;&amp;quot; ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.safesave&#039;&#039;&#039; || bool || 1 ||  || N/A || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator==&lt;br /&gt;
&lt;br /&gt;
The ray/triangle intersection accelerator to use for the rendering is defined by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.type&#039;&#039;&#039; || string || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot;, &amp;quot;BVH&amp;quot;, &amp;quot;MBVH&amp;quot;, &amp;quot;EMBREE&amp;quot;  || &amp;quot;AUTO&amp;quot; || The intersection accelerator. &amp;quot;AUTO&amp;quot; will select the best one available for the current [[LuxRays]] intersection device. &amp;quot;EMBREE&amp;quot; is currently usable only on CPU render engines&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.instances.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || Enable instance support (or disable in order to slightly increase rendering speed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Epsilon==&lt;br /&gt;
&lt;br /&gt;
Minimum and maximum allowed value for scene epsilon can be define by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.min&#039;&#039;&#039; || float || 1e-5f || Any float value || 1e-6f ≤ x ≤ 1e-1f || Minimum allowed value for scene epsilon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.max&#039;&#039;&#039; || float || 1e-1f || Any float value || 1e-3f ≤ x ≤ 1e+2f || Maximum allowed value for scene epsilon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Film==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; of Film serialization. A backup of the output is always valid even in the case of a system failure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film OpenCL Options===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.enable&#039;&#039;&#039; || bool || 1 || enable OpenCL film operations&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.platform&#039;&#039;&#039; || unsigned int || -1 || choose which platform  will be used by the film operations. (0 is first platform, 1 second and so on. -1 for all)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.device&#039;&#039;&#039; || unsigned int || -1 || choose which device  will be used by the film operations. (0 is first device, 1 second and so on. -1 for first GPU device)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Outputs (aka AOVs)===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; for Film outputs. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The film object supports many types of outputs (aka AOVs). The complete list of supported output types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SAMPLECOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CONVERGENCE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;NOISE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SERIALIZED_FILM&#039;&#039;&#039; || N/A&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_COLOR&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outputs are enabled with the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.type&#039;&#039;&#039; || string ||  || Type of output, e.g. &amp;quot;RGBA&amp;quot; or &amp;quot;ALPHA&amp;quot; (see the list above for the available types)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.filename&#039;&#039;&#039; || string ||  || Filename to use when saving the output. The filename should use &amp;quot;.exr&amp;quot; as extension&amp;lt;br&amp;gt; for HDR outputs and &amp;quot;.png&amp;quot; for LDR outputs (see list above for which output is HDR&amp;lt;br&amp;gt; and which LDR)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.id&#039;&#039;&#039; || int ||  || Specify for the following outputs: &#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039;,&amp;lt;br&amp;gt; &#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039;, &#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039;&amp;lt;br&amp;gt; (to choose the object ID, material ID or radiance group ID of the output)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.index&#039;&#039;&#039; || int ||  || Specify for an imagepipeline output (RGB_IMAGEPIPELINE or RGBA_IMAGEPIPELINE)&amp;lt;br&amp;gt; to select the imagepipeline of the output. For example, if you have 3 imagepipelines defined,&amp;lt;br&amp;gt; and you want to specify the output of the third imagepipeline, use 2 for the &amp;quot;.index&amp;quot; property&amp;lt;br&amp;gt; of the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Bidir engine does not support all AOVs.&lt;br /&gt;
Not supported by Bidir are: EMISSION, DIRECT_DIFFUSE, DIRECT_GLOSSY, INDIRECT_DIFFUSE, INDIRECT_GLOSSY, INDIRECT_SPECULAR, DIRECT_SHADOW_MASK, INDIRECT_SHADOW_MASK, IRRADIANCE, RAYCOUNT.&lt;br /&gt;
&lt;br /&gt;
This is the list of output channel data types and sizes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RGB||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGB_IMAGEPIPELINE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGBA||float||film width x film height x 4||R, G, B, A&lt;br /&gt;
|-&lt;br /&gt;
|ALPHA||float||film width x film height x 1||Alpha value [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DEPTH||float||film width x film height x 1||Camera distance&lt;br /&gt;
|-&lt;br /&gt;
|POSITION||float||film width x film height x 3||World X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|GEOMETRY_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|SHADING_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_DIFFUSE||float||film width x film height x 3||Diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_GLOSSY||float||film width x film height x 3||Glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|EMISSION||float||film width x film height x 3||Emission R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_DIFFUSE||float||film width x film height x 3||Indirect diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_GLOSSY||float||film width x film height x 3||Indirect glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SPECULAR||float||film width x film height x 3||Indirect specular R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_MASK||float||film width x film height x 1||Material mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|RADIANCE_GROUP||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|UV||float||film width x film height x 2||Texture coordinates U, V&lt;br /&gt;
|-&lt;br /&gt;
|RAYCOUNT||float||film width x film height x 1||Ray count&lt;br /&gt;
|-&lt;br /&gt;
|BY_MATERIAL_ID||float||film width x film height x 3||By material ID&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID||uint||film width x film height x 1||Material ID&lt;br /&gt;
|-&lt;br /&gt;
|IRRADIANCE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID_MASK||float||film width x film height x 1||Object mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|BY_OBJECT_ID||float||film width x film height x 3||By object ID&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID||uint||film width x film height x 1||Object ID&lt;br /&gt;
|-&lt;br /&gt;
|SAMPLECOUNT||uint||film width x film height x 1||Sample count&lt;br /&gt;
|-&lt;br /&gt;
|CONVERGENCE||float||film width x film height x 1||The distance of each pixel from the convergence threshold&lt;br /&gt;
|-&lt;br /&gt;
|NOISE||float||film width x film height x 1||The noise estimated for each pixel&lt;br /&gt;
|-&lt;br /&gt;
|SERIALIZED_FILM||N/A||N/A||The complete Film serialized in binary format&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_COLOR||float||film width x film height x 3||Material ID converted to colors (with anti-aliasing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Channels===&lt;br /&gt;
&lt;br /&gt;
Film channels are implicitly enabled by declaring film outputs (even if the output is never used). For instance, declaring a &amp;quot;RGBA&amp;quot; output will automatically enable &amp;quot;RADIANCE_PER_PIXEL_NORMALIZED&amp;quot; (and &amp;quot;RADIANCE_PER_SCREEN_NORMALIZED&amp;quot; for BIDIRCPU) and &amp;quot;ALPHA&amp;quot;.&lt;br /&gt;
The supported channels are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Channel type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Last element is weight ?&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED||float||film width x film height x 4||Yes||One for each radiance group. Eye paths radiance.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED||float||film width x film height x 3||No||One for each radiance group. Light paths radiance. Used only by LIGHTCPU and BIDIRCPU.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_ALPHA||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RGB_IMAGEPIPELINE||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DEPTH||float||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_POSITION||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_GEOMETRY_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_SHADING_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_GLOSSY||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_EMISSION||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SPECULAR||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_UV||float||film width x film height x 2||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RAYCOUNT||float||film width x film height||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_MATERIAL_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_IRRADIANCE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_OBJECT_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the list of channels enabled by each output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output&lt;br /&gt;
!Enabled channels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || DEPTH&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || DEPTH, POSITION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || DEPTH, GEOMETRY_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || DEPTH, SHADING_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || DEPTH, MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || DIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || DIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || EMISSION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || INDIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || INDIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || INDIRECT_SPECULAR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || MATERIAL_ID, MATERIAL_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || DIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || INDIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || DEPTH, UV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || DEPTH, RAYCOUNT&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || BY_MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || IRRADIANCE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || DEPTH, OBJECT_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || OBJECT_ID, OBJECT_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || BY_OBJECT_ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: CHANNEL_RGB_IMAGEPIPELINE is always enable and the result of running the image pipeline.&lt;br /&gt;
&lt;br /&gt;
===Image pipeline===&lt;br /&gt;
&lt;br /&gt;
It is possible to define multiple image pipelines at the same time by using the &#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&#039;&#039;&#039; properties prefix. Each image pipeline takes as input the raw rendering and is a chain off image pipeline plugins. Each plugin receives previous plugin output and produces a new output.&lt;br /&gt;
&lt;br /&gt;
====Radiance Group====&lt;br /&gt;
&lt;br /&gt;
Radiance groups are used to get only the contribution of a group of lights in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
Lights can be grouped by setting their [[#Common_parameters | &#039;&#039;&#039;.id&#039;&#039;&#039;]] property to the same number, on materials this is done with the [[#Light_emission | &#039;&#039;&#039;.emission.id&#039;&#039;&#039;]] property.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the OpenCL engines only support up to 8 radiance groups (one of them is the default group).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.globalscale&#039;&#039;&#039; || float|| 1 || global weighting of radiance group &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.temperature &#039;&#039;&#039; || float || 6500.0 || light temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.rgbscale&#039;&#039;&#039; || vector || 1.0 1.0 1.0 || light color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.radiancescales.&amp;lt;id&amp;gt;.enabled&#039;&#039;&#039; || bool || 1 || enable radiance group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Image pipeline plug-ins====&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || linear tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || tonemapping scale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_REINHARD02=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_REINHARD02&amp;quot; || reinhard tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.prescale&#039;&#039;&#039; || float || 1.0 || reinhard prescale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.postscale&#039;&#039;&#039; || float || 1.2 || reinhard postscale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.burn&#039;&#039;&#039; || float || 3.75 || reinhard burn&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_AUTOLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_AUTOLINEAR&amp;quot; || automatic linear tonemapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LUXLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LUXLINEAR&amp;quot; || linear tonemapping with real camera settings&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sensitivity&#039;&#039;&#039; || float || 100.0 || ISO sensitivity&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.exposure&#039;&#039;&#039; || float || 0.001 || exposure time&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.fstop&#039;&#039;&#039; || float || 2.8 || f/aperture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: NOP=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipeline.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;NOP&amp;quot; || no parameters tonemapper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAMMA_CORRECTION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || gamma correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.value&#039;&#039;&#039; || float || 2.2 || gamma value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.table.size&#039;&#039;&#039; || unsigned int || 4096 || resolution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OUTPUT_SWITCHER=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OUTPUT_SWITCHER&amp;quot; || overwrite output&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;DEPTH&amp;quot; || channel whose values are used to overwrite&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.index&#039;&#039;&#039; || unsigned int || 0 || index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAUSSIANFILTER_3x3=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;GAUSSIANFILTER_3x3&amp;quot; || gaussian filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.15 || blurring weight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CAMERA_RESPONSE_FUNC=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || CAMERA_RESPONSE_FUNC || analog camera film simulation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Advantix_100CD&amp;quot; || film type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: BACKGROUND_IMG=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || BACKGROUND_IMG || show the background image where alpha &amp;lt; 1 (simple compositing)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || ... || background image path (e.g scenes/simple-mat/sky.exr)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || background image gamma&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.storage &#039;&#039;&#039; || string || auto || background image storage type&lt;br /&gt;
|}&lt;br /&gt;
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.&lt;br /&gt;
&lt;br /&gt;
=====Type: BLOOM=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;BLOOM&amp;quot; || bloom effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.radius&#039;&#039;&#039; || float || 0.07 || how large the bloom effect is in % of the image size (i.e. 1.0 = all image)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.25 || how strong the effect is (i.e. 0.0 = nothing, 1.0 = max. strength)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: VIGNETTING=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;VIGNETTING&amp;quot; || vignetting effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 0.4 || vignetting strength&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_ABERRATION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_ABERRATION&amp;quot; || color aberration effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || color aberration amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: MIST=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;MIST&amp;quot; || aerial perspective effect (fake fog)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.color&#039;&#039;&#039; || spectrum|| [1, 1, 1] || mist color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || mist amount&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.startdistance&#039;&#039;&#039; || float || 0 || distance from camera until where the mist effect has zero effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.enddistance&#039;&#039;&#039; || float || 10000 || distance from camera from where the mist effect has maximum effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.excludebackground&#039;&#039;&#039; || bool || false || Do not apply mist effect on pixels with infinite distance to the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CONTOUR_LINES=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;CONTOUR_LINES&amp;quot; || contour lines for IRRADIANCE AOV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.range&#039;&#039;&#039; || float|| ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.steps&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.zerogridsize&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: WHITE_BALANCE =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;WHITE_BALANCE&amp;quot; || White temperature correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.temperature&#039;&#039;&#039; || unsigned int|| 6500 || Target image temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_LUT =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_LUT&amp;quot; || Applies .cube LUT (look-up-table) to the input&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;lut.cube&amp;quot; || Filepath to a [https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf .cube LUT file]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || Linear interpolation between input (0.0) and output (1.0) of the plugin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: INTEL_OIDN =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;INTEL_OIDN&amp;quot; || Denoises the image using [https://github.com/OpenImageDenoise/oidn Intel OIDN]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.filter.type&#039;&#039;&#039; || string || &amp;quot;RT&amp;quot; || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.oidnmemory&#039;&#039;&#039; || int || 6000 || Approximate maximum amount of memory to use in megabytes (actual memory usage may be higher). Limiting memory usage may cause slower denoising due to internally splitting the image into overlapping tiles&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OPTIX_DENOISER =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OPTIX_DENOISER&amp;quot; || Denoises the image using the Nvidia OptiX denoiser&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.minspp&#039;&#039;&#039; || unsigned int || 0 || Minimum amount of samples to be rendered before the plugin is run (at lower sample numbers, it does not modify the input)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Subregion===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.subregion&#039;&#039;&#039; || vector || ... || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Rendering halt conditions===&lt;br /&gt;
&lt;br /&gt;
By default, a LuxCore rendering will never stop however you can enable one or multiple halt conditions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold&#039;&#039;&#039; || float || -1.0 || enable image convergence test and stops when the error is under the defined value. Use a value like &amp;quot;n / 256.0&amp;quot; where n is the level of error you are looking for. It may be hard to achieve a level of error smaller than 3.0 / 256.0. -1.0 disables the halt condition.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.warmup&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.step&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.filter.enable&#039;&#039;&#039; || bool || 1 || if the CONVERGENCE AOV (generated by the batch.haltnoisethreshold) should be filtered or not with a 3x3 box filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.stoprendering.enable&#039;&#039;&#039; || bool || 1 || Set this to 0 (false) if you only want to use the haltnoisethreshold settings for adaptive sampling in an endless render&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for stopping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.halttime&#039;&#039;&#039; || float || 0.0 || number of seconds before stopping the rendering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltspp&#039;&#039;&#039; || unsigned int || 0 || number of average samples per pixel before stopping the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Noise estimation===&lt;br /&gt;
&lt;br /&gt;
Image noise can be estimated and its result can be used to drive the Sobol and Random samplers to focus its sampling in the noisier regions.&lt;br /&gt;
Setting any of these properties will enable the noise estimation.&lt;br /&gt;
The adaptiveness strength is a Sampler property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.warmup&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.step&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.filter.scale&#039;&#039;&#039; || unsigned int || 4 || Box filter scale used to filter the NOISE AOV (generated by the noise estimation). Set to 0 to disable.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for adaptive sampling&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Scene file=&lt;br /&gt;
&lt;br /&gt;
==Camera==&lt;br /&gt;
&lt;br /&gt;
General parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;orthographic&amp;quot;, &amp;quot;environment&amp;quot; (360° panorama &amp;lt;br&amp;gt; mapped in latlong format) or &amp;quot;stereo&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.orig&#039;&#039;&#039; || point (float float float) || 0.0 10.0 0.0 || camera location&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.target&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || camera target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.up&#039;&#039;&#039; || vector (float float float) || (0.0, 0.0, 1.0) || camera up vector&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.fieldofview&#039;&#039;&#039; || float || 45.0 || field of view&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutteropen&#039;&#039;&#039; || float || 0.0 || camera shutter open time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutterclose&#039;&#039;&#039; || float || 0.0 || camera shutter close time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autovolume.enable&#039;&#039;&#039; || bool || true || try automatically to discover scene.camera.volume&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.volume&#039;&#039;&#039; || string ||  || the initial volume rays will travel in&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.cliphither&#039;&#039;&#039; || float || 1e-3 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clipyon&#039;&#039;&#039; || float || 1e30 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;orthographic&amp;quot; or &amp;quot;perspective&amp;quot; or &amp;quot;environment&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.screenwindow&#039;&#039;&#039; || list (float float float float) || 0.0 1.0 0.0 1.0 || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;perspective&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.type&#039;&#039;&#039; || string || NONE || &amp;quot;NONE&amp;quot;, &amp;quot;UNIFORM&amp;quot;, &amp;quot;EXPONENTIAL&amp;quot;, &amp;quot;INVERSEEXPONENTIAL&amp;quot;, &amp;quot;GAUSSIAN&amp;quot;, &amp;quot;INVERSEGAUSSIAN&amp;quot;, &amp;quot;TRIANGULAR&amp;quot;, &amp;quot;CUSTOM&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.blades&#039;&#039;&#039; || int || 0 || Number of aperture blades&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.power&#039;&#039;&#039; || int || 3 || Distribution factor, only for &amp;quot;EXPONENTIAL&amp;quot; and &amp;quot;INVERSEEXPONENTIAL&amp;quot; types&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.image&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || only if type == &amp;quot;CUSTOM&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scalex&#039;&#039;&#039; || float || 1.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scaley&#039;&#039;&#039; || float || 1.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;stereo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.stereo.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;environment_180&amp;quot;, &amp;quot;environment_360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.eyesdistance&#039;&#039;&#039; || float || 0.0626 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensdistance&#039;&#039;&#039; || float || 0.2779 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;perspective&amp;quot; or &amp;quot;stereo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.oculusrift.barrelpostpro.enable&#039;&#039;&#039; || bool || false || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;environment&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.environment.degrees&#039;&#039;&#039; || float || 360.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type != &amp;quot;environment&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensradius&#039;&#039;&#039; || float || 0.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.focaldistance&#039;&#039;&#039; || float || 10.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autofocus.enable&#039;&#039;&#039; || bool || false || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.enable&#039;&#039;&#039; || bool || false || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.center&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.normal&#039;&#039;&#039; || vector (float float float) || 0.0 0.0 0.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The camera supports motion blur. See [[ LuxCore_SDL_Reference_Manual_v2.0#Object_Motion_Blur | Object Motion Blur ]].&amp;lt;br&amp;gt;&lt;br /&gt;
(Only difference being that instead of the prefix &#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;&#039;&#039;&#039;, the prefix &#039;&#039;&#039;scene.camera&#039;&#039;&#039; is used when setting motion properties of the camera)&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Textures|LuxCoreRender Textures]] for a high level description and examples of the textures.&lt;br /&gt;
&lt;br /&gt;
===Mapping===&lt;br /&gt;
&lt;br /&gt;
Some texture (mostly procedural textures) supports 2D or 3D mapping parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping2d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.rotation&#039;&#039;&#039; || float || 0.0 || UV rotation (in degrees)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvscale&#039;&#039;&#039; || UV || 1.0 1.0 || UV scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvdelta&#039;&#039;&#039; || UV || 0.0 0.0 || UV translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;globalmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: add===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;add&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: subtract===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subtract&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: band===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;band&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5|| texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.interpolation&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot;|| &amp;quot;linear&amp;quot;, &amp;quot;cubic&amp;quot; or &amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset[0..n]&#039;&#039;&#039; || float || 0.0 || multiple offsets in the range of [0.0, 1.0]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value[0..n]&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || a value for each offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_blend===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_blend&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.progressiontype&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot; || linear, quadratic, easing, diagonal, spherical, quadratic_spherical, halo or radial&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.direction&#039;&#039;&#039; || string || &amp;quot;horizontal&amp;quot; || horizontal or vertical&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_clouds===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_clouds&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || hard_noise or soft_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1, voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1, voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_distortednoise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_distortednoise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noise_distortion&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distortion&#039;&#039;&#039; || float || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_magic===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_magic&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_marble===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.marbletype&#039;&#039;&#039; || string || &amp;quot;soft&amp;quot; || soft, sharp or sharper&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_musgrave===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_musgrave&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.musgravetype&#039;&#039;&#039; || string || &amp;quot;multifractal&amp;quot; || multifractal, ridged_multifractal, hybrid_multifractal, fBM or hetero_terrain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.dimension&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.lacunarity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_noise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_noise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_stucci===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_stucci&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.stuccitype&#039;&#039;&#039; || string || &amp;quot;plastic&amp;quot; || plastic, wall_in or wall_out&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_wood===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || bands, rings, bandnoise or ringnoise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_voronoi===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_voronoi&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distmetric&#039;&#039;&#039; || string || &amp;quot;actual_distance&amp;quot; || actual_distance, distance_squared, manhattan,&amp;lt;br&amp;gt; chebychev, minkowski_half, minkowski_four or minkowski&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w1&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w2&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w3&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w4&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: brick===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;brick&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bricktex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortartex&#039;&#039;&#039; || texture || 0.2 0.2 0.2 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodtex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodbias&#039;&#039;&#039; || float || 0.0 || With bias = -1, only the bricktex is used for the brick color. With bias between -1 and 1, a pseudo-random interpolation between bricktex and brickmodtex is used as brick color. With bias = 1, only the brickmodtex is used for the brick color.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickbond&#039;&#039;&#039; || string || &amp;quot;running&amp;quot; || &amp;quot;flemish&amp;quot;, &amp;quot;english&amp;quot;, &amp;quot;herringbone&amp;quot;, &amp;quot;basket&amp;quot; or &amp;quot;chain link&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickwidth&#039;&#039;&#039; || float || 0.3 || brick width&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickheight&#039;&#039;&#039; || float || 0.1 || brick height&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickdepth&#039;&#039;&#039; || float || 0.15 || brick depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortarsize&#039;&#039;&#039; || float || 0.01 ||mortar size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickrun&#039;&#039;&#039; || float || 0.75 || brick run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard3d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard3d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard2d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard2d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat1&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || float || 1.0 || constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || spectrum || (1.0, 1.0, 1.0) || RGB constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: densitygrid===&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;.data&amp;quot;, &amp;quot;.data3&amp;quot; or &amp;quot;.openvdb.file&amp;quot; to define the 3D grid values.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;densitygrid&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nx&#039;&#039;&#039; || unsigned int || || grid x size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.ny&#039;&#039;&#039; || unsigned int || || grid y size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nz&#039;&#039;&#039; || unsigned int || || grid z size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;half&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data3&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz * 3)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.file&#039;&#039;&#039; || string || || OpenVDB file name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.grid&#039;&#039;&#039; || string || || OpenVDB grid name to read from the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dots===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dots&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.inside&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.outside&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fbm===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fbm&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxk===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxk&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxn===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxn&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointalpha===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices alphas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointalpha&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointcolor===&lt;br /&gt;
&lt;br /&gt;
Use the color obtained by interpolating triangle vertices colors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointgrey===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices colors, mapped to a float value (RGB converted into greyscale).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointgrey&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || -1 || the index of the RGB channel to use. -1 means the luminance of the RGB value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hsv===&lt;br /&gt;
&lt;br /&gt;
Hue saturation value manipulation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hsv&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input color that will be manipulated&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.hue&#039;&#039;&#039; || texture || 0.5 || shift in hue (range: 0..1)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.saturation&#039;&#039;&#039; || texture || 1.0 || saturation (range: 0..inf)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 1.0 || brightness multiplier (range: 0..inf)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: imagemap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;imagemap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || name of the image file&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction value used in the image&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 || image values are multiplied by gain value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of image map wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;default&amp;quot; || extract from the image only the selected channels:&amp;lt;br&amp;gt; &amp;quot;default&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;blue&amp;quot;,&amp;lt;br&amp;gt; &amp;quot;alpha&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;colored_mean&amp;quot;, &amp;quot;rgb&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: normalmap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;normalmap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input. Is treated as an XYZ vector in tangent space.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || multiplier for adjusting normalmap height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: marble===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || marble scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.variation&#039;&#039;&#039; || float || 0.2 || marble variation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: scale===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;scale&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: uv===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: windy===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wood===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || &amp;quot;bands&amp;quot;, &amp;quot;rings&amp;quot;, &amp;quot;bandnoise&amp;quot; or &amp;quot;ringnoise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || &amp;quot;sin&amp;quot;, &amp;quot;saw&amp;quot; or &amp;quot;tri&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || &amp;quot;soft_noise&amp;quot; or &amp;quot;hard_noise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || noise size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 || noise turbulence&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 || bright&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 || contrast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wrinkled===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wrinkled&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: abs===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;abs&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: clamp===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;clamp&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.min&#039;&#039;&#039; || float || 0.0 || lower boundary of the clamping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.max&#039;&#039;&#039; || float || 1.0 || upper boundary of the clamping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: divide===&lt;br /&gt;
&lt;br /&gt;
Note: If texture2 (the divisor) is 0, 0 is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;divide&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant (dividend)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant (divisor)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: remap===&lt;br /&gt;
&lt;br /&gt;
This texture brings the value from the source range into the target range. &lt;br /&gt;
&lt;br /&gt;
Note: The value is clamped into source range before performing the remap operation, and the resulting number is also clamped into the target range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;remap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectid===&lt;br /&gt;
&lt;br /&gt;
Raw object ID (range 0 to 0xfffffffe).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectid&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidcolor===&lt;br /&gt;
&lt;br /&gt;
Object ID interpreted as color.&amp;lt;br&amp;gt;&lt;br /&gt;
The object ID is a 4 byte unsigned int. To convert to color, the lower three bytes are interpreted as r, g, b values (each range 0 to 255). The highest byte is ignored.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidnormalized===&lt;br /&gt;
&lt;br /&gt;
Normalized object ID (range 0 to 1).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidnormalized&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dotproduct ===&lt;br /&gt;
&lt;br /&gt;
Dot product of the two input vectors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dotproduct&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: power ===&lt;br /&gt;
&lt;br /&gt;
pow(base, exponent)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;power&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.base&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.exponent&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lessthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;lt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lessthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: greaterthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;gt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;greaterthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: shadingnormal ===&lt;br /&gt;
&lt;br /&gt;
Returns the shading normal of the mesh at the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;shadingnormal&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: position ===&lt;br /&gt;
&lt;br /&gt;
Returns the position of the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;position&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: splitfloat3 ===&lt;br /&gt;
&lt;br /&gt;
Extract a channel from a float3 texture. Can for example be used to get the R, G or B channel of a color texture, or to get the X, Y or Z components of a vector texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;splitfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || 0 || the channel to get from the input texture. 0 for first channel, 1 for second, 2 for third channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: makefloat3 ===&lt;br /&gt;
&lt;br /&gt;
Combine three float textures into one float3 texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;makefloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture3&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: blackbody===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blackbody&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.temperature&#039;&#039;&#039; || float || 6500 || emission temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.normalize&#039;&#039;&#039; || bool || false || normalize the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: irregulardata===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;irregulardata&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wavelengths&#039;&#039;&#039; || vector || 580.0 620.0 660.0|| wavelenghts&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || vector || 0.0 0.000015 0.0|| data (length should match wavelength&#039;s length)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lampspectrum===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lampspectrum&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Daylight&amp;quot; || lamp light spectrum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: Fresnel Textures===&lt;br /&gt;
&lt;br /&gt;
Textures for loading optical data&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelcolor====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelcolor || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.kr&#039;&#039;&#039; || vector || 0.5 0.0 0.0 || reflection color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelpreset====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || aluminium || fresnel preset (&amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelsopra====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Au.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelluxpop====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Cr.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: distort====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || distort || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0.0 || texture name or constant; input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || texture || 0.0 || texture name or constant; offset to add to the hitpoint coordinates and UV values before evaluating the input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || strength multiplier, is multiplied with the offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Volumes|LuxCoreRender Volumes]] for a high level description and examples of the volumes.&lt;br /&gt;
&lt;br /&gt;
All volumes share these properties&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.priority&#039;&#039;&#039; || unsigned int|| 0|| volume priority (when volumes overlap, the one with highest priority overrides the others)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.ior&#039;&#039;&#039; || texture|| ... || index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.absorption&#039;&#039;&#039; ||  texture || ... || absorption texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission &#039;&#039;&#039; ||  texture || ... || emission &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission.id &#039;&#039;&#039; || unsigned int || ... || emission ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Clear===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Homogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || homogeneous|| volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Heterogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || heterogeneous || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.size&#039;&#039;&#039; || float || ... || step size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.maxcount&#039;&#039;&#039; || unsigned int || ... || step maximum count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Materials==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Materials|LuxCoreRender Materials]] for a high level description and examples of the materials.&lt;br /&gt;
&lt;br /&gt;
===Common properties===&lt;br /&gt;
&lt;br /&gt;
Common material properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumptex&#039;&#039;&#039; || texture || || texture to use for the bump mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.normaltex&#039;&#039;&#039; || texture || || texture to use for the normal mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || number of rays used to sample this material. -1 means use the default global value. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumpsamplingdistance&#039;&#039;&#039; || float || 0.001 || set the offset used to sample bump/normal mapping.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.interior&#039;&#039;&#039; || string || vol1 || name of interior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.exterior&#039;&#039;&#039; || string || vol2 || name of exterior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.id&#039;&#039;&#039; || int|| ... || material id&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.transparency&#039;&#039;&#039; || texture || 1.0 || transparency of the material. 1 for opaque, 0 for fully transparent&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.shadowcatcher.enable&#039;&#039;&#039; || bool || false || If true, the material will be transparent where hit by direct light and opaque otherwise (alpha transparency). Used for compositing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Normal maps====&lt;br /&gt;
Normal maps are set first as a texture type and then assigned to the material. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scene.textures.normmap.type = imagemap&lt;br /&gt;
scene.textures.normmap.file = scenes/bump/normal.png&lt;br /&gt;
scene.textures.normmap.gamma = 1&lt;br /&gt;
&lt;br /&gt;
scene.materials.mat_white.type = matte&lt;br /&gt;
scene.materials.mat_white.kd = 0.8 0.8 0.8&lt;br /&gt;
scene.materials.mat_white.normaltex = normmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Light emission====&lt;br /&gt;
&lt;br /&gt;
All materials can emit light:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || color of the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || multiplier for lamp brigthness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesblob&#039;&#039;&#039; || blob || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light from this material. &amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.theta&#039;&#039;&#039; || float || 90.0 || How directional the light is emitted, set as the half-angle of the light source. Default is 90°.&amp;lt;br&amp;gt; Smaller values mean that more light is emitted in the direction of the face normals and less to the sides.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light source compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: archglass===&lt;br /&gt;
&lt;br /&gt;
This material should be used to replace glass material of windows when rendering architectural interiors. It allows direct light to pass trough.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;archglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: carpaint===&lt;br /&gt;
&lt;br /&gt;
Car Paint is an advanced glossy material, simulating a diffuse surface with mutliple reflective coatings.&lt;br /&gt;
&lt;br /&gt;
The available presets for the carpaint material are:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;ford f8&amp;quot;&lt;br /&gt;
*&amp;quot;polaris silber&amp;quot;&lt;br /&gt;
*&amp;quot;opel titan&amp;quot;&lt;br /&gt;
*&amp;quot;bmw339&amp;quot;&lt;br /&gt;
*&amp;quot;2k acrylack&amp;quot;&lt;br /&gt;
*&amp;quot;white&amp;quot;&lt;br /&gt;
*&amp;quot;blue&amp;quot;&lt;br /&gt;
*&amp;quot;blue matte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;carpaint&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;ford f8&amp;quot; || one of the avilable presets&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || absorption color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || absorption depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || diffuse color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: cloth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;cloth&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;denim&amp;quot; || denim, silk_charmeuse, silk_shantung, cotton_twill, wool_garbardine or polyester_lining_cloth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_u&#039;&#039;&#039; || float || 100.0 || thread count in the u direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_v&#039;&#039;&#039; || float || 100.0 || thread count in the v direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: disney===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;disney&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.basecolor&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || Base color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.subsurface&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.roughness&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.metallic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.specular&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.speculartint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoat&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoatgloss&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.anisotropic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheen&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheentint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmamount&#039;&#039;&#039; || texture || none || Linear interpolation between no film (0) and full film effect (1) for artistic control.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.cauchyb&#039;&#039;&#039; || texture || 0.0 || if defined and &amp;gt; 0.0, enable dispersion. The value is the B term of the [https://en.wikipedia.org/wiki/Cauchy%27s_equation Cauchy&#039;s equation]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossy2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossy2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossytranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossytranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmission color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks_bf&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant backface specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of backface coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d_bf&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the backface depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the backface coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce_bf&#039;&#039;&#039; || bool || false || backface simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossycoating===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossycoating&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.base&#039;&#039;&#039; || string || || name of base material, the coating layer is added on top of this material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: matte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;matte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the matte material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mattetranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mattetranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmitted color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: metal2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;metal2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.fresnel&#039;&#039;&#039; || fresnel texture || ... || [[#Type:_Fresnel_Textures | fresnel texture]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;aluminium&amp;quot; || (DEPRECATED) &amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.n&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxn texture on overwrite the .preset property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.k&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxk texture on overwrite the .preset property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mirror===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mirror&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
This material can be used to mix 2 other materials.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material1&#039;&#039;&#039; || string || mat1 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material2&#039;&#039;&#039; || string || mat2 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture or constant value used to mix the materials&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: null===&lt;br /&gt;
&lt;br /&gt;
This is empty, not visible material. It can be combined by using mix material with others. It is often used in combination with the alpha channel of an image map to render leafs, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;null&amp;quot; || type of material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughglass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughmatte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughmatte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the roughmatte material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sigma&#039;&#039;&#039; || texture || 0.0 || the sigma parameter in the Oren-Nayer shader in degrees. Zero for pure Lambertian reflection&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: velvet===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;velvet&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || color of the material&#039;s fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p1&#039;&#039;&#039; || texture || -2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p2&#039;&#039;&#039; || texture || 20.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p3&#039;&#039;&#039; || texture || 2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.thickness&#039;&#039;&#039; || texture || 0.1 || height of the fuzz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.material&#039;&#039;&#039; || string || || type of object material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.shape&#039;&#039;&#039; || string || || name of [[#Shapes | shape]] with the triangle mesh description.Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same shape, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.ply&#039;&#039;&#039; || string || || &#039;&#039;&#039;(Deprecated, use .shape instead)&#039;&#039;&#039; name of [http://en.wikipedia.org/wiki/PLY_(file_format) PLY] file with the triangle mesh description.&amp;lt;br&amp;gt;Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same file, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.vertices&#039;&#039;&#039; || float || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of float values defining the vertices of the mesh (i.e. 3 coordinates for each vertex).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.faces&#039;&#039;&#039; || unsigned int || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of unsigned int values defining the triangles of the mesh (i.e. 3 index of vertices for each triangle).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.id&#039;&#039;&#039; || unsigned int || || object ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.camerainvisible&#039;&#039;&#039; || bool || false || toggle visibility for camera rays. If set to true, the object will not show up in camera rays, but it will still be visible in reflections, refractions, shadows, indirect light etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Object Motion Blur===&lt;br /&gt;
&lt;br /&gt;
LuxCore supports transformation motion blur for objects.&lt;br /&gt;
Motion blur is enabled if an object has a motion system defined as described below.&lt;br /&gt;
&lt;br /&gt;
A motion system consists of steps (at least 2). Each step has a time (in seconds) and a transformation matrix of the object at this point in time.&lt;br /&gt;
Step indices start at 0. The times have to be monotonic (each greater than the last).&lt;br /&gt;
&lt;br /&gt;
Note that the embree accelerator only supports a maximum of 129 time steps.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.time&#039;&#039;&#039; || float || || time (in seconds) of the step&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix of the object at the given step&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Shapes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: mesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mesh&amp;quot; || mesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.ply&#039;&#039;&#039; || string || ... || mesh path (e.g &#039;&#039;scenes/luxball/luxball-shell.ply&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: inlinedmesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;inlinedmesh&amp;quot; || inlinedmesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.vertices&#039;&#039;&#039; || vector || ... || inlinedmesh vertices (e.g 0.0 0.0 0.0  1.0 0.0 0.0  0.0 1.0 0.0)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.faces&#039;&#039;&#039; || vector || ... || inlinedmesh faces (e.g 0 1 2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: pointiness===&lt;br /&gt;
&lt;br /&gt;
Contains surface curvature information in vertex alpha channel.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access this information in materials via a hitpointalpha texture.&amp;lt;br&amp;gt;&lt;br /&gt;
The values range from -1 to 1 (float).&amp;lt;br&amp;gt;&lt;br /&gt;
Values from -1 to 0 are concave, while values from 0 to 1 are convex.&lt;br /&gt;
&lt;br /&gt;
[[ Shape:_Pointiness | Examples ]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;pointiness&amp;quot; || pointiness shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || pointiness source (a mesh shape)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: strands===&lt;br /&gt;
&lt;br /&gt;
Can be used for hair, fur, grass etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you need to define the camera before defining any strands shapes, because the tesselation process is viewpoint-dependent.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;strands&amp;quot; || strands shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.file&#039;&#039;&#039; || string || ... || strands file (&#039;&#039;scenes/strands/straight.hair&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Strands tessellation methods====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbon&amp;quot; || ribbon tessellation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.usecameraposition&#039;&#039;&#039; || bool || 1 || use camera position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbonadaptive&amp;quot; || ribbon adaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.maxdepth&#039;&#039;&#039; || unsigned int || 12 || max tessellation depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.error &#039;&#039;&#039; || float || 0.0075 || max tessellation error &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solid&amp;quot; || solid tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solid.sidecount &#039;&#039;&#039; || unsigned int || 12 || tessellation&#039;s side count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solidadaptive&amp;quot; || solidadaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.sidecount &#039;&#039;&#039; || unsigned int || 8 || tessellation&#039;s side count&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.maxdepth&#039;&#039;&#039; || unsigned int || 16 || tessellation&#039;s max depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.error&#039;&#039;&#039; || float || 0.05 || tessellation&#039;s max error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: group===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: displacement===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: subdiv===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subdiv&amp;quot; || subdivided shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || source mesh name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxlevel&#039;&#039;&#039; || unsigned integer || 2 || maximum level of subdivision&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxedgescreensize&#039;&#039;&#039; || float || 0.0 || maximum edge screen size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.adaptive&#039;&#039;&#039; || bool || 1 || Adaptive refinement / Uniform refinement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: harlequin===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: simplify===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: islandaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: randomtriangleaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
==Light sources==&lt;br /&gt;
&lt;br /&gt;
Check [[Lighting|LuxCoreRender Lighting]] for an high level description and example of the light sources.&lt;br /&gt;
&lt;br /&gt;
===Common parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || intensity of the light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light for this light source.&amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sun===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sun&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.relsize&#039;&#039;&#039; || float || 1.0 || relative size to the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sky2===&lt;br /&gt;
&lt;br /&gt;
Hosek-Wilkie sky model.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sky2&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || vector || ... || gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.groundalbedo&#039;&#039;&#039; || vector || 0.5 0.5 0.5 || ground albedo&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.enable&#039;&#039;&#039; || bool || 1 || enable ground color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.color&#039;&#039;&#039; || vector|| ... || RGB ground color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: infinite===&lt;br /&gt;
&lt;br /&gt;
Spherical lightsource surrounding the scene at infinite distance.&amp;lt;br&amp;gt;&lt;br /&gt;
Used for image based lighting (IBL) and HDR environment lighting if the file is a high dynamic range image.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;infinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || filename of the environment map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction used by the image map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || environment map storage type (&amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot; or &amp;quot;float&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.sampleupperhemisphereonly&#039;&#039;&#039; || bool || false || an option set to black the lower hemisphere. Mostly useful for shadow catchers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: point===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;point&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mappoint===&lt;br /&gt;
&lt;br /&gt;
Point light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mappoint&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sphere===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mapsphere===&lt;br /&gt;
&lt;br /&gt;
Sphere light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mapsphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: spot===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;spot&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.coneangle&#039;&#039;&#039; || float || 30.0 || angle in degrees of the spotlight cone&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.conedeltaangle&#039;&#039;&#039; || float || 5.0 || angle at which the spotlight intensity starts to fade from the edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: projection===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;projection&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.fov&#039;&#039;&#039; || float || 45.0 || field of view in terms of angular spread along the shorter image axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || filename of the image to project. If not specified, a constat light color will be used.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constantinfinite===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constantinfinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sharpdistant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sharpdistant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: distant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;distant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.theta&#039;&#039;&#039; || float || 10.0 || half angle of the light source in degree. Must be &amp;gt; 0 for soft shadows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: laser===&lt;br /&gt;
&lt;br /&gt;
A light source emitting parallel light rays (like sharpdistant light, but starting inside the scene instead of infinitely far away).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;laser&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 0.01 || radius of the laser beam&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2712</id>
		<title>LuxCore SDL Reference Manual v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2712"/>
		<updated>2026-06-06T15:32:47Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Camera */ add missing parameters (need better grouping and descriptions)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The scene description language (SDL) is used to configure the renderer and to define objects, materials, textures etc. in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
The file ending of the render configuration file is &amp;quot;.cfg&amp;quot;, for the scene file it&#039;s &amp;quot;.scn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These files are usually created by exporter plugins, e.g. BlendLuxCore.&amp;lt;br&amp;gt;&lt;br /&gt;
This wiki page is primarily a reference for exporter developers, normal end-users should not need to edit cfg/scn files by hand.&lt;br /&gt;
&lt;br /&gt;
Sometimes the API is updated faster than the wiki, in this case you can look at the code directly: https://github.com/LuxCoreRender/LuxCore/tree/master/src/slg/scene&lt;br /&gt;
&lt;br /&gt;
Note that matrices are passed as flat lists in column-major form.&lt;br /&gt;
&lt;br /&gt;
=Render configuration file=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;resumerendering.filesafe&#039;&#039;&#039; || bool || 1 || enable/disable &amp;quot;safe save&amp;quot; mode for resume rendering file. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Seed==&lt;br /&gt;
&lt;br /&gt;
The global seed value that is used to generate random numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Two images rendered with the same seed will have the same noise pattern.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.seed&#039;&#039;&#039; || unsigned int || 1 || min 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Periodic save==&lt;br /&gt;
&lt;br /&gt;
Options related to periodic save operations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.period&#039;&#039;&#039; || float || 0 || save the resume rendering file every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.filename&#039;&#039;&#039; || string || &amp;quot;resume.rsm&amp;quot; || the name to use to save the rendering resume information periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.period&#039;&#039;&#039; || float || 0 || save the Film every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.filename&#039;&#039;&#039; || string || &amp;quot;film.flm&amp;quot; || the name to use to save the film periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.outputs.period&#039;&#039;&#039; || float || 600 || save all Film outputs every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Render Engine==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || engine type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPU Render Engines ===&lt;br /&gt;
&lt;br /&gt;
CPU render engines are written in C++ and don&#039;t require OpenCL. All CPU render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;native.threads.count&#039;&#039;&#039; || int || CPU core count || &amp;gt; 0 || &amp;gt; 0 || The number of threads will be used for the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following CPU engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A path tracer with full image plane rendering (i.e. supporting Metropolis sampler).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHCPU&amp;quot;====&lt;br /&gt;
Biased path tracer with many control options and support for tile rendering.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepath.sampling.aa.size&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, 13] || All diffuse/glossy/specular samples are multiplied with the squared aa size: final_samples = aa^2 * (diffuse^2 + glossy^2 + specular^2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.size&#039;&#039;&#039; || int || 32 || ≥ 8 || [8, 256] || Tile size in pixels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || o or 1 || Re-render the image until a halt threshold is met or indefinitely&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold&#039;&#039;&#039; || float || 6.0 / 256.0 || &amp;gt; 0.0 || [1.0 / 256.0, 6.0 / 256.0] || Target noise level&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold.reduction&#039;&#039;&#039; || float || 0.0 || [0.0, 1.0] || [0.75, 0.95] || Multiply noise level with this number when all tiles have met the previous noise level. Set to 0 to disable (so rendering will stop at the noise level)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.warmup.count&#039;&#039;&#039; || int || 32 || ≥ 0 || [8, 128] || Warm up period for the convergence test expressed in samples per pixel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A Bidirectional path tracer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a eye path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHCPU&amp;quot;====&lt;br /&gt;
Engine optimized for interactive scene editing and camera movement.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to RTPATHCPUSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same properties as [[#&amp;quot;PATHCPU&amp;quot; | &amp;quot;PATHCPU&amp;quot;]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.size&#039;&#039;&#039; || int || 4 ||  ||  || render scaled down film for the first few frames after a scene edit (to make interactions more fluid)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.weight&#039;&#039;&#039; || float || 0.1 ||  ||  || description: TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenCL Render Engines ===&lt;br /&gt;
&lt;br /&gt;
OpenCL engines can run on GPUs, CPUs and other types of computing devices, they require OpenCL to run. All OpenCL render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.platform.index&#039;&#039;&#039; || int || -1 || A valid platform index || -1 || Select the OpenCL platform to use. All devices available on all platforms will be used with -1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL CPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL GPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.devices.select&#039;&#039;&#039; || string || &amp;quot;&amp;quot; || Any valid selection string || Any valid selection string || Select each OpenCL device to use. It is a string of &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;. &amp;quot;1&amp;quot; means use the device, &amp;quot;0&amp;quot; do not&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following OpenCL engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHOCL&amp;quot;====&lt;br /&gt;
OpenCL version of PATHCPU. Supports the same settings as [[#&amp;quot;PATHCPU&amp;quot; | PATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;pathocl.pixelatomics.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable pixel atomic operation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.task.count&#039;&#039;&#039; || int || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot; or &amp;gt; 0 || [64K, 1024K] || The number of tasks sent to the OpenCL device in one kernel call&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A PATHOCL version optimized for real-time rendering with fixed frame-rate and variable quality.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;PATHOCL&amp;quot; | PATHOCL]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels in the first passes. For instance 4x4 than 2x2 and than always 1x1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview.step&#039;&#039;&#039; || int || 8 || &amp;gt; 0 || [1, 32] || Each preview step is rendered for n frames&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels, outside the preview phase, in order to reduce the per frame rendering time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
OpenCL version of TILEPATHCPU.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;TILEPATHCPU&amp;quot; | TILEPATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepathocl.devices.maxtiles&#039;&#039;&#039; || int || 16 || ≥ 1 || [1, 32] || Maximum number of tiles to send in a single call to each OpenCL device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;FILESAVER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Saves everything needed to render the scene to the output path, including textures and meshes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.format&#039;&#039;&#039; || string || &amp;quot;TXT&amp;quot; || &amp;quot;TXT&amp;quot; for a text SDL format and &amp;quot;BIN&amp;quot; for a single file binary format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.filename&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene.bcf&amp;quot; || file name for &amp;quot;BIN&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.directory&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene&amp;quot; || output path for &amp;quot;TXT&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || render engine to use when rendering the scene after it was saved with FILESAVER. Any engine string from above can be used here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Experimental and debugging engines===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These engines are experimental, deprecated or are only intended for very specific purposes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRVMCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Bidir with vertex merging, currently experimental.&amp;lt;br&amp;gt;&lt;br /&gt;
Supports the same settings as [[#&amp;quot;BIDIRCPU&amp;quot; | BIDIRCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.lightpath.count&#039;&#039;&#039; || int || 16 * 1024 || &amp;gt; 0 || || Number of lightpaths per pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.startradius.scale&#039;&#039;&#039; || float || 0.003 || &amp;gt; 0 || || Photon radius of the first pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.alpha&#039;&#039;&#039; || float || 3 || &amp;gt; 0 || [0.0, 1.0] || Photon radius is multiplied with this value after every pass to reduce the radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;LIGHTCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
For testing.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sampler==&lt;br /&gt;
&lt;br /&gt;
Samplers are used by following render engines:&lt;br /&gt;
&lt;br /&gt;
* LIGHTCPU&lt;br /&gt;
* PATHCPU&lt;br /&gt;
* BIDIRCPU&lt;br /&gt;
* BIDIRVMCPU&lt;br /&gt;
* PATHOCL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.type&#039;&#039;&#039; || string || &amp;quot;SOBOL&amp;quot; || sampler type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following samplers are available:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;SOBOL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Sampler with sobol pattern.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.sobol.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;METROPOLIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Metropolis sampler.&lt;br /&gt;
Parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.largesteprate&#039;&#039;&#039; || float || 0.4 || 0 ≤ x ≤ 1 || 0 - 1 || Probability of generating a large sample mutation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.maxconsecutivereject&#039;&#039;&#039; || int || 512 || x ≥ 0 || 0 - 32768 || Number of consecutive rejects before a next mutation is forced. Low values can cause bias&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.imagemutationrate&#039;&#039;&#039; || float || 0.1 || 0 ≤ x ≤ 1 || 0 - 1 || Maximum distance over the image plane for a small mutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;RANDOM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Fully random sampler. This sampler is mostly intended for testing purpose.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.random.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.type&#039;&#039;&#039; || string || &amp;quot;BLACKMANHARRIS&amp;quot; || || || Type of pixel filter.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.width&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Filter radius in pixels. Does not have an effect on the NONE filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.xwidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.ywidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Available filters are:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;NONE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Disable pixel filtering.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BOX&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Box pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;GAUSSIAN&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Gaussian pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.gaussian.alpha&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 10.0 || Gaussian rate of falloff. Lower values give blurrier images. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL_SS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter with super-sampling (i.e. image will be filtered first with a grid of 4 pixels for each pixel).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BLACKMANHARRIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Blcakman-Harris pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
==Light Strategy==&lt;br /&gt;
&lt;br /&gt;
The direct light sampling strategy is defined by the following property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.type&#039;&#039;&#039; || string || &amp;quot;LOG_POWER&amp;quot; || &amp;quot;UNIFORM&amp;quot;, &amp;quot;POWER&amp;quot;, &amp;quot;LOG_POWER&amp;quot; or &amp;quot;DLS_CACHE&amp;quot; || N/A || Direct light sampling strategy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;UNIFORM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;UNIFORM&amp;quot; light strategy samples evenly all light sources.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POWER&amp;quot; light strategy samples the light sources based on their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;LOG_POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;LOG_POWER&amp;quot; light strategy samples the light sources based on logarithm of their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;DLS_CACHE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Build direct light sampling cache to optimize many-lights rendering, beneficial in scenes with multiple light sources with few overlap between their influence areas (e.g. a building with many disconnected rooms and interior lights).&lt;br /&gt;
&lt;br /&gt;
Options for the DLS cache:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.radius&#039;&#039;&#039; || float || 0.0 ||  || N/A || Entry radius in meters, automatic radius estimation is used if the radius is set to 0&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.normalangle&#039;&#039;&#039; || float || 25.0 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.maxpasses&#039;&#039;&#039; || int || 1024 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.convergencethreshold&#039;&#039;&#039; || float || 0.05 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.warmupsamples&#039;&#039;&#039; || int || 24 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.targetcachehitratio&#039;&#039;&#039; || float || 0.995 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxdepth&#039;&#039;&#039; || int || 4 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxsamplescount&#039;&#039;&#039; || int || 10000000 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.file&#039;&#039;&#039; || string || &amp;quot;&amp;quot; ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.safesave&#039;&#039;&#039; || bool || 1 ||  || N/A || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator==&lt;br /&gt;
&lt;br /&gt;
The ray/triangle intersection accelerator to use for the rendering is defined by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.type&#039;&#039;&#039; || string || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot;, &amp;quot;BVH&amp;quot;, &amp;quot;MBVH&amp;quot;, &amp;quot;EMBREE&amp;quot;  || &amp;quot;AUTO&amp;quot; || The intersection accelerator. &amp;quot;AUTO&amp;quot; will select the best one available for the current [[LuxRays]] intersection device. &amp;quot;EMBREE&amp;quot; is currently usable only on CPU render engines&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.instances.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || Enable instance support (or disable in order to slightly increase rendering speed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Epsilon==&lt;br /&gt;
&lt;br /&gt;
Minimum and maximum allowed value for scene epsilon can be define by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.min&#039;&#039;&#039; || float || 1e-5f || Any float value || 1e-6f ≤ x ≤ 1e-1f || Minimum allowed value for scene epsilon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.max&#039;&#039;&#039; || float || 1e-1f || Any float value || 1e-3f ≤ x ≤ 1e+2f || Maximum allowed value for scene epsilon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Film==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; of Film serialization. A backup of the output is always valid even in the case of a system failure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film OpenCL Options===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.enable&#039;&#039;&#039; || bool || 1 || enable OpenCL film operations&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.platform&#039;&#039;&#039; || unsigned int || -1 || choose which platform  will be used by the film operations. (0 is first platform, 1 second and so on. -1 for all)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.device&#039;&#039;&#039; || unsigned int || -1 || choose which device  will be used by the film operations. (0 is first device, 1 second and so on. -1 for first GPU device)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Outputs (aka AOVs)===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; for Film outputs. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The film object supports many types of outputs (aka AOVs). The complete list of supported output types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SAMPLECOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CONVERGENCE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;NOISE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SERIALIZED_FILM&#039;&#039;&#039; || N/A&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_COLOR&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outputs are enabled with the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.type&#039;&#039;&#039; || string ||  || Type of output, e.g. &amp;quot;RGBA&amp;quot; or &amp;quot;ALPHA&amp;quot; (see the list above for the available types)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.filename&#039;&#039;&#039; || string ||  || Filename to use when saving the output. The filename should use &amp;quot;.exr&amp;quot; as extension&amp;lt;br&amp;gt; for HDR outputs and &amp;quot;.png&amp;quot; for LDR outputs (see list above for which output is HDR&amp;lt;br&amp;gt; and which LDR)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.id&#039;&#039;&#039; || int ||  || Specify for the following outputs: &#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039;,&amp;lt;br&amp;gt; &#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039;, &#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039;&amp;lt;br&amp;gt; (to choose the object ID, material ID or radiance group ID of the output)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.index&#039;&#039;&#039; || int ||  || Specify for an imagepipeline output (RGB_IMAGEPIPELINE or RGBA_IMAGEPIPELINE)&amp;lt;br&amp;gt; to select the imagepipeline of the output. For example, if you have 3 imagepipelines defined,&amp;lt;br&amp;gt; and you want to specify the output of the third imagepipeline, use 2 for the &amp;quot;.index&amp;quot; property&amp;lt;br&amp;gt; of the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Bidir engine does not support all AOVs.&lt;br /&gt;
Not supported by Bidir are: EMISSION, DIRECT_DIFFUSE, DIRECT_GLOSSY, INDIRECT_DIFFUSE, INDIRECT_GLOSSY, INDIRECT_SPECULAR, DIRECT_SHADOW_MASK, INDIRECT_SHADOW_MASK, IRRADIANCE, RAYCOUNT.&lt;br /&gt;
&lt;br /&gt;
This is the list of output channel data types and sizes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RGB||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGB_IMAGEPIPELINE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGBA||float||film width x film height x 4||R, G, B, A&lt;br /&gt;
|-&lt;br /&gt;
|ALPHA||float||film width x film height x 1||Alpha value [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DEPTH||float||film width x film height x 1||Camera distance&lt;br /&gt;
|-&lt;br /&gt;
|POSITION||float||film width x film height x 3||World X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|GEOMETRY_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|SHADING_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_DIFFUSE||float||film width x film height x 3||Diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_GLOSSY||float||film width x film height x 3||Glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|EMISSION||float||film width x film height x 3||Emission R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_DIFFUSE||float||film width x film height x 3||Indirect diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_GLOSSY||float||film width x film height x 3||Indirect glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SPECULAR||float||film width x film height x 3||Indirect specular R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_MASK||float||film width x film height x 1||Material mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|RADIANCE_GROUP||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|UV||float||film width x film height x 2||Texture coordinates U, V&lt;br /&gt;
|-&lt;br /&gt;
|RAYCOUNT||float||film width x film height x 1||Ray count&lt;br /&gt;
|-&lt;br /&gt;
|BY_MATERIAL_ID||float||film width x film height x 3||By material ID&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID||uint||film width x film height x 1||Material ID&lt;br /&gt;
|-&lt;br /&gt;
|IRRADIANCE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID_MASK||float||film width x film height x 1||Object mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|BY_OBJECT_ID||float||film width x film height x 3||By object ID&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID||uint||film width x film height x 1||Object ID&lt;br /&gt;
|-&lt;br /&gt;
|SAMPLECOUNT||uint||film width x film height x 1||Sample count&lt;br /&gt;
|-&lt;br /&gt;
|CONVERGENCE||float||film width x film height x 1||The distance of each pixel from the convergence threshold&lt;br /&gt;
|-&lt;br /&gt;
|NOISE||float||film width x film height x 1||The noise estimated for each pixel&lt;br /&gt;
|-&lt;br /&gt;
|SERIALIZED_FILM||N/A||N/A||The complete Film serialized in binary format&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_COLOR||float||film width x film height x 3||Material ID converted to colors (with anti-aliasing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Channels===&lt;br /&gt;
&lt;br /&gt;
Film channels are implicitly enabled by declaring film outputs (even if the output is never used). For instance, declaring a &amp;quot;RGBA&amp;quot; output will automatically enable &amp;quot;RADIANCE_PER_PIXEL_NORMALIZED&amp;quot; (and &amp;quot;RADIANCE_PER_SCREEN_NORMALIZED&amp;quot; for BIDIRCPU) and &amp;quot;ALPHA&amp;quot;.&lt;br /&gt;
The supported channels are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Channel type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Last element is weight ?&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED||float||film width x film height x 4||Yes||One for each radiance group. Eye paths radiance.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED||float||film width x film height x 3||No||One for each radiance group. Light paths radiance. Used only by LIGHTCPU and BIDIRCPU.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_ALPHA||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RGB_IMAGEPIPELINE||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DEPTH||float||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_POSITION||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_GEOMETRY_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_SHADING_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_GLOSSY||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_EMISSION||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SPECULAR||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_UV||float||film width x film height x 2||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RAYCOUNT||float||film width x film height||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_MATERIAL_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_IRRADIANCE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_OBJECT_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the list of channels enabled by each output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output&lt;br /&gt;
!Enabled channels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || DEPTH&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || DEPTH, POSITION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || DEPTH, GEOMETRY_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || DEPTH, SHADING_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || DEPTH, MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || DIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || DIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || EMISSION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || INDIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || INDIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || INDIRECT_SPECULAR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || MATERIAL_ID, MATERIAL_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || DIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || INDIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || DEPTH, UV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || DEPTH, RAYCOUNT&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || BY_MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || IRRADIANCE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || DEPTH, OBJECT_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || OBJECT_ID, OBJECT_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || BY_OBJECT_ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: CHANNEL_RGB_IMAGEPIPELINE is always enable and the result of running the image pipeline.&lt;br /&gt;
&lt;br /&gt;
===Image pipeline===&lt;br /&gt;
&lt;br /&gt;
It is possible to define multiple image pipelines at the same time by using the &#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&#039;&#039;&#039; properties prefix. Each image pipeline takes as input the raw rendering and is a chain off image pipeline plugins. Each plugin receives previous plugin output and produces a new output.&lt;br /&gt;
&lt;br /&gt;
====Radiance Group====&lt;br /&gt;
&lt;br /&gt;
Radiance groups are used to get only the contribution of a group of lights in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
Lights can be grouped by setting their [[#Common_parameters | &#039;&#039;&#039;.id&#039;&#039;&#039;]] property to the same number, on materials this is done with the [[#Light_emission | &#039;&#039;&#039;.emission.id&#039;&#039;&#039;]] property.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the OpenCL engines only support up to 8 radiance groups (one of them is the default group).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.globalscale&#039;&#039;&#039; || float|| 1 || global weighting of radiance group &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.temperature &#039;&#039;&#039; || float || 6500.0 || light temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.rgbscale&#039;&#039;&#039; || vector || 1.0 1.0 1.0 || light color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.radiancescales.&amp;lt;id&amp;gt;.enabled&#039;&#039;&#039; || bool || 1 || enable radiance group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Image pipeline plug-ins====&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || linear tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || tonemapping scale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_REINHARD02=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_REINHARD02&amp;quot; || reinhard tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.prescale&#039;&#039;&#039; || float || 1.0 || reinhard prescale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.postscale&#039;&#039;&#039; || float || 1.2 || reinhard postscale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.burn&#039;&#039;&#039; || float || 3.75 || reinhard burn&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_AUTOLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_AUTOLINEAR&amp;quot; || automatic linear tonemapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LUXLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LUXLINEAR&amp;quot; || linear tonemapping with real camera settings&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sensitivity&#039;&#039;&#039; || float || 100.0 || ISO sensitivity&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.exposure&#039;&#039;&#039; || float || 0.001 || exposure time&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.fstop&#039;&#039;&#039; || float || 2.8 || f/aperture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: NOP=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipeline.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;NOP&amp;quot; || no parameters tonemapper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAMMA_CORRECTION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || gamma correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.value&#039;&#039;&#039; || float || 2.2 || gamma value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.table.size&#039;&#039;&#039; || unsigned int || 4096 || resolution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OUTPUT_SWITCHER=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OUTPUT_SWITCHER&amp;quot; || overwrite output&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;DEPTH&amp;quot; || channel whose values are used to overwrite&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.index&#039;&#039;&#039; || unsigned int || 0 || index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAUSSIANFILTER_3x3=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;GAUSSIANFILTER_3x3&amp;quot; || gaussian filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.15 || blurring weight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CAMERA_RESPONSE_FUNC=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || CAMERA_RESPONSE_FUNC || analog camera film simulation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Advantix_100CD&amp;quot; || film type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: BACKGROUND_IMG=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || BACKGROUND_IMG || show the background image where alpha &amp;lt; 1 (simple compositing)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || ... || background image path (e.g scenes/simple-mat/sky.exr)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || background image gamma&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.storage &#039;&#039;&#039; || string || auto || background image storage type&lt;br /&gt;
|}&lt;br /&gt;
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.&lt;br /&gt;
&lt;br /&gt;
=====Type: BLOOM=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;BLOOM&amp;quot; || bloom effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.radius&#039;&#039;&#039; || float || 0.07 || how large the bloom effect is in % of the image size (i.e. 1.0 = all image)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.25 || how strong the effect is (i.e. 0.0 = nothing, 1.0 = max. strength)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: VIGNETTING=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;VIGNETTING&amp;quot; || vignetting effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 0.4 || vignetting strength&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_ABERRATION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_ABERRATION&amp;quot; || color aberration effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || color aberration amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: MIST=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;MIST&amp;quot; || aerial perspective effect (fake fog)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.color&#039;&#039;&#039; || spectrum|| [1, 1, 1] || mist color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || mist amount&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.startdistance&#039;&#039;&#039; || float || 0 || distance from camera until where the mist effect has zero effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.enddistance&#039;&#039;&#039; || float || 10000 || distance from camera from where the mist effect has maximum effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.excludebackground&#039;&#039;&#039; || bool || false || Do not apply mist effect on pixels with infinite distance to the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CONTOUR_LINES=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;CONTOUR_LINES&amp;quot; || contour lines for IRRADIANCE AOV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.range&#039;&#039;&#039; || float|| ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.steps&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.zerogridsize&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: WHITE_BALANCE =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;WHITE_BALANCE&amp;quot; || White temperature correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.temperature&#039;&#039;&#039; || unsigned int|| 6500 || Target image temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_LUT =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_LUT&amp;quot; || Applies .cube LUT (look-up-table) to the input&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;lut.cube&amp;quot; || Filepath to a [https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf .cube LUT file]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || Linear interpolation between input (0.0) and output (1.0) of the plugin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: INTEL_OIDN =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;INTEL_OIDN&amp;quot; || Denoises the image using [https://github.com/OpenImageDenoise/oidn Intel OIDN]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.filter.type&#039;&#039;&#039; || string || &amp;quot;RT&amp;quot; || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.oidnmemory&#039;&#039;&#039; || int || 6000 || Approximate maximum amount of memory to use in megabytes (actual memory usage may be higher). Limiting memory usage may cause slower denoising due to internally splitting the image into overlapping tiles&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OPTIX_DENOISER =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OPTIX_DENOISER&amp;quot; || Denoises the image using the Nvidia OptiX denoiser&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.minspp&#039;&#039;&#039; || unsigned int || 0 || Minimum amount of samples to be rendered before the plugin is run (at lower sample numbers, it does not modify the input)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Subregion===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.subregion&#039;&#039;&#039; || vector || ... || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Rendering halt conditions===&lt;br /&gt;
&lt;br /&gt;
By default, a LuxCore rendering will never stop however you can enable one or multiple halt conditions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold&#039;&#039;&#039; || float || -1.0 || enable image convergence test and stops when the error is under the defined value. Use a value like &amp;quot;n / 256.0&amp;quot; where n is the level of error you are looking for. It may be hard to achieve a level of error smaller than 3.0 / 256.0. -1.0 disables the halt condition.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.warmup&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.step&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.filter.enable&#039;&#039;&#039; || bool || 1 || if the CONVERGENCE AOV (generated by the batch.haltnoisethreshold) should be filtered or not with a 3x3 box filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.stoprendering.enable&#039;&#039;&#039; || bool || 1 || Set this to 0 (false) if you only want to use the haltnoisethreshold settings for adaptive sampling in an endless render&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for stopping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.halttime&#039;&#039;&#039; || float || 0.0 || number of seconds before stopping the rendering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltspp&#039;&#039;&#039; || unsigned int || 0 || number of average samples per pixel before stopping the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Noise estimation===&lt;br /&gt;
&lt;br /&gt;
Image noise can be estimated and its result can be used to drive the Sobol and Random samplers to focus its sampling in the noisier regions.&lt;br /&gt;
Setting any of these properties will enable the noise estimation.&lt;br /&gt;
The adaptiveness strength is a Sampler property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.warmup&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.step&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.filter.scale&#039;&#039;&#039; || unsigned int || 4 || Box filter scale used to filter the NOISE AOV (generated by the noise estimation). Set to 0 to disable.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for adaptive sampling&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Scene file=&lt;br /&gt;
&lt;br /&gt;
==Camera==&lt;br /&gt;
&lt;br /&gt;
General parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;orthographic&amp;quot;, &amp;quot;environment&amp;quot; (360° panorama &amp;lt;br&amp;gt; mapped in latlong format) or &amp;quot;stereo&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.orig&#039;&#039;&#039; || point (float float float) || 0.0 10.0 0.0 || camera location&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.target&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || camera target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.up&#039;&#039;&#039; || vector (float float float) || (0.0, 0.0, 1.0) || camera up vector&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.fieldofview&#039;&#039;&#039; || float || 45.0 || field of view&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutteropen&#039;&#039;&#039; || float || 0.0 || camera shutter open time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutterclose&#039;&#039;&#039; || float || 0.0 || camera shutter close time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autovolume.enable&#039;&#039;&#039; || bool || true || try automatically to discover scene.camera.volume&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.volume&#039;&#039;&#039; || string ||  || the initial volume rays will travel in&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.cliphither&#039;&#039;&#039; || float || 1e-3 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clipyon&#039;&#039;&#039; || float || 1e30 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;orthographic&amp;quot; or &amp;quot;perspective&amp;quot; or &amp;quot;environment&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.screenwindow&#039;&#039;&#039; || vector || 0.0 1.0 0.0 1.0 || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;perspective&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.type&#039;&#039;&#039; || string || NONE || &amp;quot;NONE&amp;quot;, &amp;quot;UNIFORM&amp;quot;, &amp;quot;EXPONENTIAL&amp;quot;, &amp;quot;INVERSEEXPONENTIAL&amp;quot;, &amp;quot;GAUSSIAN&amp;quot;, &amp;quot;INVERSEGAUSSIAN&amp;quot;, &amp;quot;TRIANGULAR&amp;quot;, &amp;quot;CUSTOM&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.blades&#039;&#039;&#039; || int || 0 || Number of aperture blades&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.power&#039;&#039;&#039; || int || 3 || Distribution factor, only for &amp;quot;EXPONENTIAL&amp;quot; and &amp;quot;INVERSEEXPONENTIAL&amp;quot; types&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.distribution.image&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || only if type == &amp;quot;CUSTOM&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scalex&#039;&#039;&#039; || double || 1.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.bokeh.scaley&#039;&#039;&#039; || double || 1.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;stereo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.stereo.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;environment_180&amp;quot;, &amp;quot;environment_360&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.eyesdistance&#039;&#039;&#039; || 0.0626 || NONE || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensdistance&#039;&#039;&#039; || 0.2779 || NONE || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;perspective&amp;quot; or &amp;quot;stereo&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.oculusrift.barrelpostpro.enable&#039;&#039;&#039; || bool || false || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type == &amp;quot;environment&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.environment.degrees&#039;&#039;&#039; || double || 360.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Parameters only applicable if scene.camera.type != &amp;quot;environment&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lensradius&#039;&#039;&#039; || double || 0.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.focaldistance&#039;&#039;&#039; || double || 10.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autofocus.enable&#039;&#039;&#039; || bool || false || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.enable&#039;&#039;&#039; || bool || false || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.center&#039;&#039;&#039; || 0.0 0.0 0.0 || 360.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.clippingplane.normal&#039;&#039;&#039; || 0.0 0.0 0.0 || 360.0 || TBD&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The camera supports motion blur. See [[ LuxCore_SDL_Reference_Manual_v2.0#Object_Motion_Blur | Object Motion Blur ]].&amp;lt;br&amp;gt;&lt;br /&gt;
(Only difference being that instead of the prefix &#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;&#039;&#039;&#039;, the prefix &#039;&#039;&#039;scene.camera&#039;&#039;&#039; is used when setting motion properties of the camera)&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Textures|LuxCoreRender Textures]] for a high level description and examples of the textures.&lt;br /&gt;
&lt;br /&gt;
===Mapping===&lt;br /&gt;
&lt;br /&gt;
Some texture (mostly procedural textures) supports 2D or 3D mapping parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping2d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.rotation&#039;&#039;&#039; || float || 0.0 || UV rotation (in degrees)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvscale&#039;&#039;&#039; || UV || 1.0 1.0 || UV scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvdelta&#039;&#039;&#039; || UV || 0.0 0.0 || UV translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;globalmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: add===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;add&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: subtract===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subtract&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: band===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;band&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5|| texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.interpolation&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot;|| &amp;quot;linear&amp;quot;, &amp;quot;cubic&amp;quot; or &amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset[0..n]&#039;&#039;&#039; || float || 0.0 || multiple offsets in the range of [0.0, 1.0]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value[0..n]&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || a value for each offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_blend===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_blend&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.progressiontype&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot; || linear, quadratic, easing, diagonal, spherical, quadratic_spherical, halo or radial&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.direction&#039;&#039;&#039; || string || &amp;quot;horizontal&amp;quot; || horizontal or vertical&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_clouds===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_clouds&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || hard_noise or soft_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1, voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1, voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_distortednoise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_distortednoise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noise_distortion&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distortion&#039;&#039;&#039; || float || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_magic===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_magic&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_marble===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.marbletype&#039;&#039;&#039; || string || &amp;quot;soft&amp;quot; || soft, sharp or sharper&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_musgrave===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_musgrave&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.musgravetype&#039;&#039;&#039; || string || &amp;quot;multifractal&amp;quot; || multifractal, ridged_multifractal, hybrid_multifractal, fBM or hetero_terrain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.dimension&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.lacunarity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_noise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_noise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_stucci===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_stucci&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.stuccitype&#039;&#039;&#039; || string || &amp;quot;plastic&amp;quot; || plastic, wall_in or wall_out&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_wood===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || bands, rings, bandnoise or ringnoise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_voronoi===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_voronoi&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distmetric&#039;&#039;&#039; || string || &amp;quot;actual_distance&amp;quot; || actual_distance, distance_squared, manhattan,&amp;lt;br&amp;gt; chebychev, minkowski_half, minkowski_four or minkowski&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w1&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w2&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w3&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w4&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: brick===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;brick&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bricktex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortartex&#039;&#039;&#039; || texture || 0.2 0.2 0.2 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodtex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodbias&#039;&#039;&#039; || float || 0.0 || With bias = -1, only the bricktex is used for the brick color. With bias between -1 and 1, a pseudo-random interpolation between bricktex and brickmodtex is used as brick color. With bias = 1, only the brickmodtex is used for the brick color.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickbond&#039;&#039;&#039; || string || &amp;quot;running&amp;quot; || &amp;quot;flemish&amp;quot;, &amp;quot;english&amp;quot;, &amp;quot;herringbone&amp;quot;, &amp;quot;basket&amp;quot; or &amp;quot;chain link&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickwidth&#039;&#039;&#039; || float || 0.3 || brick width&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickheight&#039;&#039;&#039; || float || 0.1 || brick height&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickdepth&#039;&#039;&#039; || float || 0.15 || brick depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortarsize&#039;&#039;&#039; || float || 0.01 ||mortar size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickrun&#039;&#039;&#039; || float || 0.75 || brick run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard3d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard3d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard2d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard2d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat1&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || float || 1.0 || constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || spectrum || (1.0, 1.0, 1.0) || RGB constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: densitygrid===&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;.data&amp;quot;, &amp;quot;.data3&amp;quot; or &amp;quot;.openvdb.file&amp;quot; to define the 3D grid values.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;densitygrid&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nx&#039;&#039;&#039; || unsigned int || || grid x size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.ny&#039;&#039;&#039; || unsigned int || || grid y size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nz&#039;&#039;&#039; || unsigned int || || grid z size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;half&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data3&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz * 3)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.file&#039;&#039;&#039; || string || || OpenVDB file name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.grid&#039;&#039;&#039; || string || || OpenVDB grid name to read from the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dots===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dots&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.inside&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.outside&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fbm===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fbm&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxk===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxk&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxn===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxn&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointalpha===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices alphas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointalpha&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointcolor===&lt;br /&gt;
&lt;br /&gt;
Use the color obtained by interpolating triangle vertices colors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointgrey===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices colors, mapped to a float value (RGB converted into greyscale).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointgrey&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || -1 || the index of the RGB channel to use. -1 means the luminance of the RGB value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hsv===&lt;br /&gt;
&lt;br /&gt;
Hue saturation value manipulation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hsv&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input color that will be manipulated&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.hue&#039;&#039;&#039; || texture || 0.5 || shift in hue (range: 0..1)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.saturation&#039;&#039;&#039; || texture || 1.0 || saturation (range: 0..inf)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 1.0 || brightness multiplier (range: 0..inf)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: imagemap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;imagemap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || name of the image file&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction value used in the image&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 || image values are multiplied by gain value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of image map wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;default&amp;quot; || extract from the image only the selected channels:&amp;lt;br&amp;gt; &amp;quot;default&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;blue&amp;quot;,&amp;lt;br&amp;gt; &amp;quot;alpha&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;colored_mean&amp;quot;, &amp;quot;rgb&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: normalmap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;normalmap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input. Is treated as an XYZ vector in tangent space.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || multiplier for adjusting normalmap height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: marble===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || marble scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.variation&#039;&#039;&#039; || float || 0.2 || marble variation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: scale===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;scale&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: uv===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: windy===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wood===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || &amp;quot;bands&amp;quot;, &amp;quot;rings&amp;quot;, &amp;quot;bandnoise&amp;quot; or &amp;quot;ringnoise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || &amp;quot;sin&amp;quot;, &amp;quot;saw&amp;quot; or &amp;quot;tri&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || &amp;quot;soft_noise&amp;quot; or &amp;quot;hard_noise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || noise size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 || noise turbulence&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 || bright&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 || contrast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wrinkled===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wrinkled&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: abs===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;abs&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: clamp===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;clamp&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.min&#039;&#039;&#039; || float || 0.0 || lower boundary of the clamping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.max&#039;&#039;&#039; || float || 1.0 || upper boundary of the clamping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: divide===&lt;br /&gt;
&lt;br /&gt;
Note: If texture2 (the divisor) is 0, 0 is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;divide&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant (dividend)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant (divisor)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: remap===&lt;br /&gt;
&lt;br /&gt;
This texture brings the value from the source range into the target range. &lt;br /&gt;
&lt;br /&gt;
Note: The value is clamped into source range before performing the remap operation, and the resulting number is also clamped into the target range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;remap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectid===&lt;br /&gt;
&lt;br /&gt;
Raw object ID (range 0 to 0xfffffffe).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectid&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidcolor===&lt;br /&gt;
&lt;br /&gt;
Object ID interpreted as color.&amp;lt;br&amp;gt;&lt;br /&gt;
The object ID is a 4 byte unsigned int. To convert to color, the lower three bytes are interpreted as r, g, b values (each range 0 to 255). The highest byte is ignored.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidnormalized===&lt;br /&gt;
&lt;br /&gt;
Normalized object ID (range 0 to 1).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidnormalized&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dotproduct ===&lt;br /&gt;
&lt;br /&gt;
Dot product of the two input vectors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dotproduct&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: power ===&lt;br /&gt;
&lt;br /&gt;
pow(base, exponent)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;power&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.base&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.exponent&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lessthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;lt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lessthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: greaterthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;gt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;greaterthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: shadingnormal ===&lt;br /&gt;
&lt;br /&gt;
Returns the shading normal of the mesh at the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;shadingnormal&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: position ===&lt;br /&gt;
&lt;br /&gt;
Returns the position of the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;position&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: splitfloat3 ===&lt;br /&gt;
&lt;br /&gt;
Extract a channel from a float3 texture. Can for example be used to get the R, G or B channel of a color texture, or to get the X, Y or Z components of a vector texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;splitfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || 0 || the channel to get from the input texture. 0 for first channel, 1 for second, 2 for third channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: makefloat3 ===&lt;br /&gt;
&lt;br /&gt;
Combine three float textures into one float3 texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;makefloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture3&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: blackbody===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blackbody&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.temperature&#039;&#039;&#039; || float || 6500 || emission temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.normalize&#039;&#039;&#039; || bool || false || normalize the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: irregulardata===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;irregulardata&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wavelengths&#039;&#039;&#039; || vector || 580.0 620.0 660.0|| wavelenghts&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || vector || 0.0 0.000015 0.0|| data (length should match wavelength&#039;s length)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lampspectrum===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lampspectrum&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Daylight&amp;quot; || lamp light spectrum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: Fresnel Textures===&lt;br /&gt;
&lt;br /&gt;
Textures for loading optical data&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelcolor====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelcolor || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.kr&#039;&#039;&#039; || vector || 0.5 0.0 0.0 || reflection color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelpreset====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || aluminium || fresnel preset (&amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelsopra====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Au.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelluxpop====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Cr.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: distort====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || distort || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0.0 || texture name or constant; input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || texture || 0.0 || texture name or constant; offset to add to the hitpoint coordinates and UV values before evaluating the input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || strength multiplier, is multiplied with the offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Volumes|LuxCoreRender Volumes]] for a high level description and examples of the volumes.&lt;br /&gt;
&lt;br /&gt;
All volumes share these properties&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.priority&#039;&#039;&#039; || unsigned int|| 0|| volume priority (when volumes overlap, the one with highest priority overrides the others)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.ior&#039;&#039;&#039; || texture|| ... || index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.absorption&#039;&#039;&#039; ||  texture || ... || absorption texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission &#039;&#039;&#039; ||  texture || ... || emission &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission.id &#039;&#039;&#039; || unsigned int || ... || emission ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Clear===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Homogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || homogeneous|| volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Heterogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || heterogeneous || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.size&#039;&#039;&#039; || float || ... || step size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.maxcount&#039;&#039;&#039; || unsigned int || ... || step maximum count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Materials==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Materials|LuxCoreRender Materials]] for a high level description and examples of the materials.&lt;br /&gt;
&lt;br /&gt;
===Common properties===&lt;br /&gt;
&lt;br /&gt;
Common material properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumptex&#039;&#039;&#039; || texture || || texture to use for the bump mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.normaltex&#039;&#039;&#039; || texture || || texture to use for the normal mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || number of rays used to sample this material. -1 means use the default global value. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumpsamplingdistance&#039;&#039;&#039; || float || 0.001 || set the offset used to sample bump/normal mapping.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.interior&#039;&#039;&#039; || string || vol1 || name of interior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.exterior&#039;&#039;&#039; || string || vol2 || name of exterior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.id&#039;&#039;&#039; || int|| ... || material id&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.transparency&#039;&#039;&#039; || texture || 1.0 || transparency of the material. 1 for opaque, 0 for fully transparent&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.shadowcatcher.enable&#039;&#039;&#039; || bool || false || If true, the material will be transparent where hit by direct light and opaque otherwise (alpha transparency). Used for compositing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Normal maps====&lt;br /&gt;
Normal maps are set first as a texture type and then assigned to the material. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scene.textures.normmap.type = imagemap&lt;br /&gt;
scene.textures.normmap.file = scenes/bump/normal.png&lt;br /&gt;
scene.textures.normmap.gamma = 1&lt;br /&gt;
&lt;br /&gt;
scene.materials.mat_white.type = matte&lt;br /&gt;
scene.materials.mat_white.kd = 0.8 0.8 0.8&lt;br /&gt;
scene.materials.mat_white.normaltex = normmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Light emission====&lt;br /&gt;
&lt;br /&gt;
All materials can emit light:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || color of the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || multiplier for lamp brigthness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesblob&#039;&#039;&#039; || blob || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light from this material. &amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.theta&#039;&#039;&#039; || float || 90.0 || How directional the light is emitted, set as the half-angle of the light source. Default is 90°.&amp;lt;br&amp;gt; Smaller values mean that more light is emitted in the direction of the face normals and less to the sides.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light source compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: archglass===&lt;br /&gt;
&lt;br /&gt;
This material should be used to replace glass material of windows when rendering architectural interiors. It allows direct light to pass trough.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;archglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: carpaint===&lt;br /&gt;
&lt;br /&gt;
Car Paint is an advanced glossy material, simulating a diffuse surface with mutliple reflective coatings.&lt;br /&gt;
&lt;br /&gt;
The available presets for the carpaint material are:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;ford f8&amp;quot;&lt;br /&gt;
*&amp;quot;polaris silber&amp;quot;&lt;br /&gt;
*&amp;quot;opel titan&amp;quot;&lt;br /&gt;
*&amp;quot;bmw339&amp;quot;&lt;br /&gt;
*&amp;quot;2k acrylack&amp;quot;&lt;br /&gt;
*&amp;quot;white&amp;quot;&lt;br /&gt;
*&amp;quot;blue&amp;quot;&lt;br /&gt;
*&amp;quot;blue matte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;carpaint&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;ford f8&amp;quot; || one of the avilable presets&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || absorption color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || absorption depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || diffuse color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: cloth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;cloth&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;denim&amp;quot; || denim, silk_charmeuse, silk_shantung, cotton_twill, wool_garbardine or polyester_lining_cloth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_u&#039;&#039;&#039; || float || 100.0 || thread count in the u direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_v&#039;&#039;&#039; || float || 100.0 || thread count in the v direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: disney===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;disney&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.basecolor&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || Base color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.subsurface&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.roughness&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.metallic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.specular&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.speculartint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoat&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoatgloss&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.anisotropic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheen&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheentint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmamount&#039;&#039;&#039; || texture || none || Linear interpolation between no film (0) and full film effect (1) for artistic control.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.cauchyb&#039;&#039;&#039; || texture || 0.0 || if defined and &amp;gt; 0.0, enable dispersion. The value is the B term of the [https://en.wikipedia.org/wiki/Cauchy%27s_equation Cauchy&#039;s equation]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossy2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossy2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossytranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossytranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmission color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks_bf&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant backface specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of backface coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d_bf&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the backface depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the backface coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce_bf&#039;&#039;&#039; || bool || false || backface simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossycoating===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossycoating&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.base&#039;&#039;&#039; || string || || name of base material, the coating layer is added on top of this material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: matte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;matte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the matte material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mattetranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mattetranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmitted color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: metal2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;metal2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.fresnel&#039;&#039;&#039; || fresnel texture || ... || [[#Type:_Fresnel_Textures | fresnel texture]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;aluminium&amp;quot; || (DEPRECATED) &amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.n&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxn texture on overwrite the .preset property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.k&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxk texture on overwrite the .preset property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mirror===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mirror&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
This material can be used to mix 2 other materials.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material1&#039;&#039;&#039; || string || mat1 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material2&#039;&#039;&#039; || string || mat2 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture or constant value used to mix the materials&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: null===&lt;br /&gt;
&lt;br /&gt;
This is empty, not visible material. It can be combined by using mix material with others. It is often used in combination with the alpha channel of an image map to render leafs, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;null&amp;quot; || type of material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughglass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughmatte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughmatte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the roughmatte material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sigma&#039;&#039;&#039; || texture || 0.0 || the sigma parameter in the Oren-Nayer shader in degrees. Zero for pure Lambertian reflection&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: velvet===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;velvet&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || color of the material&#039;s fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p1&#039;&#039;&#039; || texture || -2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p2&#039;&#039;&#039; || texture || 20.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p3&#039;&#039;&#039; || texture || 2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.thickness&#039;&#039;&#039; || texture || 0.1 || height of the fuzz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.material&#039;&#039;&#039; || string || || type of object material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.shape&#039;&#039;&#039; || string || || name of [[#Shapes | shape]] with the triangle mesh description.Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same shape, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.ply&#039;&#039;&#039; || string || || &#039;&#039;&#039;(Deprecated, use .shape instead)&#039;&#039;&#039; name of [http://en.wikipedia.org/wiki/PLY_(file_format) PLY] file with the triangle mesh description.&amp;lt;br&amp;gt;Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same file, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.vertices&#039;&#039;&#039; || float || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of float values defining the vertices of the mesh (i.e. 3 coordinates for each vertex).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.faces&#039;&#039;&#039; || unsigned int || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of unsigned int values defining the triangles of the mesh (i.e. 3 index of vertices for each triangle).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.id&#039;&#039;&#039; || unsigned int || || object ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.camerainvisible&#039;&#039;&#039; || bool || false || toggle visibility for camera rays. If set to true, the object will not show up in camera rays, but it will still be visible in reflections, refractions, shadows, indirect light etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Object Motion Blur===&lt;br /&gt;
&lt;br /&gt;
LuxCore supports transformation motion blur for objects.&lt;br /&gt;
Motion blur is enabled if an object has a motion system defined as described below.&lt;br /&gt;
&lt;br /&gt;
A motion system consists of steps (at least 2). Each step has a time (in seconds) and a transformation matrix of the object at this point in time.&lt;br /&gt;
Step indices start at 0. The times have to be monotonic (each greater than the last).&lt;br /&gt;
&lt;br /&gt;
Note that the embree accelerator only supports a maximum of 129 time steps.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.time&#039;&#039;&#039; || float || || time (in seconds) of the step&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix of the object at the given step&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Shapes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: mesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mesh&amp;quot; || mesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.ply&#039;&#039;&#039; || string || ... || mesh path (e.g &#039;&#039;scenes/luxball/luxball-shell.ply&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: inlinedmesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;inlinedmesh&amp;quot; || inlinedmesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.vertices&#039;&#039;&#039; || vector || ... || inlinedmesh vertices (e.g 0.0 0.0 0.0  1.0 0.0 0.0  0.0 1.0 0.0)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.faces&#039;&#039;&#039; || vector || ... || inlinedmesh faces (e.g 0 1 2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: pointiness===&lt;br /&gt;
&lt;br /&gt;
Contains surface curvature information in vertex alpha channel.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access this information in materials via a hitpointalpha texture.&amp;lt;br&amp;gt;&lt;br /&gt;
The values range from -1 to 1 (float).&amp;lt;br&amp;gt;&lt;br /&gt;
Values from -1 to 0 are concave, while values from 0 to 1 are convex.&lt;br /&gt;
&lt;br /&gt;
[[ Shape:_Pointiness | Examples ]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;pointiness&amp;quot; || pointiness shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || pointiness source (a mesh shape)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: strands===&lt;br /&gt;
&lt;br /&gt;
Can be used for hair, fur, grass etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you need to define the camera before defining any strands shapes, because the tesselation process is viewpoint-dependent.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;strands&amp;quot; || strands shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.file&#039;&#039;&#039; || string || ... || strands file (&#039;&#039;scenes/strands/straight.hair&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Strands tessellation methods====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbon&amp;quot; || ribbon tessellation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.usecameraposition&#039;&#039;&#039; || bool || 1 || use camera position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbonadaptive&amp;quot; || ribbon adaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.maxdepth&#039;&#039;&#039; || unsigned int || 12 || max tessellation depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.error &#039;&#039;&#039; || float || 0.0075 || max tessellation error &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solid&amp;quot; || solid tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solid.sidecount &#039;&#039;&#039; || unsigned int || 12 || tessellation&#039;s side count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solidadaptive&amp;quot; || solidadaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.sidecount &#039;&#039;&#039; || unsigned int || 8 || tessellation&#039;s side count&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.maxdepth&#039;&#039;&#039; || unsigned int || 16 || tessellation&#039;s max depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.error&#039;&#039;&#039; || float || 0.05 || tessellation&#039;s max error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: group===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: displacement===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: subdiv===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subdiv&amp;quot; || subdivided shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || source mesh name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxlevel&#039;&#039;&#039; || unsigned integer || 2 || maximum level of subdivision&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxedgescreensize&#039;&#039;&#039; || float || 0.0 || maximum edge screen size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.adaptive&#039;&#039;&#039; || bool || 1 || Adaptive refinement / Uniform refinement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: harlequin===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: simplify===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: islandaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: randomtriangleaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
==Light sources==&lt;br /&gt;
&lt;br /&gt;
Check [[Lighting|LuxCoreRender Lighting]] for an high level description and example of the light sources.&lt;br /&gt;
&lt;br /&gt;
===Common parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || intensity of the light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light for this light source.&amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sun===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sun&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.relsize&#039;&#039;&#039; || float || 1.0 || relative size to the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sky2===&lt;br /&gt;
&lt;br /&gt;
Hosek-Wilkie sky model.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sky2&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || vector || ... || gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.groundalbedo&#039;&#039;&#039; || vector || 0.5 0.5 0.5 || ground albedo&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.enable&#039;&#039;&#039; || bool || 1 || enable ground color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.color&#039;&#039;&#039; || vector|| ... || RGB ground color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: infinite===&lt;br /&gt;
&lt;br /&gt;
Spherical lightsource surrounding the scene at infinite distance.&amp;lt;br&amp;gt;&lt;br /&gt;
Used for image based lighting (IBL) and HDR environment lighting if the file is a high dynamic range image.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;infinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || filename of the environment map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction used by the image map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || environment map storage type (&amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot; or &amp;quot;float&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.sampleupperhemisphereonly&#039;&#039;&#039; || bool || false || an option set to black the lower hemisphere. Mostly useful for shadow catchers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: point===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;point&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mappoint===&lt;br /&gt;
&lt;br /&gt;
Point light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mappoint&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sphere===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mapsphere===&lt;br /&gt;
&lt;br /&gt;
Sphere light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mapsphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: spot===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;spot&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.coneangle&#039;&#039;&#039; || float || 30.0 || angle in degrees of the spotlight cone&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.conedeltaangle&#039;&#039;&#039; || float || 5.0 || angle at which the spotlight intensity starts to fade from the edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: projection===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;projection&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.fov&#039;&#039;&#039; || float || 45.0 || field of view in terms of angular spread along the shorter image axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || filename of the image to project. If not specified, a constat light color will be used.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constantinfinite===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constantinfinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sharpdistant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sharpdistant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: distant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;distant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.theta&#039;&#039;&#039; || float || 10.0 || half angle of the light source in degree. Must be &amp;gt; 0 for soft shadows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: laser===&lt;br /&gt;
&lt;br /&gt;
A light source emitting parallel light rays (like sharpdistant light, but starting inside the scene instead of infinitely far away).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;laser&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 0.01 || radius of the laser beam&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2711</id>
		<title>LuxCore SDL Reference Manual v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCore_SDL_Reference_Manual_v2.11&amp;diff=2711"/>
		<updated>2026-06-06T14:51:43Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Camera */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The scene description language (SDL) is used to configure the renderer and to define objects, materials, textures etc. in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
The file ending of the render configuration file is &amp;quot;.cfg&amp;quot;, for the scene file it&#039;s &amp;quot;.scn&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
These files are usually created by exporter plugins, e.g. BlendLuxCore.&amp;lt;br&amp;gt;&lt;br /&gt;
This wiki page is primarily a reference for exporter developers, normal end-users should not need to edit cfg/scn files by hand.&lt;br /&gt;
&lt;br /&gt;
Sometimes the API is updated faster than the wiki, in this case you can look at the code directly: https://github.com/LuxCoreRender/LuxCore/tree/master/src/slg/scene&lt;br /&gt;
&lt;br /&gt;
Note that matrices are passed as flat lists in column-major form.&lt;br /&gt;
&lt;br /&gt;
=Render configuration file=&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;resumerendering.filesafe&#039;&#039;&#039; || bool || 1 || enable/disable &amp;quot;safe save&amp;quot; mode for resume rendering file. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Seed==&lt;br /&gt;
&lt;br /&gt;
The global seed value that is used to generate random numbers.&amp;lt;br&amp;gt;&lt;br /&gt;
Two images rendered with the same seed will have the same noise pattern.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.seed&#039;&#039;&#039; || unsigned int || 1 || min 1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Periodic save==&lt;br /&gt;
&lt;br /&gt;
Options related to periodic save operations.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.period&#039;&#039;&#039; || float || 0 || save the resume rendering file every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.resumerendering.filename&#039;&#039;&#039; || string || &amp;quot;resume.rsm&amp;quot; || the name to use to save the rendering resume information periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.period&#039;&#039;&#039; || float || 0 || save the Film every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.filename&#039;&#039;&#039; || string || &amp;quot;film.flm&amp;quot; || the name to use to save the film periodically&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;periodicsave.film.outputs.period&#039;&#039;&#039; || float || 600 || save all Film outputs every specified amount of time (value in seconds). A value &amp;lt;= 0.0 disable the saving&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Render Engine==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || engine type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== CPU Render Engines ===&lt;br /&gt;
&lt;br /&gt;
CPU render engines are written in C++ and don&#039;t require OpenCL. All CPU render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;native.threads.count&#039;&#039;&#039; || int || CPU core count || &amp;gt; 0 || &amp;gt; 0 || The number of threads will be used for the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following CPU engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A path tracer with full image plane rendering (i.e. supporting Metropolis sampler).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHCPU&amp;quot;====&lt;br /&gt;
Biased path tracer with many control options and support for tile rendering.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.total&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.diffuse&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.glossy&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.pathdepth.specular&#039;&#039;&#039; || int || 6 || &amp;gt; 0 || [1, 16] || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette stars to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.clamping.variance.maxvalue&#039;&#039;&#039; || float || 0.0 || &amp;gt; 0.0 || &amp;gt; 0.0 || Samples brighter than this value are clamped, helps to reduce fireflies. 0.0 = disabled&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.forceblackbackground.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable when rendering with transparent film and premultiplied alpha, to avoid artifacts with semi-transparent areas&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepath.sampling.aa.size&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, 13] || All diffuse/glossy/specular samples are multiplied with the squared aa size: final_samples = aa^2 * (diffuse^2 + glossy^2 + specular^2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.size&#039;&#039;&#039; || int || 32 || ≥ 8 || [8, 256] || Tile size in pixels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || o or 1 || Re-render the image until a halt threshold is met or indefinitely&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold&#039;&#039;&#039; || float || 6.0 / 256.0 || &amp;gt; 0.0 || [1.0 / 256.0, 6.0 / 256.0] || Target noise level&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.threshold.reduction&#039;&#039;&#039; || float || 0.0 || [0.0, 1.0] || [0.75, 0.95] || Multiply noise level with this number when all tiles have met the previous noise level. Set to 0 to disable (so rendering will stop at the noise level)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tile.multipass.convergencetest.warmup.count&#039;&#039;&#039; || int || 32 || ≥ 0 || [8, 128] || Warm up period for the convergence test expressed in samples per pixel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A Bidirectional path tracer.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a eye path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;path.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHCPU&amp;quot;====&lt;br /&gt;
Engine optimized for interactive scene editing and camera movement.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to RTPATHCPUSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same properties as [[#&amp;quot;PATHCPU&amp;quot; | &amp;quot;PATHCPU&amp;quot;]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.size&#039;&#039;&#039; || int || 4 ||  ||  || render scaled down film for the first few frames after a scene edit (to make interactions more fluid)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpathcpu.zoomphase.weight&#039;&#039;&#039; || float || 0.1 ||  ||  || description: TODO&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenCL Render Engines ===&lt;br /&gt;
&lt;br /&gt;
OpenCL engines can run on GPUs, CPUs and other types of computing devices, they require OpenCL to run. All OpenCL render engines accept the following parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.platform.index&#039;&#039;&#039; || int || -1 || A valid platform index || -1 || Select the OpenCL platform to use. All devices available on all platforms will be used with -1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL CPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.use&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || If to use all OpenCL GPU devices available&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.cpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.gpu.workgroup.size&#039;&#039;&#039; || int || 0 || Any valid OpenCL workgroup size || 64 || Set the OpenCL workgroup size, 0 means to use the driver suggested value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.devices.select&#039;&#039;&#039; || string || &amp;quot;&amp;quot; || Any valid selection string || Any valid selection string || Select each OpenCL device to use. It is a string of &amp;quot;0&amp;quot; and &amp;quot;1&amp;quot;. &amp;quot;1&amp;quot; means use the device, &amp;quot;0&amp;quot; do not&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The following OpenCL engines are available:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;PATHOCL&amp;quot;====&lt;br /&gt;
OpenCL version of PATHCPU. Supports the same settings as [[#&amp;quot;PATHCPU&amp;quot; | PATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;pathocl.pixelatomics.enable&#039;&#039;&#039; || bool || 0 || 0 or 1 || 0 or 1 || Enable pixel atomic operation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;opencl.task.count&#039;&#039;&#039; || int || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot; or &amp;gt; 0 || [64K, 1024K] || The number of tasks sent to the OpenCL device in one kernel call&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;RTPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
A PATHOCL version optimized for real-time rendering with fixed frame-rate and variable quality.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;PATHOCL&amp;quot; | PATHOCL]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels in the first passes. For instance 4x4 than 2x2 and than always 1x1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction.preview.step&#039;&#039;&#039; || int || 8 || &amp;gt; 0 || [1, 32] || Each preview step is rendered for n frames&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;rtpath.resolutionreduction&#039;&#039;&#039; || int || 4 || &amp;gt; 0 || [1, 32] || Render a sample every n x n pixels, outside the preview phase, in order to reduce the per frame rendering time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;TILEPATHOCL&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
OpenCL version of TILEPATHCPU.&amp;lt;br&amp;gt;&lt;br /&gt;
The sampler must be set to TILEPATHSAMPLER when using this engine.&lt;br /&gt;
&lt;br /&gt;
Supports the same settings as [[#&amp;quot;TILEPATHCPU&amp;quot; | TILEPATHCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;tilepathocl.devices.maxtiles&#039;&#039;&#039; || int || 16 || ≥ 1 || [1, 32] || Maximum number of tiles to send in a single call to each OpenCL device&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;FILESAVER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Saves everything needed to render the scene to the output path, including textures and meshes.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.format&#039;&#039;&#039; || string || &amp;quot;TXT&amp;quot; || &amp;quot;TXT&amp;quot; for a text SDL format and &amp;quot;BIN&amp;quot; for a single file binary format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.filename&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene.bcf&amp;quot; || file name for &amp;quot;BIN&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.directory&#039;&#039;&#039; || string || &amp;quot;luxcore-exported-scene&amp;quot; || output path for &amp;quot;TXT&amp;quot; format&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;filesaver.renderengine.type&#039;&#039;&#039; || string || &amp;quot;PATHCPU&amp;quot; || render engine to use when rendering the scene after it was saved with FILESAVER. Any engine string from above can be used here.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Experimental and debugging engines===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;These engines are experimental, deprecated or are only intended for very specific purposes:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;BIDIRVMCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
Bidir with vertex merging, currently experimental.&amp;lt;br&amp;gt;&lt;br /&gt;
Supports the same settings as [[#&amp;quot;BIDIRCPU&amp;quot; | BIDIRCPU]] plus the following:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.lightpath.count&#039;&#039;&#039; || int || 16 * 1024 || &amp;gt; 0 || || Number of lightpaths per pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.startradius.scale&#039;&#039;&#039; || float || 0.003 || &amp;gt; 0 || || Photon radius of the first pass&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;bidirvm.alpha&#039;&#039;&#039; || float || 3 || &amp;gt; 0 || [0.0, 1.0] || Photon radius is multiplied with this value after every pass to reduce the radius&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====&amp;quot;LIGHTCPU&amp;quot;====&lt;br /&gt;
&lt;br /&gt;
For testing.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.maxdepth&#039;&#039;&#039; || int || 5 || &amp;gt; 0 || [1, 16] || Maximum recursion depth of a light path&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.depth&#039;&#039;&#039; || int || 3 || &amp;gt; 0 || [1, path.maxdepth] || The path depth where Russian Roulette starts to be used&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;light.russianroulette.cap&#039;&#039;&#039; || float || 0.5 || [0.0, 1.0] || [0.0, 1.0] || The threshold over which Russian Roulette is used&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Sampler==&lt;br /&gt;
&lt;br /&gt;
Samplers are used by following render engines:&lt;br /&gt;
&lt;br /&gt;
* LIGHTCPU&lt;br /&gt;
* PATHCPU&lt;br /&gt;
* BIDIRCPU&lt;br /&gt;
* BIDIRVMCPU&lt;br /&gt;
* PATHOCL&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.type&#039;&#039;&#039; || string || &amp;quot;SOBOL&amp;quot; || sampler type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following samplers are available:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;SOBOL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Sampler with sobol pattern.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.sobol.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;METROPOLIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Metropolis sampler.&lt;br /&gt;
Parameters:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.largesteprate&#039;&#039;&#039; || float || 0.4 || 0 ≤ x ≤ 1 || 0 - 1 || Probability of generating a large sample mutation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.maxconsecutivereject&#039;&#039;&#039; || int || 512 || x ≥ 0 || 0 - 32768 || Number of consecutive rejects before a next mutation is forced. Low values can cause bias&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.metropolis.imagemutationrate&#039;&#039;&#039; || float || 0.1 || 0 ≤ x ≤ 1 || 0 - 1 || Maximum distance over the image plane for a small mutation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;RANDOM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Fully random sampler. This sampler is mostly intended for testing purpose.&lt;br /&gt;
Parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;sampler.random.adaptive.strength&#039;&#039;&#039; || float || 0.7 || 0 ≤ x &amp;lt; 0.95 || 0.5 - 0.9 || it sets if the sampler should be more or less adaptive&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Filter==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.type&#039;&#039;&#039; || string || &amp;quot;BLACKMANHARRIS&amp;quot; || || || Type of pixel filter.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.width&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Filter radius in pixels. Does not have an effect on the NONE filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.xwidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.ywidth&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 3.0 || Width in pixels. Overwrite &#039;&#039;&#039;film.filter.width&#039;&#039;&#039; value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Available filters are:&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;NONE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Disable pixel filtering.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BOX&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Box pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;GAUSSIAN&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Gaussian pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.filter.gaussian.alpha&#039;&#039;&#039; || float || 2.0 || x &amp;gt; 0.0 || 0.1 - 10.0 || Gaussian rate of falloff. Lower values give blurrier images. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchell.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;MITCHELL_SS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Mitchel pixel filter with super-sampling (i.e. image will be filtered first with a grid of 4 pixels for each pixel).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.b&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || B parameter for the mitchell filter in the range &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;film.filter.mitchellss.c&#039;&#039;&#039; || float || 1.0/3.0 || 0.0 ≤ x ≤ 1.0 || 0.0 - 1.0 || C parameter for the mitchell filter in the range 0..1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;BLACKMANHARRIS&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Blcakman-Harris pixel filter. No parameters.&lt;br /&gt;
&lt;br /&gt;
==Light Strategy==&lt;br /&gt;
&lt;br /&gt;
The direct light sampling strategy is defined by the following property:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.type&#039;&#039;&#039; || string || &amp;quot;LOG_POWER&amp;quot; || &amp;quot;UNIFORM&amp;quot;, &amp;quot;POWER&amp;quot;, &amp;quot;LOG_POWER&amp;quot; or &amp;quot;DLS_CACHE&amp;quot; || N/A || Direct light sampling strategy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;UNIFORM&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;UNIFORM&amp;quot; light strategy samples evenly all light sources.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;POWER&amp;quot; light strategy samples the light sources based on their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;LOG_POWER&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;LOG_POWER&amp;quot; light strategy samples the light sources based on logarithm of their power.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;DLS_CACHE&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Build direct light sampling cache to optimize many-lights rendering, beneficial in scenes with multiple light sources with few overlap between their influence areas (e.g. a building with many disconnected rooms and interior lights).&lt;br /&gt;
&lt;br /&gt;
Options for the DLS cache:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.radius&#039;&#039;&#039; || float || 0.0 ||  || N/A || Entry radius in meters, automatic radius estimation is used if the radius is set to 0&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.normalangle&#039;&#039;&#039; || float || 25.0 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.maxpasses&#039;&#039;&#039; || int || 1024 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.convergencethreshold&#039;&#039;&#039; || float || 0.05 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.entry.warmupsamples&#039;&#039;&#039; || int || 24 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.targetcachehitratio&#039;&#039;&#039; || float || 0.995 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxdepth&#039;&#039;&#039; || int || 4 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.maxsamplescount&#039;&#039;&#039; || int || 10000000 ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.file&#039;&#039;&#039; || string || &amp;quot;&amp;quot; ||  || N/A || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;lightstrategy.persistent.safesave&#039;&#039;&#039; || bool || 1 ||  || N/A || &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Accelerator==&lt;br /&gt;
&lt;br /&gt;
The ray/triangle intersection accelerator to use for the rendering is defined by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.type&#039;&#039;&#039; || string || &amp;quot;AUTO&amp;quot; || &amp;quot;AUTO&amp;quot;, &amp;quot;BVH&amp;quot;, &amp;quot;MBVH&amp;quot;, &amp;quot;EMBREE&amp;quot;  || &amp;quot;AUTO&amp;quot; || The intersection accelerator. &amp;quot;AUTO&amp;quot; will select the best one available for the current [[LuxRays]] intersection device. &amp;quot;EMBREE&amp;quot; is currently usable only on CPU render engines&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;accelerator.instances.enable&#039;&#039;&#039; || bool || 1 || 0 or 1 || 0 or 1 || Enable instance support (or disable in order to slightly increase rendering speed)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Epsilon==&lt;br /&gt;
&lt;br /&gt;
Minimum and maximum allowed value for scene epsilon can be define by the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Theoretical range&lt;br /&gt;
!Recommended range&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.min&#039;&#039;&#039; || float || 1e-5f || Any float value || 1e-6f ≤ x ≤ 1e-1f || Minimum allowed value for scene epsilon&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.epsilon.max&#039;&#039;&#039; || float || 1e-1f || Any float value || 1e-3f ≤ x ≤ 1e+2f || Maximum allowed value for scene epsilon&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Film==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; of Film serialization. A backup of the output is always valid even in the case of a system failure.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film OpenCL Options===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.enable&#039;&#039;&#039; || bool || 1 || enable OpenCL film operations&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.platform&#039;&#039;&#039; || unsigned int || -1 || choose which platform  will be used by the film operations. (0 is first platform, 1 second and so on. -1 for all)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.opencl.device&#039;&#039;&#039; || unsigned int || -1 || choose which device  will be used by the film operations. (0 is first device, 1 second and so on. -1 for first GPU device)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Outputs (aka AOVs)===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.safesave&#039;&#039;&#039; || bool || 1 || enable &amp;quot;safe save&amp;quot; for Film outputs. A backup of the output is always valid even in the case of a system failure&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The film object supports many types of outputs (aka AOVs). The complete list of supported output types:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Name&lt;br /&gt;
!Type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || HDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SAMPLECOUNT&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;CONVERGENCE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;NOISE&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SERIALIZED_FILM&#039;&#039;&#039; || N/A&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_COLOR&#039;&#039;&#039; || HDR/LDR&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Outputs are enabled with the following properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.type&#039;&#039;&#039; || string ||  || Type of output, e.g. &amp;quot;RGBA&amp;quot; or &amp;quot;ALPHA&amp;quot; (see the list above for the available types)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.filename&#039;&#039;&#039; || string ||  || Filename to use when saving the output. The filename should use &amp;quot;.exr&amp;quot; as extension&amp;lt;br&amp;gt; for HDR outputs and &amp;quot;.png&amp;quot; for LDR outputs (see list above for which output is HDR&amp;lt;br&amp;gt; and which LDR)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.id&#039;&#039;&#039; || int ||  || Specify for the following outputs: &#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039;,&amp;lt;br&amp;gt; &#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039;, &#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039;, &#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039;&amp;lt;br&amp;gt; (to choose the object ID, material ID or radiance group ID of the output)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.outputs.&amp;lt;index&amp;gt;.index&#039;&#039;&#039; || int ||  || Specify for an imagepipeline output (RGB_IMAGEPIPELINE or RGBA_IMAGEPIPELINE)&amp;lt;br&amp;gt; to select the imagepipeline of the output. For example, if you have 3 imagepipelines defined,&amp;lt;br&amp;gt; and you want to specify the output of the third imagepipeline, use 2 for the &amp;quot;.index&amp;quot; property&amp;lt;br&amp;gt; of the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note that the Bidir engine does not support all AOVs.&lt;br /&gt;
Not supported by Bidir are: EMISSION, DIRECT_DIFFUSE, DIRECT_GLOSSY, INDIRECT_DIFFUSE, INDIRECT_GLOSSY, INDIRECT_SPECULAR, DIRECT_SHADOW_MASK, INDIRECT_SHADOW_MASK, IRRADIANCE, RAYCOUNT.&lt;br /&gt;
&lt;br /&gt;
This is the list of output channel data types and sizes:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|RGB||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGB_IMAGEPIPELINE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|RGBA||float||film width x film height x 4||R, G, B, A&lt;br /&gt;
|-&lt;br /&gt;
|ALPHA||float||film width x film height x 1||Alpha value [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DEPTH||float||film width x film height x 1||Camera distance&lt;br /&gt;
|-&lt;br /&gt;
|POSITION||float||film width x film height x 3||World X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|GEOMETRY_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|SHADING_NORMAL||float||film width x film height x 3||Normal vector X, Y, Z&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_DIFFUSE||float||film width x film height x 3||Diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_GLOSSY||float||film width x film height x 3||Glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|EMISSION||float||film width x film height x 3||Emission R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_DIFFUSE||float||film width x film height x 3||Indirect diffuse R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_GLOSSY||float||film width x film height x 3||Indirect glossy R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SPECULAR||float||film width x film height x 3||Indirect specular R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_MASK||float||film width x film height x 1||Material mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|DIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|INDIRECT_SHADOW_MASK||float||film width x film height x 1||Shadow mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|RADIANCE_GROUP||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|UV||float||film width x film height x 2||Texture coordinates U, V&lt;br /&gt;
|-&lt;br /&gt;
|RAYCOUNT||float||film width x film height x 1||Ray count&lt;br /&gt;
|-&lt;br /&gt;
|BY_MATERIAL_ID||float||film width x film height x 3||By material ID&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID||uint||film width x film height x 1||Material ID&lt;br /&gt;
|-&lt;br /&gt;
|IRRADIANCE||float||film width x film height x 3||R, G, B&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID_MASK||float||film width x film height x 1||Object mask [0, 1]&lt;br /&gt;
|-&lt;br /&gt;
|BY_OBJECT_ID||float||film width x film height x 3||By object ID&lt;br /&gt;
|-&lt;br /&gt;
|OBJECT_ID||uint||film width x film height x 1||Object ID&lt;br /&gt;
|-&lt;br /&gt;
|SAMPLECOUNT||uint||film width x film height x 1||Sample count&lt;br /&gt;
|-&lt;br /&gt;
|CONVERGENCE||float||film width x film height x 1||The distance of each pixel from the convergence threshold&lt;br /&gt;
|-&lt;br /&gt;
|NOISE||float||film width x film height x 1||The noise estimated for each pixel&lt;br /&gt;
|-&lt;br /&gt;
|SERIALIZED_FILM||N/A||N/A||The complete Film serialized in binary format&lt;br /&gt;
|-&lt;br /&gt;
|MATERIAL_ID_COLOR||float||film width x film height x 3||Material ID converted to colors (with anti-aliasing)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Channels===&lt;br /&gt;
&lt;br /&gt;
Film channels are implicitly enabled by declaring film outputs (even if the output is never used). For instance, declaring a &amp;quot;RGBA&amp;quot; output will automatically enable &amp;quot;RADIANCE_PER_PIXEL_NORMALIZED&amp;quot; (and &amp;quot;RADIANCE_PER_SCREEN_NORMALIZED&amp;quot; for BIDIRCPU) and &amp;quot;ALPHA&amp;quot;.&lt;br /&gt;
The supported channels are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Channel type&lt;br /&gt;
!Data type&lt;br /&gt;
!Size&lt;br /&gt;
!Last element is weight ?&lt;br /&gt;
!Note&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED||float||film width x film height x 4||Yes||One for each radiance group. Eye paths radiance.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED||float||film width x film height x 3||No||One for each radiance group. Light paths radiance. Used only by LIGHTCPU and BIDIRCPU.&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_ALPHA||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RGB_IMAGEPIPELINE||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DEPTH||float||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_POSITION||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_GEOMETRY_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_SHADING_NORMAL||float||film width x film height x 3||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_GLOSSY||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_EMISSION||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_DIFFUSE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SPECULAR||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_MATERIAL_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_DIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_INDIRECT_SHADOW_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_UV||float||film width x film height x 2||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_RAYCOUNT||float||film width x film height||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_MATERIAL_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_IRRADIANCE||float||film width x film height x 4||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID||u_int||film width x film height x 1||No||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_OBJECT_ID_MASK||float||film width x film height x 2||Yes||&lt;br /&gt;
|-&lt;br /&gt;
|CHANNEL_BY_OBJECT_ID||float||film width x film height x 4||Yes||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is the list of channels enabled by each output:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Output&lt;br /&gt;
!Enabled channels&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGB_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RGBA_IMAGEPIPELINE&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU), ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;ALPHA&#039;&#039;&#039; || ALPHA&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DEPTH&#039;&#039;&#039; || DEPTH&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;POSITION&#039;&#039;&#039; || DEPTH, POSITION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;GEOMETRY_NORMAL&#039;&#039;&#039; || DEPTH, GEOMETRY_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;SHADING_NORMAL&#039;&#039;&#039; || DEPTH, SHADING_NORMAL&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID&#039;&#039;&#039; || DEPTH, MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_DIFFUSE&#039;&#039;&#039; || DIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_GLOSSY&#039;&#039;&#039; || DIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;EMISSION&#039;&#039;&#039; || EMISSION&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_DIFFUSE&#039;&#039;&#039; || INDIRECT_DIFFUSE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_GLOSSY&#039;&#039;&#039; || INDIRECT_GLOSSY&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SPECULAR&#039;&#039;&#039; || INDIRECT_SPECULAR&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;MATERIAL_ID_MASK&#039;&#039;&#039; || MATERIAL_ID, MATERIAL_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;DIRECT_SHADOW_MASK&#039;&#039;&#039; || DIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;INDIRECT_SHADOW_MASK&#039;&#039;&#039; || INDIRECT_SHADOW_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RADIANCE_GROUP&#039;&#039;&#039; || CHANNEL_RADIANCE_PER_PIXEL_NORMALIZED, CHANNEL_RADIANCE_PER_SCREEN_NORMALIZED (only for LIGHTCPU and BIDIRCPU)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;UV&#039;&#039;&#039; || DEPTH, UV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;RAYCOUNT&#039;&#039;&#039; || DEPTH, RAYCOUNT&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_MATERIAL_ID&#039;&#039;&#039; || BY_MATERIAL_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;IRRADIANCE&#039;&#039;&#039; || IRRADIANCE&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID&#039;&#039;&#039; || DEPTH, OBJECT_ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;OBJECT_ID_MASK&#039;&#039;&#039; || OBJECT_ID, OBJECT_ID_MASK&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;BY_OBJECT_ID&#039;&#039;&#039; || BY_OBJECT_ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Note: CHANNEL_RGB_IMAGEPIPELINE is always enable and the result of running the image pipeline.&lt;br /&gt;
&lt;br /&gt;
===Image pipeline===&lt;br /&gt;
&lt;br /&gt;
It is possible to define multiple image pipelines at the same time by using the &#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&#039;&#039;&#039; properties prefix. Each image pipeline takes as input the raw rendering and is a chain off image pipeline plugins. Each plugin receives previous plugin output and produces a new output.&lt;br /&gt;
&lt;br /&gt;
====Radiance Group====&lt;br /&gt;
&lt;br /&gt;
Radiance groups are used to get only the contribution of a group of lights in the scene.&amp;lt;br&amp;gt;&lt;br /&gt;
Lights can be grouped by setting their [[#Common_parameters | &#039;&#039;&#039;.id&#039;&#039;&#039;]] property to the same number, on materials this is done with the [[#Light_emission | &#039;&#039;&#039;.emission.id&#039;&#039;&#039;]] property.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the OpenCL engines only support up to 8 radiance groups (one of them is the default group).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.globalscale&#039;&#039;&#039; || float|| 1 || global weighting of radiance group &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.temperature &#039;&#039;&#039; || float || 6500.0 || light temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.&amp;lt;id&amp;gt;.rgbscale&#039;&#039;&#039; || vector || 1.0 1.0 1.0 || light color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.radiancescales.radiancescales.&amp;lt;id&amp;gt;.enabled&#039;&#039;&#039; || bool || 1 || enable radiance group&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Image pipeline plug-ins====&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || linear tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || tonemapping scale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_REINHARD02=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_REINHARD02&amp;quot; || reinhard tonemapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.prescale&#039;&#039;&#039; || float || 1.0 || reinhard prescale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.postscale&#039;&#039;&#039; || float || 1.2 || reinhard postscale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.burn&#039;&#039;&#039; || float || 3.75 || reinhard burn&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_AUTOLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_AUTOLINEAR&amp;quot; || automatic linear tonemapping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: TONEMAP_LUXLINEAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LUXLINEAR&amp;quot; || linear tonemapping with real camera settings&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sensitivity&#039;&#039;&#039; || float || 100.0 || ISO sensitivity&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.exposure&#039;&#039;&#039; || float || 0.001 || exposure time&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.fstop&#039;&#039;&#039; || float || 2.8 || f/aperture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: NOP=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipeline.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;NOP&amp;quot; || no parameters tonemapper&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAMMA_CORRECTION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;TONEMAP_LINEAR&amp;quot; || gamma correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.value&#039;&#039;&#039; || float || 2.2 || gamma value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.table.size&#039;&#039;&#039; || unsigned int || 4096 || resolution&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OUTPUT_SWITCHER=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OUTPUT_SWITCHER&amp;quot; || overwrite output&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;DEPTH&amp;quot; || channel whose values are used to overwrite&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.index&#039;&#039;&#039; || unsigned int || 0 || index&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: GAUSSIANFILTER_3x3=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;GAUSSIANFILTER_3x3&amp;quot; || gaussian filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.15 || blurring weight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CAMERA_RESPONSE_FUNC=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || CAMERA_RESPONSE_FUNC || analog camera film simulation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Advantix_100CD&amp;quot; || film type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: BACKGROUND_IMG=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || BACKGROUND_IMG || show the background image where alpha &amp;lt; 1 (simple compositing)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || ... || background image path (e.g scenes/simple-mat/sky.exr)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || background image gamma&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.storage &#039;&#039;&#039; || string || auto || background image storage type&lt;br /&gt;
|}&lt;br /&gt;
Note: When the size of the background image differs from the film size, it will be stretched to fit the film size.&lt;br /&gt;
&lt;br /&gt;
=====Type: BLOOM=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;BLOOM&amp;quot; || bloom effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.radius&#039;&#039;&#039; || float || 0.07 || how large the bloom effect is in % of the image size (i.e. 1.0 = all image)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.weight&#039;&#039;&#039; || float || 0.25 || how strong the effect is (i.e. 0.0 = nothing, 1.0 = max. strength)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: VIGNETTING=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;VIGNETTING&amp;quot; || vignetting effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || 0.4 || vignetting strength&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_ABERRATION=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_ABERRATION&amp;quot; || color aberration effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || color aberration amount&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: MIST=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;MIST&amp;quot; || aerial perspective effect (fake fog)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.color&#039;&#039;&#039; || spectrum|| [1, 1, 1] || mist color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.amount&#039;&#039;&#039; || float || 0.005 || mist amount&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.startdistance&#039;&#039;&#039; || float || 0 || distance from camera until where the mist effect has zero effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.enddistance&#039;&#039;&#039; || float || 10000 || distance from camera from where the mist effect has maximum effect&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.excludebackground&#039;&#039;&#039; || bool || false || Do not apply mist effect on pixels with infinite distance to the camera&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: CONTOUR_LINES=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;CONTOUR_LINES&amp;quot; || contour lines for IRRADIANCE AOV&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.range&#039;&#039;&#039; || float|| ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.scale&#039;&#039;&#039; || float || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.steps&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.zerogridsize&#039;&#039;&#039; || int || ? || ?&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: WHITE_BALANCE =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;WHITE_BALANCE&amp;quot; || White temperature correction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.temperature&#039;&#039;&#039; || unsigned int|| 6500 || Target image temperature in Kelvin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: COLOR_LUT =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;COLOR_LUT&amp;quot; || Applies .cube LUT (look-up-table) to the input&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;lut.cube&amp;quot; || Filepath to a [https://wwwimages2.adobe.com/content/dam/acom/en/products/speedgrade/cc/pdfs/cube-lut-specification-1.0.pdf .cube LUT file]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || Linear interpolation between input (0.0) and output (1.0) of the plugin&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: INTEL_OIDN =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;INTEL_OIDN&amp;quot; || Denoises the image using [https://github.com/OpenImageDenoise/oidn Intel OIDN]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.filter.type&#039;&#039;&#039; || string || &amp;quot;RT&amp;quot; || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.oidnmemory&#039;&#039;&#039; || int || 6000 || Approximate maximum amount of memory to use in megabytes (actual memory usage may be higher). Limiting memory usage may cause slower denoising due to internally splitting the image into overlapping tiles&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Type: OPTIX_DENOISER =====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;OPTIX_DENOISER&amp;quot; || Denoises the image using the Nvidia OptiX denoiser&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.minspp&#039;&#039;&#039; || unsigned int || 0 || Minimum amount of samples to be rendered before the plugin is run (at lower sample numbers, it does not modify the input)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.imagepipelines.&amp;lt;pipeline #&amp;gt;.&amp;lt;plugin #&amp;gt;.sharpness&#039;&#039;&#039; || float || 0.1 || Linear interpolation between the denoised result (0.0) and the noisy input (1.0)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Film Subregion===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.subregion&#039;&#039;&#039; || vector || ... || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Rendering halt conditions===&lt;br /&gt;
&lt;br /&gt;
By default, a LuxCore rendering will never stop however you can enable one or multiple halt conditions:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold&#039;&#039;&#039; || float || -1.0 || enable image convergence test and stops when the error is under the defined value. Use a value like &amp;quot;n / 256.0&amp;quot; where n is the level of error you are looking for. It may be hard to achieve a level of error smaller than 3.0 / 256.0. -1.0 disables the halt condition.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.warmup&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.step&#039;&#039;&#039; || unsigned int || 64 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.filter.enable&#039;&#039;&#039; || bool || 1 || if the CONVERGENCE AOV (generated by the batch.haltnoisethreshold) should be filtered or not with a 3x3 box filter&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.stoprendering.enable&#039;&#039;&#039; || bool || 1 || Set this to 0 (false) if you only want to use the haltnoisethreshold settings for adaptive sampling in an endless render&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltnoisethreshold.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for stopping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.halttime&#039;&#039;&#039; || float || 0.0 || number of seconds before stopping the rendering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;batch.haltspp&#039;&#039;&#039; || unsigned int || 0 || number of average samples per pixel before stopping the rendering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Noise estimation===&lt;br /&gt;
&lt;br /&gt;
Image noise can be estimated and its result can be used to drive the Sobol and Random samplers to focus its sampling in the noisier regions.&lt;br /&gt;
Setting any of these properties will enable the noise estimation.&lt;br /&gt;
The adaptiveness strength is a Sampler property.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.warmup&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel before to start the convergence test&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.step&#039;&#039;&#039; || unsigned int || 32 || number of average samples per pixel between two tests&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.filter.scale&#039;&#039;&#039; || unsigned int || 4 || Box filter scale used to filter the NOISE AOV (generated by the noise estimation). Set to 0 to disable.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;film.noiseestimation.index&#039;&#039;&#039; || unsigned int || 0 || Film pipeline index used to estimate noise for adaptive sampling&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Scene file=&lt;br /&gt;
&lt;br /&gt;
==Camera==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.type&#039;&#039;&#039; || string || &amp;quot;perspective&amp;quot; || &amp;quot;perspective&amp;quot;, &amp;quot;orthographic&amp;quot;, &amp;quot;environment&amp;quot; (360° panorama &amp;lt;br&amp;gt; mapped in latlong format) or &amp;quot;stereo&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.orig&#039;&#039;&#039; || point (float float float) || 0.0 10.0 0.0 || camera location&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.lookat.target&#039;&#039;&#039; || point (float float float) || 0.0 0.0 0.0 || camera target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.up&#039;&#039;&#039; || vector (float float float) || (0.0, 0.0, 1.0) || camera up vector&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.fieldofview&#039;&#039;&#039; || float || 45.0 || field of view&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.screenwindow&#039;&#039;&#039; || vector || 0.0 1.0 0.0 1.0 || &amp;lt;xstart&amp;gt; &amp;lt;xstop&amp;gt; &amp;lt;ystart&amp;gt; &amp;lt;ystop&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutteropen&#039;&#039;&#039; || float || 0.0 || camera shutter open time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.shutterclose&#039;&#039;&#039; || float || 0.0 || camera shutter close time (used for motion blur)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.autovolume.enable&#039;&#039;&#039; || bool || true || try automatically to discover scene.camera.volume&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.camera.volume&#039;&#039;&#039; || string ||  || the initial volume rays will travel in&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The camera supports motion blur. See [[ LuxCore_SDL_Reference_Manual_v2.0#Object_Motion_Blur | Object Motion Blur ]].&amp;lt;br&amp;gt;&lt;br /&gt;
(Only difference being that instead of the prefix &#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;&#039;&#039;&#039;, the prefix &#039;&#039;&#039;scene.camera&#039;&#039;&#039; is used when setting motion properties of the camera)&lt;br /&gt;
&lt;br /&gt;
==Textures==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Textures|LuxCoreRender Textures]] for a high level description and examples of the textures.&lt;br /&gt;
&lt;br /&gt;
===Mapping===&lt;br /&gt;
&lt;br /&gt;
Some texture (mostly procedural textures) supports 2D or 3D mapping parameters:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping2d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.rotation&#039;&#039;&#039; || float || 0.0 || UV rotation (in degrees)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvscale&#039;&#039;&#039; || UV || 1.0 1.0 || UV scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.uvdelta&#039;&#039;&#039; || UV || 0.0 0.0 || UV translation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;uvmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.type&#039;&#039;&#039; || string || &amp;quot;globalmapping3d&amp;quot; || type of mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mapping.transformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: add===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;add&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: subtract===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subtract&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: band===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;band&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5|| texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.interpolation&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot;|| &amp;quot;linear&amp;quot;, &amp;quot;cubic&amp;quot; or &amp;quot;none&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset[0..n]&#039;&#039;&#039; || float || 0.0 || multiple offsets in the range of [0.0, 1.0]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value[0..n]&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || a value for each offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_blend===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_blend&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.progressiontype&#039;&#039;&#039; || string || &amp;quot;linear&amp;quot; || linear, quadratic, easing, diagonal, spherical, quadratic_spherical, halo or radial&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.direction&#039;&#039;&#039; || string || &amp;quot;horizontal&amp;quot; || horizontal or vertical&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_clouds===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_clouds&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || hard_noise or soft_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1, voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1, voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_distortednoise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_distortednoise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noise_distortion&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distortion&#039;&#039;&#039; || float || 1 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_magic===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_magic&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_marble===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.marbletype&#039;&#039;&#039; || string || &amp;quot;soft&amp;quot; || soft, sharp or sharper&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_musgrave===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_musgrave&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.musgravetype&#039;&#039;&#039; || string || &amp;quot;multifractal&amp;quot; || multifractal, ridged_multifractal, hybrid_multifractal, fBM or hetero_terrain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.dimension&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.lacunarity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_noise===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_noise&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisedepth&#039;&#039;&#039; || int || 2 || min 0, max 25&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_stucci===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_stucci&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.stuccitype&#039;&#039;&#039; || string || &amp;quot;plastic&amp;quot; || plastic, wall_in or wall_out&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_wood===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || bands, rings, bandnoise or ringnoise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis&#039;&#039;&#039; || string || &amp;quot;blender_original&amp;quot; || blender_original, original_perlin, improved_perlin, voronoi_f1,&amp;lt;br&amp;gt; voronoi_f2, voronoi_f3, voronoi_f4, voronoi_f2_f1,&amp;lt;br&amp;gt; voronoi_crackle or cell_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || sin, saw or tri&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || soft_noise or hard_noise&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: blender_voronoi===&lt;br /&gt;
&lt;br /&gt;
Emulate Blender procedural texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blender_voronoi&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.intensity&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.distmetric&#039;&#039;&#039; || string || &amp;quot;actual_distance&amp;quot; || actual_distance, distance_squared, manhattan,&amp;lt;br&amp;gt; chebychev, minkowski_half, minkowski_four or minkowski&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w1&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w2&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w3&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.w4&#039;&#039;&#039; || float || 0.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: brick===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;brick&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bricktex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortartex&#039;&#039;&#039; || texture || 0.2 0.2 0.2 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodtex&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickmodbias&#039;&#039;&#039; || float || 0.0 || With bias = -1, only the bricktex is used for the brick color. With bias between -1 and 1, a pseudo-random interpolation between bricktex and brickmodtex is used as brick color. With bias = 1, only the brickmodtex is used for the brick color.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickbond&#039;&#039;&#039; || string || &amp;quot;running&amp;quot; || &amp;quot;flemish&amp;quot;, &amp;quot;english&amp;quot;, &amp;quot;herringbone&amp;quot;, &amp;quot;basket&amp;quot; or &amp;quot;chain link&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickwidth&#039;&#039;&#039; || float || 0.3 || brick width&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickheight&#039;&#039;&#039; || float || 0.1 || brick height&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickdepth&#039;&#039;&#039; || float || 0.15 || brick depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.mortarsize&#039;&#039;&#039; || float || 0.01 ||mortar size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.brickrun&#039;&#039;&#039; || float || 0.75 || brick run&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard3d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard3d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: checkerboard2d===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;checkerboard2d&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat1===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat1&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || float || 1.0 || constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constfloat3===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || spectrum || (1.0, 1.0, 1.0) || RGB constant value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: densitygrid===&lt;br /&gt;
&lt;br /&gt;
You can use &amp;quot;.data&amp;quot;, &amp;quot;.data3&amp;quot; or &amp;quot;.openvdb.file&amp;quot; to define the 3D grid values.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;densitygrid&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nx&#039;&#039;&#039; || unsigned int || || grid x size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.ny&#039;&#039;&#039; || unsigned int || || grid y size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.nz&#039;&#039;&#039; || unsigned int || || grid z size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of grid wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;half&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data3&#039;&#039;&#039; || float || || vector grid values (total count: nx * ny * nz * 3)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.file&#039;&#039;&#039; || string || || OpenVDB file name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.openvdb.grid&#039;&#039;&#039; || string || || OpenVDB grid name to read from the file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dots===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dots&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.inside&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.outside&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fbm===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fbm&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxk===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxk&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: fresnelapproxn===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;fresnelapproxn&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || (0.5, 0.5, 0.5) || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointalpha===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices alphas.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointalpha&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointcolor===&lt;br /&gt;
&lt;br /&gt;
Use the color obtained by interpolating triangle vertices colors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hitpointgrey===&lt;br /&gt;
&lt;br /&gt;
Use the value obtained by interpolating triangle vertices colors, mapped to a float value (RGB converted into greyscale).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hitpointgrey&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || -1 || the index of the RGB channel to use. -1 means the luminance of the RGB value&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: hsv===&lt;br /&gt;
&lt;br /&gt;
Hue saturation value manipulation.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;hsv&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input color that will be manipulated&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.hue&#039;&#039;&#039; || texture || 0.5 || shift in hue (range: 0..1)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.saturation&#039;&#039;&#039; || texture || 1.0 || saturation (range: 0..inf)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 1.0 || brightness multiplier (range: 0..inf)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: imagemap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;imagemap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || name of the image file&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction value used in the image&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.gain&#039;&#039;&#039; || float || 1.0 || image values are multiplied by gain value&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || select the type of memory storage: &amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot;, &amp;quot;float&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wrap&#039;&#039;&#039; || string || &amp;quot;repeat&amp;quot; || select the type of image map wrapping mode: &amp;quot;repeat&amp;quot;, &amp;quot;black&amp;quot;, &amp;quot;white&amp;quot;, &amp;quot;clamp&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || string || &amp;quot;default&amp;quot; || extract from the image only the selected channels:&amp;lt;br&amp;gt; &amp;quot;default&amp;quot;, &amp;quot;red&amp;quot;, &amp;quot;green&amp;quot;, &amp;quot;blue&amp;quot;,&amp;lt;br&amp;gt; &amp;quot;alpha&amp;quot;, &amp;quot;mean&amp;quot;, &amp;quot;colored_mean&amp;quot;, &amp;quot;rgb&amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: normalmap===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;normalmap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0 0 0 || input. Is treated as an XYZ vector in tangent space.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || multiplier for adjusting normalmap height&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: marble===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;marble&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.scale&#039;&#039;&#039; || float || 1.0 || marble scale&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.variation&#039;&#039;&#039; || float || 0.2 || marble variation&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: scale===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;scale&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: uv===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 2D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: windy===&lt;br /&gt;
&lt;br /&gt;
This procedural texture has no parameters aside from the support of 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wood===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wood&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.woodtype&#039;&#039;&#039; || string || &amp;quot;bands&amp;quot; || &amp;quot;bands&amp;quot;, &amp;quot;rings&amp;quot;, &amp;quot;bandnoise&amp;quot; or &amp;quot;ringnoise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisebasis2&#039;&#039;&#039; || string || &amp;quot;sin&amp;quot; || &amp;quot;sin&amp;quot;, &amp;quot;saw&amp;quot; or &amp;quot;tri&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisetype&#039;&#039;&#039; || string || &amp;quot;soft_noise&amp;quot; || &amp;quot;soft_noise&amp;quot; or &amp;quot;hard_noise&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.noisesize&#039;&#039;&#039; || float || 0.25 || noise size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.turbulence&#039;&#039;&#039; || float || 5.0 || noise turbulence&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.bright&#039;&#039;&#039; || float || 1.0 || bright&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.contrast&#039;&#039;&#039; || float || 1.0 || contrast&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: wrinkled===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;wrinkled&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.octaves&#039;&#039;&#039; || int || 8 || noise octaves&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.roughness&#039;&#039;&#039; || float || 0.5 || noise roughness&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This texture supports 3D mapping.&lt;br /&gt;
&lt;br /&gt;
===Type: abs===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;abs&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: clamp===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;clamp&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.min&#039;&#039;&#039; || float || 0.0 || lower boundary of the clamping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.max&#039;&#039;&#039; || float || 1.0 || upper boundary of the clamping&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: divide===&lt;br /&gt;
&lt;br /&gt;
Note: If texture2 (the divisor) is 0, 0 is returned.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;divide&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant (dividend)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant (divisor)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: remap===&lt;br /&gt;
&lt;br /&gt;
This texture brings the value from the source range into the target range. &lt;br /&gt;
&lt;br /&gt;
Note: The value is clamped into source range before performing the remap operation, and the resulting number is also clamped into the target range.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;remap&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.value&#039;&#039;&#039; || texture || 0.5 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.sourcemax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmin&#039;&#039;&#039; || texture || 0.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.targetmax&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectid===&lt;br /&gt;
&lt;br /&gt;
Raw object ID (range 0 to 0xfffffffe).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectid&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidcolor===&lt;br /&gt;
&lt;br /&gt;
Object ID interpreted as color.&amp;lt;br&amp;gt;&lt;br /&gt;
The object ID is a 4 byte unsigned int. To convert to color, the lower three bytes are interpreted as r, g, b values (each range 0 to 255). The highest byte is ignored.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidcolor&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: objectidnormalized===&lt;br /&gt;
&lt;br /&gt;
Normalized object ID (range 0 to 1).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;objectidnormalized&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: dotproduct ===&lt;br /&gt;
&lt;br /&gt;
Dot product of the two input vectors.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;dotproduct&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: power ===&lt;br /&gt;
&lt;br /&gt;
pow(base, exponent)&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;power&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.base&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.exponent&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lessthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;lt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lessthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: greaterthan ===&lt;br /&gt;
&lt;br /&gt;
returns 1 if texture1 &amp;gt; texture2, 0 if otherwise.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;greaterthan&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: shadingnormal ===&lt;br /&gt;
&lt;br /&gt;
Returns the shading normal of the mesh at the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;shadingnormal&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: position ===&lt;br /&gt;
&lt;br /&gt;
Returns the position of the hitpoint.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;position&amp;quot; || type of texture&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: splitfloat3 ===&lt;br /&gt;
&lt;br /&gt;
Extract a channel from a float3 texture. Can for example be used to get the R, G or B channel of a color texture, or to get the X, Y or Z components of a vector texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;splitfloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.channel&#039;&#039;&#039; || int || 0 || the channel to get from the input texture. 0 for first channel, 1 for second, 2 for third channel&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: makefloat3 ===&lt;br /&gt;
&lt;br /&gt;
Combine three float textures into one float3 texture.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;makefloat3&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture1&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture2&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture3&#039;&#039;&#039; || texture || 1.0 || texture name or constant&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: blackbody===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;blackbody&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.temperature&#039;&#039;&#039; || float || 6500 || emission temperature&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.normalize&#039;&#039;&#039; || bool || false || normalize the output&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: irregulardata===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;irregulardata&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.wavelengths&#039;&#039;&#039; || vector || 580.0 620.0 660.0|| wavelenghts&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.data&#039;&#039;&#039; || vector || 0.0 0.000015 0.0|| data (length should match wavelength&#039;s length)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: lampspectrum===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;lampspectrum&amp;quot; || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || &amp;quot;Daylight&amp;quot; || lamp light spectrum&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: Fresnel Textures===&lt;br /&gt;
&lt;br /&gt;
Textures for loading optical data&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelcolor====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelcolor || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.kr&#039;&#039;&#039; || vector || 0.5 0.0 0.0 || reflection color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelpreset====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.name&#039;&#039;&#039; || string || aluminium || fresnel preset (&amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelsopra====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Au.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: fresnelluxpop====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || fresnelpreset || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.file&#039;&#039;&#039; || string || ... || nk file path (e.g scenes/luxball/Cr.nk)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Type: distort====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.type&#039;&#039;&#039; || string || distort || type of texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.texture&#039;&#039;&#039; || texture || 0.0 || texture name or constant; input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.offset&#039;&#039;&#039; || texture || 0.0 || texture name or constant; offset to add to the hitpoint coordinates and UV values before evaluating the input texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.textures.&amp;lt;texture name&amp;gt;.strength&#039;&#039;&#039; || float || 1.0 || strength multiplier, is multiplied with the offset&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Volumes==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Volumes|LuxCoreRender Volumes]] for a high level description and examples of the volumes.&lt;br /&gt;
&lt;br /&gt;
All volumes share these properties&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.priority&#039;&#039;&#039; || unsigned int|| 0|| volume priority (when volumes overlap, the one with highest priority overrides the others)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.ior&#039;&#039;&#039; || texture|| ... || index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.absorption&#039;&#039;&#039; ||  texture || ... || absorption texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission &#039;&#039;&#039; ||  texture || ... || emission &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.emission.id &#039;&#039;&#039; || unsigned int || ... || emission ID&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Clear===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || clear || volume type&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Homogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || homogeneous|| volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Volume: Heterogeneous===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.type&#039;&#039;&#039; || string || heterogeneous || volume type&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.scattering&#039;&#039;&#039; || texture || ... || scattering texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.asymmetry&#039;&#039;&#039; || texture || ... || asymmetry texture&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.multiscattering&#039;&#039;&#039; || bool || ... || multiscattering&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.size&#039;&#039;&#039; || float || ... || step size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.volumes.&amp;lt;volume name&amp;gt;.steps.maxcount&#039;&#039;&#039; || unsigned int || ... || step maximum count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Materials==&lt;br /&gt;
&lt;br /&gt;
Check [[LuxCoreRender_Materials|LuxCoreRender Materials]] for a high level description and examples of the materials.&lt;br /&gt;
&lt;br /&gt;
===Common properties===&lt;br /&gt;
&lt;br /&gt;
Common material properties:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumptex&#039;&#039;&#039; || texture || || texture to use for the bump mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.normaltex&#039;&#039;&#039; || texture || || texture to use for the normal mapping&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || number of rays used to sample this material. -1 means use the default global value. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if this material is visible in indirect rays. This property is an hint and the render engine can ignore this information.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.bumpsamplingdistance&#039;&#039;&#039; || float || 0.001 || set the offset used to sample bump/normal mapping.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.interior&#039;&#039;&#039; || string || vol1 || name of interior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.volume.exterior&#039;&#039;&#039; || string || vol2 || name of exterior volume (for volume rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.id&#039;&#039;&#039; || int|| ... || material id&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.transparency&#039;&#039;&#039; || texture || 1.0 || transparency of the material. 1 for opaque, 0 for fully transparent&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.shadowcatcher.enable&#039;&#039;&#039; || bool || false || If true, the material will be transparent where hit by direct light and opaque otherwise (alpha transparency). Used for compositing.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Normal maps====&lt;br /&gt;
Normal maps are set first as a texture type and then assigned to the material. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
scene.textures.normmap.type = imagemap&lt;br /&gt;
scene.textures.normmap.file = scenes/bump/normal.png&lt;br /&gt;
scene.textures.normmap.gamma = 1&lt;br /&gt;
&lt;br /&gt;
scene.materials.mat_white.type = matte&lt;br /&gt;
scene.materials.mat_white.kd = 0.8 0.8 0.8&lt;br /&gt;
scene.materials.mat_white.normaltex = normmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Light emission====&lt;br /&gt;
&lt;br /&gt;
All materials can emit light:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || color of the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || multiplier for lamp brigthness&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.iesblob&#039;&#039;&#039; || blob || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light from this material. &amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.theta&#039;&#039;&#039; || float || 90.0 || How directional the light is emitted, set as the half-angle of the light source. Default is 90°.&amp;lt;br&amp;gt; Smaller values mean that more light is emitted in the direction of the face normals and less to the sides.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.emission.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light source compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: archglass===&lt;br /&gt;
&lt;br /&gt;
This material should be used to replace glass material of windows when rendering architectural interiors. It allows direct light to pass trough.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;archglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating. This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: carpaint===&lt;br /&gt;
&lt;br /&gt;
Car Paint is an advanced glossy material, simulating a diffuse surface with mutliple reflective coatings.&lt;br /&gt;
&lt;br /&gt;
The available presets for the carpaint material are:&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;ford f8&amp;quot;&lt;br /&gt;
*&amp;quot;polaris silber&amp;quot;&lt;br /&gt;
*&amp;quot;opel titan&amp;quot;&lt;br /&gt;
*&amp;quot;bmw339&amp;quot;&lt;br /&gt;
*&amp;quot;2k acrylack&amp;quot;&lt;br /&gt;
*&amp;quot;white&amp;quot;&lt;br /&gt;
*&amp;quot;blue&amp;quot;&lt;br /&gt;
*&amp;quot;blue matte&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;carpaint&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;ford f8&amp;quot; || one of the avilable presets&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || absorption color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || absorption depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || diffuse color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || specular color - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.r3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || fresnel effect strength - layer 3&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m1&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 1&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m2&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 2&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.m3&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || roughness - layer 3&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: cloth===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;cloth&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;denim&amp;quot; || denim, silk_charmeuse, silk_shantung, cotton_twill, wool_garbardine or polyester_lining_cloth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.weft_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in one weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of diffuse reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.warp_ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || coefficient of specular reflection in the opposite weave direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_u&#039;&#039;&#039; || float || 100.0 || thread count in the u direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.repeat_v&#039;&#039;&#039; || float || 100.0 || thread count in the v direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: disney===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;disney&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.basecolor&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || Base color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.subsurface&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.roughness&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.metallic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.specular&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.speculartint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoat&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.clearcoatgloss&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.anisotropic&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheen&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sheentint&#039;&#039;&#039; || texture || 0.0 || &lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmamount&#039;&#039;&#039; || texture || none || Linear interpolation between no film (0) and full film effect (1) for artistic control.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction (only for volume-less rendering)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.cauchyb&#039;&#039;&#039; || texture || 0.0 || if defined and &amp;gt; 0.0, enable dispersion. The value is the B term of the [https://en.wikipedia.org/wiki/Cauchy%27s_equation Cauchy&#039;s equation]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossy2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossy2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossytranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossytranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant diffuse color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmission color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks_bf&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant backface specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness_bf&#039;&#039;&#039; || texture || 0.1 || texture or constant backface roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of backface coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d_bf&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the backface depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index_bf&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the backface coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce_bf&#039;&#039;&#039; || bool || false || backface simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: glossycoating===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;glossycoating&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.base&#039;&#039;&#039; || string || || name of base material, the coating layer is added on top of this material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ks&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant specular color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.ka&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || texture or constant value of coefficient of absorption of the coating layer&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.d&#039;&#039;&#039; || texture || 0.0 || texture or constant value of the depth (thickness) of the coating layer for absorption effects. (0 = disables)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.index&#039;&#039;&#039; || texture || 0.0 0.0 0.0 || IOR of the coating. IOR overrides color Ks if both are specified&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.multibounce&#039;&#039;&#039; || bool || false || simulation of asperity (velvet-like reflection) on the glossy surface&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: matte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;matte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the matte material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mattetranslucent===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mattetranslucent&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || texture or constant transmitted color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: metal2===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;metal2&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.fresnel&#039;&#039;&#039; || fresnel texture || ... || [[#Type:_Fresnel_Textures | fresnel texture]]&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.preset&#039;&#039;&#039; || string || &amp;quot;aluminium&amp;quot; || (DEPRECATED) &amp;quot;aluminium&amp;quot;, &amp;quot;silver&amp;quot;, &amp;quot;copper&amp;quot;, &amp;quot;gold&amp;quot; or &amp;quot;amorphous carbon&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.n&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxn texture on overwrite the .preset property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.k&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || (DEPRECATED)  texture or constant value. It can be used to directly define a fresnelapproxk texture on overwrite the .preset property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mirror===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mirror&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mix===&lt;br /&gt;
&lt;br /&gt;
This material can be used to mix 2 other materials.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mix&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material1&#039;&#039;&#039; || string || mat1 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.material2&#039;&#039;&#039; || string || mat2 || name of another material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.amount&#039;&#039;&#039; || texture || 0.5 || texture or constant value used to mix the materials&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: null===&lt;br /&gt;
&lt;br /&gt;
This is empty, not visible material. It can be combined by using mix material with others. It is often used in combination with the alpha channel of an image map to render leafs, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;null&amp;quot; || type of material&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughglass===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughglass&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kr&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant reflected color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kt&#039;&#039;&#039; || texture || 1.0 1.0 1.0 || texture or constant transmitted color of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.interiorior&#039;&#039;&#039; || texture || 1.5 || inside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.exteriorior&#039;&#039;&#039; || texture || 1.0 || outside texture or constant index of refraction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.uroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along u coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.vroughness&#039;&#039;&#039; || texture || 0.1 || texture or constant roughness value along v coordinate of the material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmthickness&#039;&#039;&#039; || texture || none || thickness (in nanometers) of a [https://en.wikipedia.org/wiki/Thin-film_interference thin-film coating] on the surface.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.filmior&#039;&#039;&#039; || texture || none || Refractive index of the thin-film coating.&amp;lt;br&amp;gt;This property is optional, if it is not defined, the coating is disabled.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: roughmatte===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;roughmatte&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.75 0.75 0.75 || texture or constant color of the roughmatte material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.sigma&#039;&#039;&#039; || texture || 0.0 || the sigma parameter in the Oren-Nayer shader in degrees. Zero for pure Lambertian reflection&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: velvet===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;velvet&amp;quot; || type of material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.kd&#039;&#039;&#039; || texture || 0.5 0.5 0.5 || color of the material&#039;s fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p1&#039;&#039;&#039; || texture || -2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p2&#039;&#039;&#039; || texture || 20.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.p3&#039;&#039;&#039; || texture || 2.0 || polynomial that influences the fuzz&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.materials.&amp;lt;material name&amp;gt;.thickness&#039;&#039;&#039; || texture || 0.1 || height of the fuzz&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Objects==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.material&#039;&#039;&#039; || string || || type of object material&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.shape&#039;&#039;&#039; || string || || name of [[#Shapes | shape]] with the triangle mesh description.Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same shape, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.ply&#039;&#039;&#039; || string || || &#039;&#039;&#039;(Deprecated, use .shape instead)&#039;&#039;&#039; name of [http://en.wikipedia.org/wiki/PLY_(file_format) PLY] file with the triangle mesh description.&amp;lt;br&amp;gt;Memory required to store the triangle mesh information is allocated only&amp;lt;br&amp;gt;once if 2 or more different objects share the same file, use .transformation property and true instancing is enabled.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.vertices&#039;&#039;&#039; || float || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of float values defining the vertices of the mesh (i.e. 3 coordinates for each vertex).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.faces&#039;&#039;&#039; || unsigned int || || This is an alternative syntax to using PLY file. It is an in-lined definition of the triangle mesh.&amp;lt;br&amp;gt;It is a list of unsigned int values defining the triangles of the mesh (i.e. 3 index of vertices for each triangle).&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.id&#039;&#039;&#039; || unsigned int || || object ID&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.camerainvisible&#039;&#039;&#039; || bool || false || toggle visibility for camera rays. If set to true, the object will not show up in camera rays, but it will still be visible in reflections, refractions, shadows, indirect light etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Object Motion Blur===&lt;br /&gt;
&lt;br /&gt;
LuxCore supports transformation motion blur for objects.&lt;br /&gt;
Motion blur is enabled if an object has a motion system defined as described below.&lt;br /&gt;
&lt;br /&gt;
A motion system consists of steps (at least 2). Each step has a time (in seconds) and a transformation matrix of the object at this point in time.&lt;br /&gt;
Step indices start at 0. The times have to be monotonic (each greater than the last).&lt;br /&gt;
&lt;br /&gt;
Note that the embree accelerator only supports a maximum of 129 time steps.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.time&#039;&#039;&#039; || float || || time (in seconds) of the step&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.objects.&amp;lt;object name&amp;gt;.motion.&amp;lt;step&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix of the object at the given step&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Shapes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Type: mesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mesh&amp;quot; || mesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.ply&#039;&#039;&#039; || string || ... || mesh path (e.g &#039;&#039;scenes/luxball/luxball-shell.ply&#039;&#039;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: inlinedmesh===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;inlinedmesh&amp;quot; || inlinedmesh shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.vertices&#039;&#039;&#039; || vector || ... || inlinedmesh vertices (e.g 0.0 0.0 0.0  1.0 0.0 0.0  0.0 1.0 0.0)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.faces&#039;&#039;&#039; || vector || ... || inlinedmesh faces (e.g 0 1 2)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.appliedtransformation&#039;&#039;&#039; || Matrix4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0|| transformation matrix applied to the mesh vertices. Used to define the local object reference space.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: pointiness===&lt;br /&gt;
&lt;br /&gt;
Contains surface curvature information in vertex alpha channel.&amp;lt;br&amp;gt;&lt;br /&gt;
You can access this information in materials via a hitpointalpha texture.&amp;lt;br&amp;gt;&lt;br /&gt;
The values range from -1 to 1 (float).&amp;lt;br&amp;gt;&lt;br /&gt;
Values from -1 to 0 are concave, while values from 0 to 1 are convex.&lt;br /&gt;
&lt;br /&gt;
[[ Shape:_Pointiness | Examples ]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;pointiness&amp;quot; || pointiness shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || pointiness source (a mesh shape)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: strands===&lt;br /&gt;
&lt;br /&gt;
Can be used for hair, fur, grass etc.&amp;lt;br&amp;gt;&lt;br /&gt;
Note that you need to define the camera before defining any strands shapes, because the tesselation process is viewpoint-dependent.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;strands&amp;quot; || strands shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.file&#039;&#039;&#039; || string || ... || strands file (&#039;&#039;scenes/strands/straight.hair&#039;&#039;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Strands tessellation methods====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbon&amp;quot; || ribbon tessellation&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.usecameraposition&#039;&#039;&#039; || bool || 1 || use camera position&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;ribbonadaptive&amp;quot; || ribbon adaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.maxdepth&#039;&#039;&#039; || unsigned int || 12 || max tessellation depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.adaptative.error &#039;&#039;&#039; || float || 0.0075 || max tessellation error &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solid&amp;quot; || solid tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solid.sidecount &#039;&#039;&#039; || unsigned int || 12 || tessellation&#039;s side count&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.type&#039;&#039;&#039; || string || &amp;quot;solidadaptive&amp;quot; || solidadaptive tessellation method&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.sidecount &#039;&#039;&#039; || unsigned int || 8 || tessellation&#039;s side count&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.maxdepth&#039;&#039;&#039; || unsigned int || 16 || tessellation&#039;s max depth&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.tessellation.solidadaptive.error&#039;&#039;&#039; || float || 0.05 || tessellation&#039;s max error&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: group===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: displacement===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: subdiv===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;subdiv&amp;quot; || subdivided shape&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.source&#039;&#039;&#039; || string || ... || source mesh name&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxlevel&#039;&#039;&#039; || unsigned integer || 2 || maximum level of subdivision&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.maxedgescreensize&#039;&#039;&#039; || float || 0.0 || maximum edge screen size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.shapes.&amp;lt;shape name&amp;gt;.adaptive&#039;&#039;&#039; || bool || 1 || Adaptive refinement / Uniform refinement&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: harlequin===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: simplify===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: islandaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
===Type: randomtriangleaov===&lt;br /&gt;
&lt;br /&gt;
Todo.&lt;br /&gt;
&lt;br /&gt;
==Light sources==&lt;br /&gt;
&lt;br /&gt;
Check [[Lighting|LuxCoreRender Lighting]] for an high level description and example of the light sources.&lt;br /&gt;
&lt;br /&gt;
===Common parameters===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || intensity of the light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.transformation&#039;&#039;&#039; || matrix 4x4 || 1.0 0.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 1.0 0.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 1.0 0.0&amp;lt;br/&amp;gt;0.0 0.0 0.0 1.0 || transformation matrix&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.samples&#039;&#039;&#039; || int || -1 || the number of shadow ray to trace to compute direct light for this light source.&amp;lt;br&amp;gt;This property is an hint and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.id&#039;&#039;&#039; || int || 0 || the radiance group the light emitted from this material is assigned to.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.importance&#039;&#039;&#039; || float || 1.0 || A hint how often to sample this light compared to other lights&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sun===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sun&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.relsize&#039;&#039;&#039; || float || 1.0 || relative size to the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sky2===&lt;br /&gt;
&lt;br /&gt;
Hosek-Wilkie sky model.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sky2&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.turbidity&#039;&#039;&#039; || float || 2.2 || turbidity can go from 1.0 to 30+. 2-6 are most useful for clear days&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.dir&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction vector of the sun&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gain&#039;&#039;&#039; || vector || ... || gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.groundalbedo&#039;&#039;&#039; || vector || 0.5 0.5 0.5 || ground albedo&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.enable&#039;&#039;&#039; || bool || 1 || enable ground color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.ground.color&#039;&#039;&#039; || vector|| ... || RGB ground color&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: infinite===&lt;br /&gt;
&lt;br /&gt;
Spherical lightsource surrounding the scene at infinite distance.&amp;lt;br&amp;gt;&lt;br /&gt;
Used for image based lighting (IBL) and HDR environment lighting if the file is a high dynamic range image.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;infinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.file&#039;&#039;&#039; || string || &amp;quot;image.png&amp;quot; || filename of the environment map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma correction used by the image map&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.storage&#039;&#039;&#039; || string || &amp;quot;auto&amp;quot; || environment map storage type (&amp;quot;auto&amp;quot;, &amp;quot;byte&amp;quot;, &amp;quot;half&amp;quot; or &amp;quot;float&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.sampleupperhemisphereonly&#039;&#039;&#039; || bool || false || an option set to black the lower hemisphere. Mostly useful for shadow catchers.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: point===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;point&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mappoint===&lt;br /&gt;
&lt;br /&gt;
Point light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mappoint&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sphere===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: mapsphere===&lt;br /&gt;
&lt;br /&gt;
Sphere light with support for IES files or image maps controlling the strength of light emitted.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;mapsphere&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 1.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || the name of an optional image map that can be used to scale the emitted light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesfile&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light and the render engine can ignore this information. -1 means use the default global value.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.iesblob&#039;&#039;&#039; || string || || a [http://en.wikipedia.org/wiki/Illuminating_Engineering_Society_of_North_America IES] profile of emitted light embedded in a blob&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.flipz&#039;&#039;&#039; || bool || false || flip the IES profile along the Z axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.width&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified width. 0 means use the original size&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.map.height&#039;&#039;&#039; || unsigned int || 0 || scale the image or IES map to the specified height. 0 means use the original size&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: spot===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;spot&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.coneangle&#039;&#039;&#039; || float || 30.0 || angle in degrees of the spotlight cone&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.conedeltaangle&#039;&#039;&#039; || float || 5.0 || angle at which the spotlight intensity starts to fade from the edge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: projection===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;projection&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.fov&#039;&#039;&#039; || float || 45.0 || field of view in terms of angular spread along the shorter image axis&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.mapfile&#039;&#039;&#039; || string || || filename of the image to project. If not specified, a constat light color will be used.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.gamma&#039;&#039;&#039; || float || 2.2 || gamma value of the image map defined with .mapfile property&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: constantinfinite===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;constantinfinite&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.diffuse.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on diffuse surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.glossy.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on glossy surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.visibility.indirect.specular.enable&#039;&#039;&#039; || bool || true || if the light source is visible by indirect rays on specular surfaces.&amp;lt;br&amp;gt;This is an hint and can be optional supported by the render engine. It can be used to remove fireflies.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: sharpdistant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;sharpdistant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: distant===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;distant&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.direction&#039;&#039;&#039; || vector || 0.0 0.0 1.0 || direction&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.theta&#039;&#039;&#039; || float || 10.0 || half angle of the light source in degree. Must be &amp;gt; 0 for soft shadows&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Type: laser===&lt;br /&gt;
&lt;br /&gt;
A light source emitting parallel light rays (like sharpdistant light, but starting inside the scene instead of infinitely far away).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;  cellspacing=&amp;quot;2&amp;quot;&lt;br /&gt;
!Property name&lt;br /&gt;
!Property type&lt;br /&gt;
!Default value&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.type&#039;&#039;&#039; || string || &amp;quot;laser&amp;quot; || type of light&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.position&#039;&#039;&#039; || point || 0.0 0.0 0.0 || position&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.target&#039;&#039;&#039; || point || 0.0 0.0 1.0 || target&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.color&#039;&#039;&#039; || spectrum || 1.0 1.0 1.0 || color&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.power&#039;&#039;&#039; || float || 0.0 || lamp output power in watts. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.efficency&#039;&#039;&#039; || float || 0.0 || luminous efficacy in lumens/watt. Setting 0 for both power and efficacy&amp;lt;br&amp;gt; bypasses this feature and uses only the lamp gain&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;scene.lights.&amp;lt;light name&amp;gt;.radius&#039;&#039;&#039; || float || 0.01 || radius of the laser beam&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2710</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2710"/>
		<updated>2026-06-06T14:31:40Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* LuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&#039;&#039;&#039;Coding/Backend&#039;&#039;&#039;&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Use LuxCore internal OIDN (rather than embedding and calling an external OIDN executable)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bugfix&#039;&#039;&#039;&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed https://projects.blender.org/blender/blender/issues/140488&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Fix rounding of convergence percentage, reaching 100% to early for complex scenes&lt;br /&gt;
* Fix Blender crash when clicking Copy Material&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features (of interest for users)&#039;&#039;&#039;&lt;br /&gt;
* Update compatibility for Blender 5.0&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space (c.f. section LuxCore)&lt;br /&gt;
* New shape node &amp;quot;MergeOnDistance&amp;quot; (like Blender Merge by Distance)&lt;br /&gt;
* Subdiv: (simple) crease management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding/Backend&#039;&#039;&#039;&lt;br /&gt;
* Subdivision: multithreaded version, in order to improve speed&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Adapt CI pipelines to MacOS-15 runners (after deprecation of MacOS-13 runners on Github)&lt;br /&gt;
* Remove direct access to Blender internal objects. Use Blender API instead, more stable.&lt;br /&gt;
* Add support for Python 3.14 (and remove support for 3.9)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bugfix&#039;&#039;&#039;&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Fix various memory-related issues (leaks, potential access violations...). Modernize memory handling (to be continued)&lt;br /&gt;
* Avoid crash if no OpenCL and/or Nvidia API is found&lt;br /&gt;
* Fix several race conditions&lt;br /&gt;
* Fixed an error where paused renderings can&#039;t be stopped anymore&lt;br /&gt;
* 3D-mapping: Fix inconsistent behavior between local and random-local mapping https://github.com/LuxCoreRender/BlendLuxCore/issues/656&lt;br /&gt;
* Add a clamping in SchlickBSDF to avoid (very small) floating point issues&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features (of interest for users)&#039;&#039;&#039;&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Make `pyluxcoretools` available again (in the wheels)&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt; https://github.com/LuxCoreRender/LuxCore/issues/671&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space https://github.com/LuxCoreRender/BlendLuxCore/issues/644&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Better dependency pinning (for nvrtc and conan-index)&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2709</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2709"/>
		<updated>2026-06-06T14:24:28Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: minor title change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&#039;&#039;&#039;Coding/Backend&#039;&#039;&#039;&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Use LuxCore internal OIDN (rather than embedding and calling an external OIDN executable)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bugfix&#039;&#039;&#039;&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed https://projects.blender.org/blender/blender/issues/140488&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Fix rounding of convergence percentage, reaching 100% to early for complex scenes&lt;br /&gt;
* Fix Blender crash when clicking Copy Material&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features (of interest for users)&#039;&#039;&#039;&lt;br /&gt;
* Update compatibility for Blender 5.0&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space (c.f. section LuxCore)&lt;br /&gt;
* New shape node &amp;quot;MergeOnDistance&amp;quot; (like Blender Merge by Distance)&lt;br /&gt;
* Subdiv: (simple) crease management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding/Backend&#039;&#039;&#039;&lt;br /&gt;
* Subdivision: multithreaded version, in order to improve speed&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Adapt CI pipelines to MacOS-15 runners (after deprecation of MacOS-13 runners on Github)&lt;br /&gt;
* Remove direct access to Blender internal objects. Use Blender API instead, more stable.&lt;br /&gt;
* Add support for Python 3.14 (and remove support for 3.9)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bugfix&#039;&#039;&#039;&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Fix various memory-related issues (leaks, potential access violations...). Modernize memory handling (to be continued)&lt;br /&gt;
* Avoid crash if no OpenCL and/or Nvidia API is found&lt;br /&gt;
* Fix several race conditions&lt;br /&gt;
* Fixed an error where paused renderings can&#039;t be stopped anymore&lt;br /&gt;
* 3D-mapping: Fix inconsistent behavior between local and random-local mapping https://github.com/LuxCoreRender/BlendLuxCore/issues/656&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features (of interest for users)&#039;&#039;&#039;&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Make `pyluxcoretools` available again (in the wheels)&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt; https://github.com/LuxCoreRender/LuxCore/issues/671&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space https://github.com/LuxCoreRender/BlendLuxCore/issues/644&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Better dependency pinning (for nvrtc and conan-index)&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Deploying_LuxCoreRender&amp;diff=2705</id>
		<title>Deploying LuxCoreRender</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Deploying_LuxCoreRender&amp;diff=2705"/>
		<updated>2026-05-05T20:31:11Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Documentation and Announcements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Audience, Definitions and Scope =&lt;br /&gt;
&lt;br /&gt;
This document is intended for &amp;lt;i&amp;gt;LuxCoreRender administrators&amp;lt;/i&amp;gt; only.&lt;br /&gt;
&lt;br /&gt;
The process requires that the administrator running Release and Deploy be:&lt;br /&gt;
* granted with sufficient rights on LuxCoreRender repositories on Github, including running actions, producing releases etc.&lt;br /&gt;
* granted with sufficient rights on LuxCoreRender repository on PyPI and PyPI-test, including adding and deleting versions&lt;br /&gt;
* skilled enough in Github administration and, especially, able to run Github actions&lt;br /&gt;
* and skilled enough in PyPI administration&lt;br /&gt;
Please check that you meet these criteria before reading further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this document:&lt;br /&gt;
* &amp;lt;i&amp;gt;Releasing&amp;lt;/i&amp;gt; refers to the process of finalizing a version of LuxCore, i.e. defining a state of LuxCore which can be made available to end-users.&lt;br /&gt;
* &amp;lt;i&amp;gt;Deployment&amp;lt;/i&amp;gt; refers to the process of making a new release of LuxCoreRender available to end-users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scope of Deployment includes the following components:&lt;br /&gt;
* &amp;lt;b&amp;gt;Python Wheels&amp;lt;/b&amp;gt; (aka &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;b&amp;gt;Samples&amp;lt;/b&amp;gt; (aka &amp;lt;code&amp;gt;luxcoreui&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;luxcoreconsole&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;b&amp;gt;BlendLuxCore&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note we deliberately exclude the dependencies (aka &amp;lt;code&amp;gt;LuxCoreDeps&amp;lt;/code&amp;gt;) from the deployment scope. Indeed:&lt;br /&gt;
* Dependencies are not intended for end-users, so deployment is not applicable.&lt;br /&gt;
* Up-to-date dependencies are necessary for LuxCore development and tests, so they should have been released for a while when LuxCore deployment occurs.&lt;br /&gt;
&lt;br /&gt;
= Prequisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean Branches ==&lt;br /&gt;
&lt;br /&gt;
The procedure assumes the releases can be created from the &amp;lt;i&amp;gt;default branches&amp;lt;/i&amp;gt; in each repository, namely (2026-04-19):&lt;br /&gt;
* &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; for LuxCore&lt;br /&gt;
* &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; for BlendLuxCore&lt;br /&gt;
Please check the above branches contain all the history you target for your releases and, if not, please make the required git plumbing.&lt;br /&gt;
&lt;br /&gt;
== LuxCore Buildability ==&lt;br /&gt;
&lt;br /&gt;
The procedure requires that targeted LuxCore components be &amp;lt;i&amp;gt;buildable&amp;lt;/i&amp;gt; by &amp;lt;i&amp;gt;Continuous Integration&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be checked by running the following Github Actions:&lt;br /&gt;
* Wheels: &amp;lt;code&amp;gt;LuxCore Python Wheel Builder&amp;lt;/code&amp;gt; (in LuxCore repository)&lt;br /&gt;
* Samples: &amp;lt;code&amp;gt;LuxCore Python Sample Builder&amp;lt;/code&amp;gt; (in LuxCore repository)&lt;br /&gt;
* BlendLuxCore: &amp;lt;code&amp;gt;BlendLuxCore Build Bundle&amp;lt;/code&amp;gt; (in BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
Please check the components meet those requirements before any Release/Deploy task is engaged.&lt;br /&gt;
&lt;br /&gt;
== Change Log readiness ==&lt;br /&gt;
&lt;br /&gt;
At a certain point in the process, a change log will be expected: you should have prepared it beforehand. Note this can be done afterwards, however.&lt;br /&gt;
&lt;br /&gt;
== Consistent Version Numbers ==&lt;br /&gt;
First, note you&#039;ll need 2 version numbers:&lt;br /&gt;
* One for LuxCore&lt;br /&gt;
* One for BlendLuxCore&lt;br /&gt;
There is no reason why these 2 version numbers should be the same.&lt;br /&gt;
&lt;br /&gt;
These version numbers must enforce Semantic Versioning, as stated in [[Building_LuxCoreRender | Building LuxCoreRender]]&lt;br /&gt;
&lt;br /&gt;
Please note also that &amp;lt;b&amp;gt;the version numbers should not have been used in anyway in previous releases&amp;lt;/b&amp;gt;. It is particularly important for PyPI (and PyPI-test), that will reject any upload declaring a version that has already been in use before, event for a short time.&lt;br /&gt;
&lt;br /&gt;
== Sufficient space on PyPI and PyPI-test ==&lt;br /&gt;
&lt;br /&gt;
The space on PyPI and PyPI-test is limited to 10GB (as of now, 2026-04-19).&lt;br /&gt;
&lt;br /&gt;
At first glance, this could look quite comfortable, however we release 20 wheels each time (about 80-100MB each): the space required for one release is about 1.5GB. As a consequence, the space sufficiency must be checked each time a version has to be deployed.&lt;br /&gt;
&lt;br /&gt;
Nota: this check is &amp;lt;i&amp;gt;critical&amp;lt;/i&amp;gt; and should be done with care. If the upload to PyPI is interrupted halfway, for instance by lack of space, the version number will still become no more available.&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== Pre-Flight Review ==&lt;br /&gt;
As stated above, before starting the core procedure, carry out the following actions:&lt;br /&gt;
&lt;br /&gt;
* Ensure the default branches are up-to-date&lt;br /&gt;
* Check LuxCore buildability: run the 3 actions listed above.&lt;br /&gt;
* Ensure the change log is available&lt;br /&gt;
* Define and check Release Version Numbers (one for LuxCore and one for BlendLuxCore): they should have been neither allocated before, and the LuxCore should not have been used on PyPI.&lt;br /&gt;
* Check the space on PyPI and PyPI-test. If not sufficient, clean oldest versions.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you are ready to start the core process.&lt;br /&gt;
&lt;br /&gt;
== Wheels Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; parameter in &amp;lt;code&amp;gt;build-system/conan/conanfile.py&amp;lt;/code&amp;gt; to the targeted version number for LuxCore.&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Releaser&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Update existing release (if any): &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
  Rebuild all: &amp;lt;i&amp;gt;checked&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will build the wheels and create a release in draft mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open the draft release and set its status to &amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;. Also, insert the change log in the release text. Save the release.&lt;br /&gt;
&lt;br /&gt;
At this stage, the wheels are released, but we still have to deploy them through PyPI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Publisher&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Run on PyPI test: &amp;lt;i&amp;gt;checked&amp;lt;/i&amp;gt;&lt;br /&gt;
This will upload the wheels to PyPI test (deployment - test).&lt;br /&gt;
This is a test step, to check everything is fine before uploadig to real PyPI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Publisher&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Run on PyPI test: &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
This will upload the wheels to PyPI (deployment).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage, if everything succeeded, wheels are available for any user, with &amp;lt;code&amp;gt;pip install pyluxcore == &amp;lt;version&amp;gt; &amp;lt;/code&amp;gt;. You may want to test and/or have a look on PyPI.&lt;br /&gt;
&lt;br /&gt;
== Samples Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
Nota #1: This step should be skipped for alpha releases, as the vast majority of alpha testers use Blender for testing. No need for samples in this context...&lt;br /&gt;
&lt;br /&gt;
Nota #2: We assume the wheels have just been released, so that it is possible to reuse their build artifacts. This will be done by clearing &#039;rebuild all&#039; in the following action.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run Github action named &amp;lt;code&amp;gt;LuxCore Samples Releaser&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
   Branch: &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt;&lt;br /&gt;
   Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
   Update existing release (if any): &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
   Rebuild all: &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this stage, a &amp;lt;i&amp;gt;draft release&amp;lt;/i&amp;gt; should have been created.&lt;br /&gt;
&lt;br /&gt;
* Open the draft release, insert change log and set release status to &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* For latest releases, publish the files on the website&lt;br /&gt;
&lt;br /&gt;
== BlendLuxCore Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
Important warning: BLC should &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; be released while related wheels have not been deployed yet. Indeed, &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt; version must be known before starting any release or deploy action of BLC.Once that requirement is met:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;luxloader/__init__.py&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;PYLUXCORE_VERSION&amp;lt;/code&amp;gt; to the version of related &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt;. The version to use must be strictly the same as the one that appears on PyPI. Please check syntax carefully, as PyPI may slightly modify version number when uploading.&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;blender_manifest.toml&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; parameter to the targeted version of BLC. Caveat: this version can differ from pyluxcore version defined above.&lt;br /&gt;
&lt;br /&gt;
* Commit your changes and push to BlendLuxCore repository, if needed.&lt;br /&gt;
&lt;br /&gt;
* Run Github action named &amp;lt;code&amp;gt;BlendLuxCore Create Release&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
   Branch: &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt;&lt;br /&gt;
   Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
   Update existing release (if any): &amp;lt;i&amp;gt;Unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
At this stage, a &amp;lt;i&amp;gt;draft release&amp;lt;/i&amp;gt; should have been created.&lt;br /&gt;
&lt;br /&gt;
* Open the draft release, insert change log and set release status to &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* For latest releases, publish the files on the website&lt;br /&gt;
&lt;br /&gt;
== Documentation and Announcements ==&lt;br /&gt;
&lt;br /&gt;
Part of the process of releasing a software is to create a proper documentation, both to support future development and to provide users with the necessary information to work efficiently with the software.&lt;br /&gt;
Furthermore, the final step after release and deployment is to announce the release to the community.&lt;br /&gt;
&lt;br /&gt;
The following items are currently - as of v2.11 - particularly important and should be checked and well considered before a final release:&lt;br /&gt;
* This wiki, particularly&lt;br /&gt;
** Release notes&lt;br /&gt;
** FAQ entries&lt;br /&gt;
** Updates to the build process&lt;br /&gt;
** Description of new features, API and SDL documentation&lt;br /&gt;
* The project website&lt;br /&gt;
** particularly the downloads section&lt;br /&gt;
* The README files in all active code repositories&lt;br /&gt;
* The AUTHORS file and credits list&lt;br /&gt;
** specifically regarding 3rd-party modules that may have been added to the code&lt;br /&gt;
* Announcement on the forums&lt;br /&gt;
* Announcement in the discord channel&lt;br /&gt;
* Announcement on Blenderartist, ...&lt;br /&gt;
&lt;br /&gt;
During the various release steps (alpha, beta, release candidate, stable and subsequent bugfixes), the different items may be completed to varying degrees, reaching maturity towards the stable release. The following are suggestions based on past experience. You can always look at past releases for inspiration.&lt;br /&gt;
&lt;br /&gt;
==== Alpha ====&lt;br /&gt;
* Update the release notes&lt;br /&gt;
* Update the API/SDL description&lt;br /&gt;
* Check the authors file and credits list&lt;br /&gt;
* Brief GitHub release notes with warning labels about stability&lt;br /&gt;
* Announcement on the most active user channels&lt;br /&gt;
* Decide on final tasks/known bugs that shall be fixed during alpha/beta phase&lt;br /&gt;
&lt;br /&gt;
==== Beta ====&lt;br /&gt;
* Keep updating release notes and API/SDL documentation&lt;br /&gt;
* Update the Readme files in the code base&lt;br /&gt;
* Start preparing a summary release notes for the GitHub release&lt;br /&gt;
* Announcement of beta phase on more community channels&lt;br /&gt;
* Complete all tasks for features/known bugfixes&lt;br /&gt;
&lt;br /&gt;
==== Release Candidate ====&lt;br /&gt;
* All documentation shall be updated fully&lt;br /&gt;
* Update FAQs with feedback from alpha/beta phase&lt;br /&gt;
* Double check authors and credits&lt;br /&gt;
* GitHub release notes still should contain a warning label&lt;br /&gt;
* Start preparing stable release announcement messages for all channels&lt;br /&gt;
&lt;br /&gt;
==== Stable (X.Y.0) ====&lt;br /&gt;
* Double-check all documentation&lt;br /&gt;
* Prepare the final release notes summary&lt;br /&gt;
* Create the release&lt;br /&gt;
* Update the download section on the website&lt;br /&gt;
* Create the announcement post on the forums&lt;br /&gt;
* Finally, announce on Discord and optionally other sites&lt;br /&gt;
&lt;br /&gt;
==== Bugfix (X.Y.Z) ====&lt;br /&gt;
For bugfix releases, prepare the following&lt;br /&gt;
* Update the Release Notes on this wiki&lt;br /&gt;
* Prepare a summary release notes targeted at users&lt;br /&gt;
** This needs to only include the incremental changes from the previous version&lt;br /&gt;
* Make a short announcement on the same channels as the for the stable release&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Deploying_LuxCoreRender&amp;diff=2704</id>
		<title>Deploying LuxCoreRender</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Deploying_LuxCoreRender&amp;diff=2704"/>
		<updated>2026-05-05T20:30:54Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Documentation and Announcements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Audience, Definitions and Scope =&lt;br /&gt;
&lt;br /&gt;
This document is intended for &amp;lt;i&amp;gt;LuxCoreRender administrators&amp;lt;/i&amp;gt; only.&lt;br /&gt;
&lt;br /&gt;
The process requires that the administrator running Release and Deploy be:&lt;br /&gt;
* granted with sufficient rights on LuxCoreRender repositories on Github, including running actions, producing releases etc.&lt;br /&gt;
* granted with sufficient rights on LuxCoreRender repository on PyPI and PyPI-test, including adding and deleting versions&lt;br /&gt;
* skilled enough in Github administration and, especially, able to run Github actions&lt;br /&gt;
* and skilled enough in PyPI administration&lt;br /&gt;
Please check that you meet these criteria before reading further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this document:&lt;br /&gt;
* &amp;lt;i&amp;gt;Releasing&amp;lt;/i&amp;gt; refers to the process of finalizing a version of LuxCore, i.e. defining a state of LuxCore which can be made available to end-users.&lt;br /&gt;
* &amp;lt;i&amp;gt;Deployment&amp;lt;/i&amp;gt; refers to the process of making a new release of LuxCoreRender available to end-users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scope of Deployment includes the following components:&lt;br /&gt;
* &amp;lt;b&amp;gt;Python Wheels&amp;lt;/b&amp;gt; (aka &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;b&amp;gt;Samples&amp;lt;/b&amp;gt; (aka &amp;lt;code&amp;gt;luxcoreui&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;luxcoreconsole&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;b&amp;gt;BlendLuxCore&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note we deliberately exclude the dependencies (aka &amp;lt;code&amp;gt;LuxCoreDeps&amp;lt;/code&amp;gt;) from the deployment scope. Indeed:&lt;br /&gt;
* Dependencies are not intended for end-users, so deployment is not applicable.&lt;br /&gt;
* Up-to-date dependencies are necessary for LuxCore development and tests, so they should have been released for a while when LuxCore deployment occurs.&lt;br /&gt;
&lt;br /&gt;
= Prequisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean Branches ==&lt;br /&gt;
&lt;br /&gt;
The procedure assumes the releases can be created from the &amp;lt;i&amp;gt;default branches&amp;lt;/i&amp;gt; in each repository, namely (2026-04-19):&lt;br /&gt;
* &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; for LuxCore&lt;br /&gt;
* &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; for BlendLuxCore&lt;br /&gt;
Please check the above branches contain all the history you target for your releases and, if not, please make the required git plumbing.&lt;br /&gt;
&lt;br /&gt;
== LuxCore Buildability ==&lt;br /&gt;
&lt;br /&gt;
The procedure requires that targeted LuxCore components be &amp;lt;i&amp;gt;buildable&amp;lt;/i&amp;gt; by &amp;lt;i&amp;gt;Continuous Integration&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be checked by running the following Github Actions:&lt;br /&gt;
* Wheels: &amp;lt;code&amp;gt;LuxCore Python Wheel Builder&amp;lt;/code&amp;gt; (in LuxCore repository)&lt;br /&gt;
* Samples: &amp;lt;code&amp;gt;LuxCore Python Sample Builder&amp;lt;/code&amp;gt; (in LuxCore repository)&lt;br /&gt;
* BlendLuxCore: &amp;lt;code&amp;gt;BlendLuxCore Build Bundle&amp;lt;/code&amp;gt; (in BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
Please check the components meet those requirements before any Release/Deploy task is engaged.&lt;br /&gt;
&lt;br /&gt;
== Change Log readiness ==&lt;br /&gt;
&lt;br /&gt;
At a certain point in the process, a change log will be expected: you should have prepared it beforehand. Note this can be done afterwards, however.&lt;br /&gt;
&lt;br /&gt;
== Consistent Version Numbers ==&lt;br /&gt;
First, note you&#039;ll need 2 version numbers:&lt;br /&gt;
* One for LuxCore&lt;br /&gt;
* One for BlendLuxCore&lt;br /&gt;
There is no reason why these 2 version numbers should be the same.&lt;br /&gt;
&lt;br /&gt;
These version numbers must enforce Semantic Versioning, as stated in [[Building_LuxCoreRender | Building LuxCoreRender]]&lt;br /&gt;
&lt;br /&gt;
Please note also that &amp;lt;b&amp;gt;the version numbers should not have been used in anyway in previous releases&amp;lt;/b&amp;gt;. It is particularly important for PyPI (and PyPI-test), that will reject any upload declaring a version that has already been in use before, event for a short time.&lt;br /&gt;
&lt;br /&gt;
== Sufficient space on PyPI and PyPI-test ==&lt;br /&gt;
&lt;br /&gt;
The space on PyPI and PyPI-test is limited to 10GB (as of now, 2026-04-19).&lt;br /&gt;
&lt;br /&gt;
At first glance, this could look quite comfortable, however we release 20 wheels each time (about 80-100MB each): the space required for one release is about 1.5GB. As a consequence, the space sufficiency must be checked each time a version has to be deployed.&lt;br /&gt;
&lt;br /&gt;
Nota: this check is &amp;lt;i&amp;gt;critical&amp;lt;/i&amp;gt; and should be done with care. If the upload to PyPI is interrupted halfway, for instance by lack of space, the version number will still become no more available.&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== Pre-Flight Review ==&lt;br /&gt;
As stated above, before starting the core procedure, carry out the following actions:&lt;br /&gt;
&lt;br /&gt;
* Ensure the default branches are up-to-date&lt;br /&gt;
* Check LuxCore buildability: run the 3 actions listed above.&lt;br /&gt;
* Ensure the change log is available&lt;br /&gt;
* Define and check Release Version Numbers (one for LuxCore and one for BlendLuxCore): they should have been neither allocated before, and the LuxCore should not have been used on PyPI.&lt;br /&gt;
* Check the space on PyPI and PyPI-test. If not sufficient, clean oldest versions.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you are ready to start the core process.&lt;br /&gt;
&lt;br /&gt;
== Wheels Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; parameter in &amp;lt;code&amp;gt;build-system/conan/conanfile.py&amp;lt;/code&amp;gt; to the targeted version number for LuxCore.&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Releaser&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Update existing release (if any): &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
  Rebuild all: &amp;lt;i&amp;gt;checked&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will build the wheels and create a release in draft mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open the draft release and set its status to &amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;. Also, insert the change log in the release text. Save the release.&lt;br /&gt;
&lt;br /&gt;
At this stage, the wheels are released, but we still have to deploy them through PyPI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Publisher&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Run on PyPI test: &amp;lt;i&amp;gt;checked&amp;lt;/i&amp;gt;&lt;br /&gt;
This will upload the wheels to PyPI test (deployment - test).&lt;br /&gt;
This is a test step, to check everything is fine before uploadig to real PyPI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Publisher&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Run on PyPI test: &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
This will upload the wheels to PyPI (deployment).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage, if everything succeeded, wheels are available for any user, with &amp;lt;code&amp;gt;pip install pyluxcore == &amp;lt;version&amp;gt; &amp;lt;/code&amp;gt;. You may want to test and/or have a look on PyPI.&lt;br /&gt;
&lt;br /&gt;
== Samples Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
Nota #1: This step should be skipped for alpha releases, as the vast majority of alpha testers use Blender for testing. No need for samples in this context...&lt;br /&gt;
&lt;br /&gt;
Nota #2: We assume the wheels have just been released, so that it is possible to reuse their build artifacts. This will be done by clearing &#039;rebuild all&#039; in the following action.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run Github action named &amp;lt;code&amp;gt;LuxCore Samples Releaser&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
   Branch: &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt;&lt;br /&gt;
   Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
   Update existing release (if any): &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
   Rebuild all: &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this stage, a &amp;lt;i&amp;gt;draft release&amp;lt;/i&amp;gt; should have been created.&lt;br /&gt;
&lt;br /&gt;
* Open the draft release, insert change log and set release status to &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* For latest releases, publish the files on the website&lt;br /&gt;
&lt;br /&gt;
== BlendLuxCore Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
Important warning: BLC should &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; be released while related wheels have not been deployed yet. Indeed, &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt; version must be known before starting any release or deploy action of BLC.Once that requirement is met:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;luxloader/__init__.py&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;PYLUXCORE_VERSION&amp;lt;/code&amp;gt; to the version of related &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt;. The version to use must be strictly the same as the one that appears on PyPI. Please check syntax carefully, as PyPI may slightly modify version number when uploading.&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;blender_manifest.toml&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; parameter to the targeted version of BLC. Caveat: this version can differ from pyluxcore version defined above.&lt;br /&gt;
&lt;br /&gt;
* Commit your changes and push to BlendLuxCore repository, if needed.&lt;br /&gt;
&lt;br /&gt;
* Run Github action named &amp;lt;code&amp;gt;BlendLuxCore Create Release&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
   Branch: &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt;&lt;br /&gt;
   Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
   Update existing release (if any): &amp;lt;i&amp;gt;Unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
At this stage, a &amp;lt;i&amp;gt;draft release&amp;lt;/i&amp;gt; should have been created.&lt;br /&gt;
&lt;br /&gt;
* Open the draft release, insert change log and set release status to &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* For latest releases, publish the files on the website&lt;br /&gt;
&lt;br /&gt;
== Documentation and Announcements ==&lt;br /&gt;
&#039;&#039;&#039;THIS SECTION IS WORK IN PROGRESS (CodeHD, 23.04.2026)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Part of the process of releasing a software is to create a proper documentation, both to support future development and to provide users with the necessary information to work efficiently with the software.&lt;br /&gt;
Furthermore, the final step after release and deployment is to announce the release to the community.&lt;br /&gt;
&lt;br /&gt;
The following items are currently - as of v2.11 - particularly important and should be checked and well considered before a final release:&lt;br /&gt;
* This wiki, particularly&lt;br /&gt;
** Release notes&lt;br /&gt;
** FAQ entries&lt;br /&gt;
** Updates to the build process&lt;br /&gt;
** Description of new features, API and SDL documentation&lt;br /&gt;
* The project website&lt;br /&gt;
** particularly the downloads section&lt;br /&gt;
* The README files in all active code repositories&lt;br /&gt;
* The AUTHORS file and credits list&lt;br /&gt;
** specifically regarding 3rd-party modules that may have been added to the code&lt;br /&gt;
* Announcement on the forums&lt;br /&gt;
* Announcement in the discord channel&lt;br /&gt;
* Announcement on Blenderartist, ...&lt;br /&gt;
&lt;br /&gt;
During the various release steps (alpha, beta, release candidate, stable and subsequent bugfixes), the different items may be completed to varying degrees, reaching maturity towards the stable release. The following are suggestions based on past experience. You can always look at past releases for inspiration.&lt;br /&gt;
&lt;br /&gt;
==== Alpha ====&lt;br /&gt;
* Update the release notes&lt;br /&gt;
* Update the API/SDL description&lt;br /&gt;
* Check the authors file and credits list&lt;br /&gt;
* Brief GitHub release notes with warning labels about stability&lt;br /&gt;
* Announcement on the most active user channels&lt;br /&gt;
* Decide on final tasks/known bugs that shall be fixed during alpha/beta phase&lt;br /&gt;
&lt;br /&gt;
==== Beta ====&lt;br /&gt;
* Keep updating release notes and API/SDL documentation&lt;br /&gt;
* Update the Readme files in the code base&lt;br /&gt;
* Start preparing a summary release notes for the GitHub release&lt;br /&gt;
* Announcement of beta phase on more community channels&lt;br /&gt;
* Complete all tasks for features/known bugfixes&lt;br /&gt;
&lt;br /&gt;
==== Release Candidate ====&lt;br /&gt;
* All documentation shall be updated fully&lt;br /&gt;
* Update FAQs with feedback from alpha/beta phase&lt;br /&gt;
* Double check authors and credits&lt;br /&gt;
* GitHub release notes still should contain a warning label&lt;br /&gt;
* Start preparing stable release announcement messages for all channels&lt;br /&gt;
&lt;br /&gt;
==== Stable (X.Y.0) ====&lt;br /&gt;
* Double-check all documentation&lt;br /&gt;
* Prepare the final release notes summary&lt;br /&gt;
* Create the release&lt;br /&gt;
* Update the download section on the website&lt;br /&gt;
* Create the announcement post on the forums&lt;br /&gt;
* Finally, announce on Discord and optionally other sites&lt;br /&gt;
&lt;br /&gt;
==== Bugfix (X.Y.Z) ====&lt;br /&gt;
For bugfix releases, prepare the following&lt;br /&gt;
* Update the Release Notes on this wiki&lt;br /&gt;
* Prepare a summary release notes targeted at users&lt;br /&gt;
** This needs to only include the incremental changes from the previous version&lt;br /&gt;
* Make a short announcement on the same channels as the for the stable release&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Deploying_LuxCoreRender&amp;diff=2674</id>
		<title>Deploying LuxCoreRender</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Deploying_LuxCoreRender&amp;diff=2674"/>
		<updated>2026-04-23T18:21:13Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Announcements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Audience, Definitions and Scope =&lt;br /&gt;
&lt;br /&gt;
This document is intended for &amp;lt;i&amp;gt;LuxCoreRender administrators&amp;lt;/i&amp;gt; only.&lt;br /&gt;
&lt;br /&gt;
The process requires that the administrator running Release and Deploy be:&lt;br /&gt;
* granted with sufficient rights on LuxCoreRender repositories on Github, including running actions, producing releases etc.&lt;br /&gt;
* granted with sufficient rights on LuxCoreRender repository on PyPI and PyPI-test, including adding and deleting versions&lt;br /&gt;
* skilled enough in Github administration and, especially, able to run Github actions&lt;br /&gt;
* and skilled enough in PyPI administration&lt;br /&gt;
Please check that you meet these criteria before reading further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In this document:&lt;br /&gt;
* &amp;lt;i&amp;gt;Releasing&amp;lt;/i&amp;gt; refers to the process of finalizing a version of LuxCore, i.e. defining a state of LuxCore which can be made available to end-users.&lt;br /&gt;
* &amp;lt;i&amp;gt;Deployment&amp;lt;/i&amp;gt; refers to the process of making a new release of LuxCoreRender available to end-users.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The scope of Deployment includes the following components:&lt;br /&gt;
* &amp;lt;b&amp;gt;Python Wheels&amp;lt;/b&amp;gt; (aka &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;b&amp;gt;Samples&amp;lt;/b&amp;gt; (aka &amp;lt;code&amp;gt;luxcoreui&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;luxcoreconsole&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;b&amp;gt;BlendLuxCore&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note we deliberately exclude the dependencies (aka &amp;lt;code&amp;gt;LuxCoreDeps&amp;lt;/code&amp;gt;) from the deployment scope. Indeed:&lt;br /&gt;
* Dependencies are not intended for end-users, so deployment is not applicable.&lt;br /&gt;
* Up-to-date dependencies are necessary for LuxCore development and tests, so they should have been released for a while when LuxCore deployment occurs.&lt;br /&gt;
&lt;br /&gt;
= Prequisites =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Clean Branches ==&lt;br /&gt;
&lt;br /&gt;
The procedure assumes the releases can be created from the &amp;lt;i&amp;gt;default branches&amp;lt;/i&amp;gt; in each repository, namely (2026-04-19):&lt;br /&gt;
* &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt; for LuxCore&lt;br /&gt;
* &amp;lt;code&amp;gt;main&amp;lt;/code&amp;gt; for BlendLuxCore&lt;br /&gt;
Please check the above branches contain all the history you target for your releases and, if not, please make the required git plumbing.&lt;br /&gt;
&lt;br /&gt;
== LuxCore Buildability ==&lt;br /&gt;
&lt;br /&gt;
The procedure requires that targeted LuxCore components be &amp;lt;i&amp;gt;buildable&amp;lt;/i&amp;gt; by &amp;lt;i&amp;gt;Continuous Integration&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This can be checked by running the following Github Actions:&lt;br /&gt;
* Wheels: &amp;lt;code&amp;gt;LuxCore Python Wheel Builder&amp;lt;/code&amp;gt; (in LuxCore repository)&lt;br /&gt;
* Samples: &amp;lt;code&amp;gt;LuxCore Python Sample Builder&amp;lt;/code&amp;gt; (in LuxCore repository)&lt;br /&gt;
* BlendLuxCore: &amp;lt;code&amp;gt;BlendLuxCore Build Bundle&amp;lt;/code&amp;gt; (in BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
Please check the components meet those requirements before any Release/Deploy task is engaged.&lt;br /&gt;
&lt;br /&gt;
== Change Log readiness ==&lt;br /&gt;
&lt;br /&gt;
At a certain point in the process, a change log will be expected: you should have prepared it beforehand. Note this can be done afterwards, however.&lt;br /&gt;
&lt;br /&gt;
== Consistent Version Numbers ==&lt;br /&gt;
First, note you&#039;ll need 2 version numbers:&lt;br /&gt;
* One for LuxCore&lt;br /&gt;
* One for BlendLuxCore&lt;br /&gt;
There is no reason why these 2 version numbers should be the same.&lt;br /&gt;
&lt;br /&gt;
These version numbers must enforce Semantic Versioning, as stated in [[Building_LuxCoreRender | Building LuxCoreRender]]&lt;br /&gt;
&lt;br /&gt;
Please note also that &amp;lt;b&amp;gt;the version numbers should not have been used in anyway in previous releases&amp;lt;/b&amp;gt;. It is particularly important for PyPI (and PyPI-test), that will reject any upload declaring a version that has already been in use before, event for a short time.&lt;br /&gt;
&lt;br /&gt;
== Sufficient space on PyPI and PyPI-test ==&lt;br /&gt;
&lt;br /&gt;
The space on PyPI and PyPI-test is limited to 10GB (as of now, 2026-04-19).&lt;br /&gt;
&lt;br /&gt;
At first glance, this could look quite comfortable, however we release 20 wheels each time (about 80-100MB each): the space required for one release is about 1.5GB. As a consequence, the space sufficiency must be checked each time a version has to be deployed.&lt;br /&gt;
&lt;br /&gt;
Nota: this check is &amp;lt;i&amp;gt;critical&amp;lt;/i&amp;gt; and should be done with care. If the upload to PyPI is interrupted halfway, for instance by lack of space, the version number will still become no more available.&lt;br /&gt;
&lt;br /&gt;
= Procedure =&lt;br /&gt;
&lt;br /&gt;
== Pre-Flight Review ==&lt;br /&gt;
As stated above, before starting the core procedure, carry out the following actions:&lt;br /&gt;
&lt;br /&gt;
* Ensure the default branches are up-to-date&lt;br /&gt;
* Check LuxCore buildability: run the 3 actions listed above.&lt;br /&gt;
* Ensure the change log is available&lt;br /&gt;
* Define and check Release Version Numbers (one for LuxCore and one for BlendLuxCore): they should have been neither allocated before, and the LuxCore should not have been used on PyPI.&lt;br /&gt;
* Check the space on PyPI and PyPI-test. If not sufficient, clean oldest versions.&lt;br /&gt;
&lt;br /&gt;
Afterwards, you are ready to start the core process.&lt;br /&gt;
&lt;br /&gt;
== Wheels Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
* Set the &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; parameter in &amp;lt;code&amp;gt;build-system/conan/conanfile.py&amp;lt;/code&amp;gt; to the targeted version number for LuxCore.&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Releaser&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Update existing release (if any): &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
  Rebuild all: &amp;lt;i&amp;gt;checked&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will build the wheels and create a release in draft mode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Open the draft release and set its status to &amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;. Also, insert the change log in the release text. Save the release.&lt;br /&gt;
&lt;br /&gt;
At this stage, the wheels are released, but we still have to deploy them through PyPI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Publisher&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Run on PyPI test: &amp;lt;i&amp;gt;checked&amp;lt;/i&amp;gt;&lt;br /&gt;
This will upload the wheels to PyPI test (deployment - test).&lt;br /&gt;
This is a test step, to check everything is fine before uploadig to real PyPI.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run action &amp;lt;code&amp;gt;LuxCore Python Wheels Publisher&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
  Branch: &amp;lt;code&amp;gt;master&amp;lt;/code&amp;gt;&lt;br /&gt;
  Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
  Run on PyPI test: &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
This will upload the wheels to PyPI (deployment).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this stage, if everything succeeded, wheels are available for any user, with &amp;lt;code&amp;gt;pip install pyluxcore == &amp;lt;version&amp;gt; &amp;lt;/code&amp;gt;. You may want to test and/or have a look on PyPI.&lt;br /&gt;
&lt;br /&gt;
== Samples Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
Nota #1: This step should be skipped for alpha releases, as the vast majority of alpha testers use Blender for testing. No need for samples in this context...&lt;br /&gt;
&lt;br /&gt;
Nota #2: We assume the wheels have just been released, so that it is possible to reuse their build artifacts. This will be done by clearing &#039;rebuild all&#039; in the following action.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Run Github action named &amp;lt;code&amp;gt;LuxCore Samples Releaser&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
   Branch: &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt;&lt;br /&gt;
   Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
   Update existing release (if any): &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
   Rebuild all: &amp;lt;i&amp;gt;unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
At this stage, a &amp;lt;i&amp;gt;draft release&amp;lt;/i&amp;gt; should have been created.&lt;br /&gt;
&lt;br /&gt;
* Open the draft release, insert change log and set release status to &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* For latest releases, publish the files on the website&lt;br /&gt;
&lt;br /&gt;
== BlendLuxCore Release and Deployment ==&lt;br /&gt;
&lt;br /&gt;
Important warning: BLC should &amp;lt;b&amp;gt;not&amp;lt;/b&amp;gt; be released while related wheels have not been deployed yet. Indeed, &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt; version must be known before starting any release or deploy action of BLC.Once that requirement is met:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;luxloader/__init__.py&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;PYLUXCORE_VERSION&amp;lt;/code&amp;gt; to the version of related &amp;lt;code&amp;gt;pyluxcore&amp;lt;/code&amp;gt;. The version to use must be strictly the same as the one that appears on PyPI. Please check syntax carefully, as PyPI may slightly modify version number when uploading.&lt;br /&gt;
&lt;br /&gt;
* In &amp;lt;code&amp;gt;blender_manifest.toml&amp;lt;/code&amp;gt;, set &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; parameter to the targeted version of BLC. Caveat: this version can differ from pyluxcore version defined above.&lt;br /&gt;
&lt;br /&gt;
* Commit your changes and push to BlendLuxCore repository, if needed.&lt;br /&gt;
&lt;br /&gt;
* Run Github action named &amp;lt;code&amp;gt;BlendLuxCore Create Release&amp;lt;/code&amp;gt;, with the following settings:&lt;br /&gt;
   Branch: &amp;lt;i&amp;gt;main&amp;lt;/i&amp;gt;&lt;br /&gt;
   Version: &amp;lt;i&amp;gt;the version number you selected before&amp;lt;/i&amp;gt;&lt;br /&gt;
   Update existing release (if any): &amp;lt;i&amp;gt;Unchecked&amp;lt;/i&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
At this stage, a &amp;lt;i&amp;gt;draft release&amp;lt;/i&amp;gt; should have been created.&lt;br /&gt;
&lt;br /&gt;
* Open the draft release, insert change log and set release status to &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;prerelease&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt; or &amp;lt;i&amp;gt;&amp;lt;code&amp;gt;latest release&amp;lt;/code&amp;gt;&amp;lt;/i&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* For latest releases, publish the files on the website&lt;br /&gt;
&lt;br /&gt;
== Documentation and Announcements ==&lt;br /&gt;
&#039;&#039;&#039;THIS SECTION IS WORK IN PROGRESS (CodeHD, 23.04.2026)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Part of the process of releasing a software is to create a proper documentation, both to support future development and to provide users with the necessary information to work efficiently with the software.&lt;br /&gt;
Furthermore, the final step after release and deployment is to announce the release to the communicate.&lt;br /&gt;
&lt;br /&gt;
The following items are currently - as of v2.11 - particularly important and should be checked and well considered before a final release:&lt;br /&gt;
* This wiki&lt;br /&gt;
** particularly the pages linked on the front page&lt;br /&gt;
* The project website&lt;br /&gt;
** particularly the downloads section&lt;br /&gt;
* The README files in all active code repositories&lt;br /&gt;
* The AUTHORS file and credits list&lt;br /&gt;
** specifically regarding 3rd-party modules that may have been added to the code&lt;br /&gt;
* Announcement on the forums&lt;br /&gt;
* Announcement in the discord channel&lt;br /&gt;
* Announcement on Blenderartist&lt;br /&gt;
&lt;br /&gt;
During the various release steps (alpha, beta, release candidate, stable and subsequent bugfixes), the different items may be completed to varying degrees, reaching maturity towards the stable release. The following are suggestions based on past experience. You can always look at past releases for inspiration.&lt;br /&gt;
&lt;br /&gt;
==== Alpha ====&lt;br /&gt;
&lt;br /&gt;
==== Beta ====&lt;br /&gt;
&lt;br /&gt;
==== Release Candidate ====&lt;br /&gt;
&lt;br /&gt;
==== Stable (X.Y.0) ====&lt;br /&gt;
At this point, all&lt;br /&gt;
&lt;br /&gt;
==== Bugfix (X.Y.Z) ====&lt;br /&gt;
For bugfix releases, prepare the following&lt;br /&gt;
* Update the Release Notes on this wiki&lt;br /&gt;
* Prepare a summary release notes targeted at users&lt;br /&gt;
** This needs to only include the incremental changes from the previous version&lt;br /&gt;
* Make a short announcement on the same channels as the Stable release&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=BlendLuxCore_FAQ&amp;diff=2555</id>
		<title>BlendLuxCore FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=BlendLuxCore_FAQ&amp;diff=2555"/>
		<updated>2026-04-11T10:21:03Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* I can not enable the BlendLuxCore addon, it shows errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
=== When trying to use CUDA/OptiX, Blender crashes ===&lt;br /&gt;
&lt;br /&gt;
This can be a different manifestation of the issue described below (CUDA_ERROR_UNSUPPORTED_PTX_VERSION). Try to upgrade the nvidia driver to the latest version, or try the studio driver branches for a latest stable version.&lt;br /&gt;
&lt;br /&gt;
Specifically, this has been observed with nvrtc13 in combination with drivers &amp;lt;590.&lt;br /&gt;
&lt;br /&gt;
=== When trying to use CUDA/OptiX, I get the error message: &amp;lt;code&amp;gt;RUNTIME ERROR: CUDA driver API error CUDA_ERROR_UNSUPPORTED_PTX_VERSION (code: 222, file:.../cuda.cpp, line: xxx): the provided PTX was compiled with an unsupported toolchain.&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
Your nvidia driver is too old compared to nvidia runtime compiler used by LuxCore, so the code compiled by LuxCore runtime compiler cannot be run by your driver.&lt;br /&gt;
&lt;br /&gt;
Please upgrade your nvidia driver to latest version, or at least to a suitable version with regard to runtime compiler: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id7&lt;br /&gt;
&lt;br /&gt;
=== After installation, I get the error message &amp;quot;could not import pyluxcore&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;pyluxcore&amp;quot; is the binary core library. BlendLuxCore downloads and installs the correct version for your system during installation. This error indicates something went wrong with this installation. Possible solutions are:&lt;br /&gt;
* Check that online access is allowed in the Blender preferences.&lt;br /&gt;
* Download may be restricted in company networks. You can try an [https://wiki.luxcorerender.org/BlendLuxCore_Installation#Offline_Installation offline-installation].&lt;br /&gt;
&lt;br /&gt;
=== I can not enable the BlendLuxCore addon, it shows errors ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: This section applies to older BlendLuxCore versions up to v2.9alpha&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Most problems in this area stem from broken graphics driver installations. Try to re-install or update your graphics driver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows users:&#039;&#039;&#039;&lt;br /&gt;
* Make sure that you have installed the [https://www.microsoft.com/en-US/download/details.aspx?id=40784 Visual C++ Redistributable Packages for Visual Studio 2013]&lt;br /&gt;
* If you use v2.1alpha0 or later, you will also need:&lt;br /&gt;
** [https://aka.ms/vs/15/release/vc_redist.x64.exe Microsoft Visual C++ Redistributable for Visual Studio 2017]&lt;br /&gt;
** [https://software.intel.com/sites/default/files/managed/59/aa/ww_icl_redist_msi_2018.3.210.zip Intel C++ redistributable]&lt;br /&gt;
&lt;br /&gt;
If this does not solve the problem, browse the [https://github.com/LuxCoreRender/BlendLuxCore/issues?q=is%3Aissue+label%3Ainstallation installation issues] in the bug tracker to check if your error message was already reported. &lt;br /&gt;
If it was not reported yet, open a new issue and copy the error message from the Blender console (on Windows, click Window -&amp;gt; Toggle System Console in Blender&#039;s menu. On Linux, start Blender from a terminal and try to enable the addon, then copy the error message from the terminal).&lt;br /&gt;
&lt;br /&gt;
See the [[BlendLuxCore_Installation | installation page]] for information on how to install, update and remove the BlendLuxCore addon.&lt;br /&gt;
&lt;br /&gt;
=== Is there something like Cycles&#039; Layer Weight/Fresnel/Facing node in LuxCore? ===&lt;br /&gt;
&lt;br /&gt;
No, in LuxCore there is no direct equivalent to this node, because it would not work with the many algorithms in LuxCore that trace rays from lights (instead of from the camera), like the bidirectional engine, light tracing mode, or the PhotonGI cache.&lt;br /&gt;
&lt;br /&gt;
Of course, all materials in LuxCore are physically based and have realistic fresnel effects built-in.&lt;br /&gt;
&lt;br /&gt;
You can achieve a similar effect with the dot product node, but it will work only for one viewpoint:&lt;br /&gt;
&lt;br /&gt;
[[File:Layer_weight_for_one_direction.PNG | thumb | 400px | center]]&lt;br /&gt;
&lt;br /&gt;
=== Can Cycles materials be used in BlendLuxCore? ===&lt;br /&gt;
&lt;br /&gt;
To an extent, yes. Many common Cycles shader nodes can be used in BlendLuxCore:&lt;br /&gt;
&lt;br /&gt;
* You can enable this individually for each material with the &amp;quot;Use Cycles Nodes&amp;quot; option in the material properties.&lt;br /&gt;
* You can also enable it for the whole scene at once with the &amp;quot;Use Cycles Settings&amp;quot; button in the render properties. This will configure all materials, lights and the world to use Cycles settings&lt;br /&gt;
&lt;br /&gt;
Not all Cycles nodes and settings are supported. Here is an overview: https://github.com/LuxCoreRender/BlendLuxCore/issues/272&lt;br /&gt;
&lt;br /&gt;
=== Can 2D/3D mapping be driven by textures in LuxCore? ===&lt;br /&gt;
&lt;br /&gt;
In general, no, because it would lead to much worse performance on GPUs.&lt;br /&gt;
&lt;br /&gt;
However, if you only need to drive the translation part of a texture mapping, since LuxCore v2.5 you can use the distort texture for this purpose:&lt;br /&gt;
&lt;br /&gt;
[[File:Distort_texture.PNG | thumb | 400px | center | A checker texture (left) is distorted by a clouds texture (right). The result can be seen in the center]]&lt;br /&gt;
&lt;br /&gt;
Texturing of rotation and scale is not yet possible.&lt;br /&gt;
&lt;br /&gt;
=== What can be done against fireflies/hotpixels? ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, pixels appear that are much brighter than the surrounding pixels. Sometimes they are singular, sometimes clumped up. The underlying reason are light paths that are correct, but very hard to find with the current rendering algorithms, and thus they take much longer to render until noise-free than all other light paths in the image.&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to approach this problem:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Try another rendering algorithm&#039;&#039;&#039;, it might be able to find the firefly-causing light paths much easier than the one you currently use. For example, try going to the render properties, open the Light Paths panel and enable &amp;quot;Light Tracing&amp;quot;, or try the [[PhotonGI | PhotonGI caustic cache]], or try using the bidirectional engine.&lt;br /&gt;
* You can &#039;&#039;&#039;clamp the brightness of all light paths&#039;&#039;&#039; to a maximum value, in the render properties, Light Paths panel, &amp;quot;Clamping&amp;quot; setting. BlendLuxCore can auto-detect a value for this setting that is in the right ballpark for your scene if you render once without clamping enabled, but often this value will not be the best, so you will need a bit of trial-and-error to find a good value. Note that the clamping value depends on the lighting in your scene, so there is no one universally good clamping value, and you might need to adjust it if you add a new light source to your scene that is brighter than the others. Using a clamping value that is too low will result in a low-contrast, washed-out image, while a too high value will leave fireflies unaffected.&lt;br /&gt;
* Try to find out which lights or materials are responsible for the fireflies. There might be small, hard-to-find light sources that are causing them. Or a specular material is reflecting such a light source. If you are willing to alter the look of the scene, you can make such a light source more visible/larger, or lower the specularity of such a material. You can also make some light sources invisble to indirect light rays, thus eliminating fireflies (light properties, &amp;quot;Visibility&amp;quot; panel). This can be a good idea for the sun, for example, if your scene contains lots of specular materials.&lt;br /&gt;
&lt;br /&gt;
=== Why is my HDRI environment black and not showing up? ===&lt;br /&gt;
You probably have other very bright light sources in the scene, for example a sun or a sky lamp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; raise the gain value of the area or HDRI light source that is black. The gain value might need to be very high, e.g. 100000.&lt;br /&gt;
&lt;br /&gt;
=== Why is my area lamp black? ===&lt;br /&gt;
See [[#&amp;quot;Why is my HDRI environment black and not showing up?&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
=== When I change the brightness of my lamp, nothing happens ===&lt;br /&gt;
&lt;br /&gt;
You are probably using an automatic tonemapper which adjusts itself to the changed brightness, making it seem like the brightness did not change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Use a non-automatic tonemapper (camera settings -&amp;gt; [[ImagePipeline]]).&lt;br /&gt;
&amp;lt;!-- TODO describe how to switch to one, and/or add a link to the tonemapping settings page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== When I make one of my lights brighter, all the other lights get darker (or vice versa) ===&lt;br /&gt;
&lt;br /&gt;
Similar to [[#&amp;quot;When I change the brightness of my lamp, nothing happens&amp;quot;]].&amp;lt;br&amp;gt;&lt;br /&gt;
You are using an automatic tonemapper which tries to keep the image at the same brightness, making it seem like the brightness of the lamps changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Use a non-automatic tonemapper (camera settings -&amp;gt; [[ImagePipeline]]).&lt;br /&gt;
&amp;lt;!-- TODO describe how to switch to one, and/or add a link to the tonemapping settings page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A material/object appears to be flickering when I move the camera and shows artifacts in final render ===&lt;br /&gt;
&lt;br /&gt;
This effect is called [https://en.wikipedia.org/wiki/Z-fighting Z-fighting] and is usually caused by mesh faces being exactly on top of each other, e.g. two planes on the same world coordinates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; &lt;br /&gt;
* Check if there are two objects on top of each other, e.g. because you duplicated the object, cancelled the transform and forgot about it.&lt;br /&gt;
* Check if the mesh has duplicate faces. Enter edit mode and use the Remove Doubles button in the Tools panel, which might solve the problem in some cases.&lt;br /&gt;
Duplicate faces are often caused by extruding, cancelling the transform and forgetting about it.&lt;br /&gt;
&lt;br /&gt;
=== There are dark triangular artifacts on my model, and I already checked for duplicate faces ===&lt;br /&gt;
&lt;br /&gt;
Floating point numbers have a limited precision. When objects are very large (kilometers) or very small (micrometers), these precision issues become visible. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; &lt;br /&gt;
* If the object has a &amp;quot;normal&amp;quot; size (something like 1 cm to 1 km), but was scaled up/down by a huge amount, try to apply the scale (Ctrl+A -&amp;gt; Scale). For example, this often happens with imported CAD models.&lt;br /&gt;
* If applying the scale did not help and your object has to be very small or large, consider to bring it into the normal scale mentioned above, and pretend that it has a larger/smaller size. For example, if you make a model of the solar system, you will just have to make the earth something like 12.742 m in diameter, and pretend that 1 m of your model is equal to 10^6 m. &lt;br /&gt;
* If both options above are not usable in your case, you can raise the minimum epsilon that LuxCore uses. This setting can be found in the scene properties, Units panel, after clicking &amp;quot;Advanced LuxCore Settings&amp;quot;. By default, the minimum epsilon is 0.00001. Try to raise it to 0.0001 (multiply by 10) for a start and see if the artifacts disappear. Do not set this value higher than necessary, because it will cause all sorts of hard-to-track problems. Be especially careful if you are rendering a scene with volumes.&lt;br /&gt;
&lt;br /&gt;
=== An object that I set to &amp;quot;smooth shading&amp;quot; looks like it is shaded flat in shadow penumbras ===&lt;br /&gt;
&lt;br /&gt;
This artifact is called &amp;quot;terminator problem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Unfortunately there is no real solution. You can only try to mitigate the effect by subdividing the geometry further and/or increase the size of the light source that is causing the problem.&lt;br /&gt;
&lt;br /&gt;
=== How do I setup liquid in a glass container correctly? ===&lt;br /&gt;
&lt;br /&gt;
This forum thread shows an example: https://forums.luxcorerender.org/viewtopic.php?f=4&amp;amp;t=728#p7550&lt;br /&gt;
&lt;br /&gt;
=== Can I export my scene in LuxCore format to render it in LuxCore standalone? ===&lt;br /&gt;
&lt;br /&gt;
Yes. In the render properties, LuxCore Tools panel, enable &amp;quot;FileSaver&amp;quot;. Then render with F12.&lt;br /&gt;
&lt;br /&gt;
=== How can I compile kernels from the command line? ===&lt;br /&gt;
Here is a way to compile kernels from the command line (out of Blender), for the latest version of pyluxcore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install pyluxcore --upgrade&lt;br /&gt;
python -c &amp;quot;import pyluxcore; pyluxcore.Init(); pyluxcore.KernelCacheFill()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting Help = &lt;br /&gt;
&lt;br /&gt;
If none of the above entries helped to solve your problem, consider asking in the [https://forums.luxcorerender.org/viewforum.php?f=4 user support forum] or [https://forums.luxcorerender.org/viewtopic.php?f=4&amp;amp;t=2 filing a bug report].&lt;br /&gt;
&lt;br /&gt;
[[Category:BlendLuxCore]]&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=BlendLuxCore_FAQ&amp;diff=2554</id>
		<title>BlendLuxCore FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=BlendLuxCore_FAQ&amp;diff=2554"/>
		<updated>2026-04-11T10:19:04Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add a new section about CUDA/OptiX&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
=== When trying to use CUDA/OptiX, Blender crashes ===&lt;br /&gt;
&lt;br /&gt;
This can be a different manifestation of the issue described below (CUDA_ERROR_UNSUPPORTED_PTX_VERSION). Try to upgrade the nvidia driver to the latest version, or try the studio driver branches for a latest stable version.&lt;br /&gt;
&lt;br /&gt;
Specifically, this has been observed with nvrtc13 in combination with drivers &amp;lt;590.&lt;br /&gt;
&lt;br /&gt;
=== When trying to use CUDA/OptiX, I get the error message: &amp;lt;code&amp;gt;RUNTIME ERROR: CUDA driver API error CUDA_ERROR_UNSUPPORTED_PTX_VERSION (code: 222, file:.../cuda.cpp, line: xxx): the provided PTX was compiled with an unsupported toolchain.&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
Your nvidia driver is too old compared to nvidia runtime compiler used by LuxCore, so the code compiled by LuxCore runtime compiler cannot be run by your driver.&lt;br /&gt;
&lt;br /&gt;
Please upgrade your nvidia driver to latest version, or at least to a suitable version with regard to runtime compiler: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id7&lt;br /&gt;
&lt;br /&gt;
=== After installation, I get the error message &amp;quot;could not import pyluxcore&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;pyluxcore&amp;quot; is the binary core library. BlendLuxCore downloads and installs the correct version for your system during installation. This error indicates something went wrong with this installation. Possible solutions are:&lt;br /&gt;
* Check that online access is allowed in the Blender preferences.&lt;br /&gt;
* Download may be restricted in company networks. You can try an [https://wiki.luxcorerender.org/BlendLuxCore_Installation#Offline_Installation offline-installation].&lt;br /&gt;
&lt;br /&gt;
=== I can not enable the BlendLuxCore addon, it shows errors ===&lt;br /&gt;
&lt;br /&gt;
Most problems in this area stem from broken graphics driver installations. Try to re-install or update your graphics driver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows users:&#039;&#039;&#039;&lt;br /&gt;
* Make sure that you have installed the [https://www.microsoft.com/en-US/download/details.aspx?id=40784 Visual C++ Redistributable Packages for Visual Studio 2013]&lt;br /&gt;
* If you use v2.1alpha0 or later, you will also need:&lt;br /&gt;
** [https://aka.ms/vs/15/release/vc_redist.x64.exe Microsoft Visual C++ Redistributable for Visual Studio 2017]&lt;br /&gt;
** [https://software.intel.com/sites/default/files/managed/59/aa/ww_icl_redist_msi_2018.3.210.zip Intel C++ redistributable]&lt;br /&gt;
&lt;br /&gt;
If this does not solve the problem, browse the [https://github.com/LuxCoreRender/BlendLuxCore/issues?q=is%3Aissue+label%3Ainstallation installation issues] in the bug tracker to check if your error message was already reported. &lt;br /&gt;
If it was not reported yet, open a new issue and copy the error message from the Blender console (on Windows, click Window -&amp;gt; Toggle System Console in Blender&#039;s menu. On Linux, start Blender from a terminal and try to enable the addon, then copy the error message from the terminal).&lt;br /&gt;
&lt;br /&gt;
See the [[BlendLuxCore_Installation | installation page]] for information on how to install, update and remove the BlendLuxCore addon.&lt;br /&gt;
&lt;br /&gt;
=== Is there something like Cycles&#039; Layer Weight/Fresnel/Facing node in LuxCore? ===&lt;br /&gt;
&lt;br /&gt;
No, in LuxCore there is no direct equivalent to this node, because it would not work with the many algorithms in LuxCore that trace rays from lights (instead of from the camera), like the bidirectional engine, light tracing mode, or the PhotonGI cache.&lt;br /&gt;
&lt;br /&gt;
Of course, all materials in LuxCore are physically based and have realistic fresnel effects built-in.&lt;br /&gt;
&lt;br /&gt;
You can achieve a similar effect with the dot product node, but it will work only for one viewpoint:&lt;br /&gt;
&lt;br /&gt;
[[File:Layer_weight_for_one_direction.PNG | thumb | 400px | center]]&lt;br /&gt;
&lt;br /&gt;
=== Can Cycles materials be used in BlendLuxCore? ===&lt;br /&gt;
&lt;br /&gt;
To an extent, yes. Many common Cycles shader nodes can be used in BlendLuxCore:&lt;br /&gt;
&lt;br /&gt;
* You can enable this individually for each material with the &amp;quot;Use Cycles Nodes&amp;quot; option in the material properties.&lt;br /&gt;
* You can also enable it for the whole scene at once with the &amp;quot;Use Cycles Settings&amp;quot; button in the render properties. This will configure all materials, lights and the world to use Cycles settings&lt;br /&gt;
&lt;br /&gt;
Not all Cycles nodes and settings are supported. Here is an overview: https://github.com/LuxCoreRender/BlendLuxCore/issues/272&lt;br /&gt;
&lt;br /&gt;
=== Can 2D/3D mapping be driven by textures in LuxCore? ===&lt;br /&gt;
&lt;br /&gt;
In general, no, because it would lead to much worse performance on GPUs.&lt;br /&gt;
&lt;br /&gt;
However, if you only need to drive the translation part of a texture mapping, since LuxCore v2.5 you can use the distort texture for this purpose:&lt;br /&gt;
&lt;br /&gt;
[[File:Distort_texture.PNG | thumb | 400px | center | A checker texture (left) is distorted by a clouds texture (right). The result can be seen in the center]]&lt;br /&gt;
&lt;br /&gt;
Texturing of rotation and scale is not yet possible.&lt;br /&gt;
&lt;br /&gt;
=== What can be done against fireflies/hotpixels? ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, pixels appear that are much brighter than the surrounding pixels. Sometimes they are singular, sometimes clumped up. The underlying reason are light paths that are correct, but very hard to find with the current rendering algorithms, and thus they take much longer to render until noise-free than all other light paths in the image.&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to approach this problem:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Try another rendering algorithm&#039;&#039;&#039;, it might be able to find the firefly-causing light paths much easier than the one you currently use. For example, try going to the render properties, open the Light Paths panel and enable &amp;quot;Light Tracing&amp;quot;, or try the [[PhotonGI | PhotonGI caustic cache]], or try using the bidirectional engine.&lt;br /&gt;
* You can &#039;&#039;&#039;clamp the brightness of all light paths&#039;&#039;&#039; to a maximum value, in the render properties, Light Paths panel, &amp;quot;Clamping&amp;quot; setting. BlendLuxCore can auto-detect a value for this setting that is in the right ballpark for your scene if you render once without clamping enabled, but often this value will not be the best, so you will need a bit of trial-and-error to find a good value. Note that the clamping value depends on the lighting in your scene, so there is no one universally good clamping value, and you might need to adjust it if you add a new light source to your scene that is brighter than the others. Using a clamping value that is too low will result in a low-contrast, washed-out image, while a too high value will leave fireflies unaffected.&lt;br /&gt;
* Try to find out which lights or materials are responsible for the fireflies. There might be small, hard-to-find light sources that are causing them. Or a specular material is reflecting such a light source. If you are willing to alter the look of the scene, you can make such a light source more visible/larger, or lower the specularity of such a material. You can also make some light sources invisble to indirect light rays, thus eliminating fireflies (light properties, &amp;quot;Visibility&amp;quot; panel). This can be a good idea for the sun, for example, if your scene contains lots of specular materials.&lt;br /&gt;
&lt;br /&gt;
=== Why is my HDRI environment black and not showing up? ===&lt;br /&gt;
You probably have other very bright light sources in the scene, for example a sun or a sky lamp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; raise the gain value of the area or HDRI light source that is black. The gain value might need to be very high, e.g. 100000.&lt;br /&gt;
&lt;br /&gt;
=== Why is my area lamp black? ===&lt;br /&gt;
See [[#&amp;quot;Why is my HDRI environment black and not showing up?&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
=== When I change the brightness of my lamp, nothing happens ===&lt;br /&gt;
&lt;br /&gt;
You are probably using an automatic tonemapper which adjusts itself to the changed brightness, making it seem like the brightness did not change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Use a non-automatic tonemapper (camera settings -&amp;gt; [[ImagePipeline]]).&lt;br /&gt;
&amp;lt;!-- TODO describe how to switch to one, and/or add a link to the tonemapping settings page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== When I make one of my lights brighter, all the other lights get darker (or vice versa) ===&lt;br /&gt;
&lt;br /&gt;
Similar to [[#&amp;quot;When I change the brightness of my lamp, nothing happens&amp;quot;]].&amp;lt;br&amp;gt;&lt;br /&gt;
You are using an automatic tonemapper which tries to keep the image at the same brightness, making it seem like the brightness of the lamps changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Use a non-automatic tonemapper (camera settings -&amp;gt; [[ImagePipeline]]).&lt;br /&gt;
&amp;lt;!-- TODO describe how to switch to one, and/or add a link to the tonemapping settings page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A material/object appears to be flickering when I move the camera and shows artifacts in final render ===&lt;br /&gt;
&lt;br /&gt;
This effect is called [https://en.wikipedia.org/wiki/Z-fighting Z-fighting] and is usually caused by mesh faces being exactly on top of each other, e.g. two planes on the same world coordinates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; &lt;br /&gt;
* Check if there are two objects on top of each other, e.g. because you duplicated the object, cancelled the transform and forgot about it.&lt;br /&gt;
* Check if the mesh has duplicate faces. Enter edit mode and use the Remove Doubles button in the Tools panel, which might solve the problem in some cases.&lt;br /&gt;
Duplicate faces are often caused by extruding, cancelling the transform and forgetting about it.&lt;br /&gt;
&lt;br /&gt;
=== There are dark triangular artifacts on my model, and I already checked for duplicate faces ===&lt;br /&gt;
&lt;br /&gt;
Floating point numbers have a limited precision. When objects are very large (kilometers) or very small (micrometers), these precision issues become visible. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; &lt;br /&gt;
* If the object has a &amp;quot;normal&amp;quot; size (something like 1 cm to 1 km), but was scaled up/down by a huge amount, try to apply the scale (Ctrl+A -&amp;gt; Scale). For example, this often happens with imported CAD models.&lt;br /&gt;
* If applying the scale did not help and your object has to be very small or large, consider to bring it into the normal scale mentioned above, and pretend that it has a larger/smaller size. For example, if you make a model of the solar system, you will just have to make the earth something like 12.742 m in diameter, and pretend that 1 m of your model is equal to 10^6 m. &lt;br /&gt;
* If both options above are not usable in your case, you can raise the minimum epsilon that LuxCore uses. This setting can be found in the scene properties, Units panel, after clicking &amp;quot;Advanced LuxCore Settings&amp;quot;. By default, the minimum epsilon is 0.00001. Try to raise it to 0.0001 (multiply by 10) for a start and see if the artifacts disappear. Do not set this value higher than necessary, because it will cause all sorts of hard-to-track problems. Be especially careful if you are rendering a scene with volumes.&lt;br /&gt;
&lt;br /&gt;
=== An object that I set to &amp;quot;smooth shading&amp;quot; looks like it is shaded flat in shadow penumbras ===&lt;br /&gt;
&lt;br /&gt;
This artifact is called &amp;quot;terminator problem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Unfortunately there is no real solution. You can only try to mitigate the effect by subdividing the geometry further and/or increase the size of the light source that is causing the problem.&lt;br /&gt;
&lt;br /&gt;
=== How do I setup liquid in a glass container correctly? ===&lt;br /&gt;
&lt;br /&gt;
This forum thread shows an example: https://forums.luxcorerender.org/viewtopic.php?f=4&amp;amp;t=728#p7550&lt;br /&gt;
&lt;br /&gt;
=== Can I export my scene in LuxCore format to render it in LuxCore standalone? ===&lt;br /&gt;
&lt;br /&gt;
Yes. In the render properties, LuxCore Tools panel, enable &amp;quot;FileSaver&amp;quot;. Then render with F12.&lt;br /&gt;
&lt;br /&gt;
=== How can I compile kernels from the command line? ===&lt;br /&gt;
Here is a way to compile kernels from the command line (out of Blender), for the latest version of pyluxcore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install pyluxcore --upgrade&lt;br /&gt;
python -c &amp;quot;import pyluxcore; pyluxcore.Init(); pyluxcore.KernelCacheFill()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting Help = &lt;br /&gt;
&lt;br /&gt;
If none of the above entries helped to solve your problem, consider asking in the [https://forums.luxcorerender.org/viewforum.php?f=4 user support forum] or [https://forums.luxcorerender.org/viewtopic.php?f=4&amp;amp;t=2 filing a bug report].&lt;br /&gt;
&lt;br /&gt;
[[Category:BlendLuxCore]]&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2553</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2553"/>
		<updated>2026-04-03T11:53:15Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: sorting entries&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&#039;&#039;&#039;Coding/Backend&#039;&#039;&#039;&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Use LuxCore internal OIDN (rather than embedding and calling an external OIDN executable)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bugfix&#039;&#039;&#039;&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed https://projects.blender.org/blender/blender/issues/140488&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Fix rounding of convergence percentage, reaching 100% to early for complex scenes&lt;br /&gt;
* Fix Blender crash when clicking Copy Material&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features for users&#039;&#039;&#039;&lt;br /&gt;
* Update compatibility for Blender 5.0&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space (c.f. section LuxCore)&lt;br /&gt;
* New shape node &amp;quot;MergeOnDistance&amp;quot; (like Blender Merge by Distance)&lt;br /&gt;
* Subdiv: (simple) crease management&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Coding/Backend&#039;&#039;&#039;&lt;br /&gt;
* Subdivision: multithreaded version, in order to improve speed&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Adapt CI pipelines to MacOS-15 runners (after deprecation of MacOS-13 runners on Github)&lt;br /&gt;
* Remove direct access to Blender internal objects. Use Blender API instead, more stable.&lt;br /&gt;
* Add support for Python 3.14 (and remove support for 3.9)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bugfix&#039;&#039;&#039;&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Fix various memory-related issues (leaks, potential access violations...). Modernize memory handling (to be continued)&lt;br /&gt;
* Avoid crash if no OpenCL and/or Nvidia API is found&lt;br /&gt;
* Fix several race conditions&lt;br /&gt;
* Fixed an error where paused renderings can&#039;t be stopped anymore&lt;br /&gt;
* 3D-mapping: Fix inconsistent behavior between local and random-local mapping https://github.com/LuxCoreRender/BlendLuxCore/issues/656&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features for users&#039;&#039;&#039;&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Make `pyluxcoretools` available again (in the wheels)&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt; https://github.com/LuxCoreRender/LuxCore/issues/671&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space https://github.com/LuxCoreRender/BlendLuxCore/issues/644&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Better dependency pinning (for nvrtc and conan-index)&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2540</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2540"/>
		<updated>2026-04-02T11:41:38Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed https://projects.blender.org/blender/blender/issues/140488&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
* Fix rounding of convergence percentage, reaching 100% to early for complex scenes&lt;br /&gt;
* Update compatibility for Blender 5.0&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space (c.f. section LuxCore(&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Subdivision: multithreaded version&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt; https://github.com/LuxCoreRender/LuxCore/issues/671&lt;br /&gt;
* Fixed an error where paused renderings can&#039;t be stopped anymore&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space https://github.com/LuxCoreRender/BlendLuxCore/issues/644&lt;br /&gt;
* 3D-mapping: Fix inconsistent behavior between local and random-local mapping https://github.com/LuxCoreRender/BlendLuxCore/issues/656&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2539</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2539"/>
		<updated>2026-04-02T11:41:03Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* LuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed https://projects.blender.org/blender/blender/issues/140488&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
* Fix rounding of convergence percentage, reaching 100% to early for complex scenes&lt;br /&gt;
* Update compatibility for Blender 5.0&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Subdivision: multithreaded version&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt; https://github.com/LuxCoreRender/LuxCore/issues/671&lt;br /&gt;
* Fixed an error where paused renderings can&#039;t be stopped anymore&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space https://github.com/LuxCoreRender/BlendLuxCore/issues/644&lt;br /&gt;
* 3D-mapping: Fix inconsistent behavior between local and random-local mapping https://github.com/LuxCoreRender/BlendLuxCore/issues/656&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2538</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2538"/>
		<updated>2026-04-02T11:34:31Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed https://projects.blender.org/blender/blender/issues/140488&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
* Fix rounding of convergence percentage, reaching 100% to early for complex scenes&lt;br /&gt;
* Update compatibility for Blender 5.0&lt;br /&gt;
* 2D-mapping: Add an option to allow rotation around the center of UV-coordinate space&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Subdivision: multithreaded version&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2537</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2537"/>
		<updated>2026-04-02T11:30:03Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Split BlendLuxHelper into its own category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
&lt;br /&gt;
= BlendLuxHelper =&lt;br /&gt;
* Adding BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel that is imported by BlendLuxCore.&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked within the scope of BlendLuxHelper)&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Subdivision: multithreaded version&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2432</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2432"/>
		<updated>2025-10-23T20:30:56Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.2=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Fix an issue with the blendev utility script and the .gitignore file&lt;br /&gt;
* Remove some filtering of Intel devices left from times when iGPU devices were not powerful enough&lt;br /&gt;
* Remove deprecated bgl imports, to establish preliminary compatibility with Blender 5.0.0-beta&lt;br /&gt;
* Change the calculation of percentage completion when using noise threshold to avoid the display being stuck at 100% before the rendering is actually finished&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed: [https://projects.blender.org/blender/blender/issues/140488 Blender Issue Tracker]&lt;br /&gt;
* Added a linux development shell script (optional utility for developers, [https://wiki.luxcorerender.org/Developing_and_debugging_BlendLuxCore#Utility_shell_script_for_launching_Blender see here])&lt;br /&gt;
* Viewport: Limit values in extremely overexposed areas, previously causing these areas to appear black&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2431</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2431"/>
		<updated>2025-10-23T19:53:42Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.2=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* fix an issue with the blendev utility script and the .gitignore file&lt;br /&gt;
* Remove some filtering of Intel devices left from times when iGPU devices were not powerful enough&lt;br /&gt;
* Remove deprecated bgl imports, to establish preliminary compatibility with Blender 5.0.0-beta&lt;br /&gt;
* Change the calculation of percentage completion when using noise threshold to avoid the display being stuck at 100% before the rendering is actually finished&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed: [https://projects.blender.org/blender/blender/issues/140488 Blender Issue Tracker]&lt;br /&gt;
* Added a linux development shell script (optional utility for developers, [https://wiki.luxcorerender.org/Developing_and_debugging_BlendLuxCore#Utility_shell_script_for_launching_Blender see here])&lt;br /&gt;
* Viewport: Limit values in extremely overexposed areas, previously causing these areas to appear black&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2430</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2430"/>
		<updated>2025-10-23T19:50:52Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add section for v2.10.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.2=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed: [https://projects.blender.org/blender/blender/issues/140488 Blender Issue Tracker]&lt;br /&gt;
* Added a linux development shell script (optional utility for developers, [https://wiki.luxcorerender.org/Developing_and_debugging_BlendLuxCore#Utility_shell_script_for_launching_Blender see here])&lt;br /&gt;
* Viewport: Limit values in extremely overexposed areas, previously causing these areas to appear black&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2426</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2426"/>
		<updated>2025-10-11T19:20:17Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* LuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked again within the scope of BlendLuxHelper)&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel which is imported by BlendLuxCore.&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Subdivision: multithreaded version&lt;br /&gt;
* Fix a bug leading to unstable brightness between renderings when using saved crashes (Credit to FELIX Render developers)&lt;br /&gt;
* Fix volume evaluation in BiDir engine https://github.com/LuxCoreRender/LuxCore/issues/647&lt;br /&gt;
* Fix various bugs when using orthographic camera with light tracing https://github.com/LuxCoreRender/LuxCore/issues/667&lt;br /&gt;
* Apply the behavior of the BiDir engine w.r.t. shadow color mechanism to Path+Light tracing. &amp;lt;b&amp;gt;Breaking change for scenes using shadow color and light tracing (not BiDir)!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2425</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2425"/>
		<updated>2025-10-11T19:10:31Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* &amp;lt;del&amp;gt;Change installation mechanism to use bpy.utils.extension_path_user()&amp;lt;/del&amp;gt; (Reworked again within the scope of BlendLuxHelper)&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed&lt;br /&gt;
* &amp;lt;del&amp;gt;Added a Linux development shell script (optional utility for developers)&amp;lt;/del&amp;gt; (replaced by BlendLuxHelper)&lt;br /&gt;
* Remove leftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
* BlendLuxHelper: A new helper, in the form of a Blender extension, which allows to configure the wheel which is imported by BlendLuxCore.&lt;br /&gt;
* Limit float values in viewport render to 16-bit in order to avoid overexposed areas being displayed as black.&lt;br /&gt;
* Remove default filtering of Intel GPU devices&lt;br /&gt;
* Add a checkbox to the material output node for enabling an override: When using shadow color, this allows light rays in addition to the shadow rays. (default off == no light rays, only shadow rays)&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
* Subdivision: multithreaded version&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;br /&gt;
* Embree: Upgraded to version 4.&lt;br /&gt;
* libjpeg: Replaced with libjpeg-turbo&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2424</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2424"/>
		<updated>2025-10-07T19:51:03Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Installation of BlendLuxHelper and Setup of BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt; (BLH). &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&amp;lt;br&amp;gt;&lt;br /&gt;
Suggested name: &amp;lt;code&amp;gt;blc_dbg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender through the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Scenario #3: Offline installation =&lt;br /&gt;
&lt;br /&gt;
When you need to perform an offline installation, you first need to download the dependencies of pyluxcore as wheel-files.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure about the correct modules and versions, or where to get them, please ask on the support channels (Forum, Discord, ...).&lt;br /&gt;
&lt;br /&gt;
In the BLH addon preferences, first configure to use a Local Wheel as described in the previous section.&lt;br /&gt;
&lt;br /&gt;
Then, use the additional option &amp;lt;code&amp;gt;Path to additional dependency folder (optional)&amp;lt;/code&amp;gt; to specify the path where the dependencies are located.&amp;lt;br&amp;gt;&lt;br /&gt;
In this field enter a &amp;lt;b&amp;gt;folder path&amp;lt;/b&amp;gt; that contains all the dependency wheels that you previously downloaded. (Not a wheel directly, as required in the previous section.)&lt;br /&gt;
&lt;br /&gt;
At the next startup, Blender will install the local wheel including the local dependencies.&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/.user/&amp;lt;repository&amp;gt;/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2423</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2423"/>
		<updated>2025-10-07T19:50:50Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Installation of BlendLuxHelper and Setup of BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt; (BLH). &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
Suggested name: &amp;lt;code&amp;gt;blc_dbg&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender through the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Scenario #3: Offline installation =&lt;br /&gt;
&lt;br /&gt;
When you need to perform an offline installation, you first need to download the dependencies of pyluxcore as wheel-files.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure about the correct modules and versions, or where to get them, please ask on the support channels (Forum, Discord, ...).&lt;br /&gt;
&lt;br /&gt;
In the BLH addon preferences, first configure to use a Local Wheel as described in the previous section.&lt;br /&gt;
&lt;br /&gt;
Then, use the additional option &amp;lt;code&amp;gt;Path to additional dependency folder (optional)&amp;lt;/code&amp;gt; to specify the path where the dependencies are located.&amp;lt;br&amp;gt;&lt;br /&gt;
In this field enter a &amp;lt;b&amp;gt;folder path&amp;lt;/b&amp;gt; that contains all the dependency wheels that you previously downloaded. (Not a wheel directly, as required in the previous section.)&lt;br /&gt;
&lt;br /&gt;
At the next startup, Blender will install the local wheel including the local dependencies.&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/.user/&amp;lt;repository&amp;gt;/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2422</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2422"/>
		<updated>2025-10-07T19:50:09Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt; (BLH). &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender through the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Scenario #3: Offline installation =&lt;br /&gt;
&lt;br /&gt;
When you need to perform an offline installation, you first need to download the dependencies of pyluxcore as wheel-files.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure about the correct modules and versions, or where to get them, please ask on the support channels (Forum, Discord, ...).&lt;br /&gt;
&lt;br /&gt;
In the BLH addon preferences, first configure to use a Local Wheel as described in the previous section.&lt;br /&gt;
&lt;br /&gt;
Then, use the additional option &amp;lt;code&amp;gt;Path to additional dependency folder (optional)&amp;lt;/code&amp;gt; to specify the path where the dependencies are located.&amp;lt;br&amp;gt;&lt;br /&gt;
In this field enter a &amp;lt;b&amp;gt;folder path&amp;lt;/b&amp;gt; that contains all the dependency wheels that you previously downloaded. (Not a wheel directly, as required in the previous section.)&lt;br /&gt;
&lt;br /&gt;
At the next startup, Blender will install the local wheel including the local dependencies.&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/.user/&amp;lt;repository&amp;gt;/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2421</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2421"/>
		<updated>2025-10-07T19:49:32Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Statement of problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt; (BLH). &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender through the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Scenario #3: Offline installation =&lt;br /&gt;
&lt;br /&gt;
When you need to perform an offline installation, you first need to download the dependencies of pyluxcore as wheel-files.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure about the correct modules and versions, or where to get them, please ask on the support channels (Forum, Discord, ...).&lt;br /&gt;
&lt;br /&gt;
In the BLH addon preferences, first configure to use a Local Wheel as described in the previous section.&lt;br /&gt;
&lt;br /&gt;
Then, use the additional option &amp;lt;code&amp;gt;Path to additional dependency folder (optional)&amp;lt;/code&amp;gt; to specify the path where the dependencies are located.&amp;lt;br&amp;gt;&lt;br /&gt;
In this field enter a &amp;lt;b&amp;gt;folder path&amp;lt;/b&amp;gt; that contains all the dependency wheels that you previously downloaded. (Not a wheel directly, as required in the previous section.)&lt;br /&gt;
&lt;br /&gt;
At the next startup, Blender will install the local wheel including the local dependencies.&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/.user/blc_dbg/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2416</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2416"/>
		<updated>2025-10-07T19:01:06Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Scenario #3: Offline installation =&lt;br /&gt;
&lt;br /&gt;
When you need to perform an offline installation, you first need to download the dependencies of pyluxcore as wheel-files.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure about the correct modules and versions, or where to get them, please ask on the support channels (Forum, Discord, ...).&lt;br /&gt;
&lt;br /&gt;
In the BLH addon preferences, first configure to use a Local Wheel as described in the previous section.&lt;br /&gt;
&lt;br /&gt;
Then, use the additional option &amp;lt;code&amp;gt;Path to additional dependency folder (optional)&amp;lt;/code&amp;gt; to specify the path where the dependencies are located.&amp;lt;br&amp;gt;&lt;br /&gt;
In this field enter a &amp;lt;b&amp;gt;folder path&amp;lt;/b&amp;gt; that contains all the dependency wheels that you previously downloaded. (Not a wheel directly, as required in the previous section.)&lt;br /&gt;
&lt;br /&gt;
At the next startup, Blender will install the local wheel including the local dependencies.&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;THIS SECTION NEEDS AN UPDATE&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2415</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2415"/>
		<updated>2025-10-07T19:00:17Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add offline installation option&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Scenario #3: Offline installation =&lt;br /&gt;
&lt;br /&gt;
When you need to perform an offline installation, you first need to download the dependencies of pyluxcore as wheel-files.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are unsure about the correct modules and versions, or where to get them, please ask on the support channels (Forum, Discord, ...).&lt;br /&gt;
&lt;br /&gt;
In the BLH addon preferences, first configure to use a Local Wheel as described in the previous section.&lt;br /&gt;
&lt;br /&gt;
Then, use the additional option &amp;lt;code&amp;gt;Path to additional dependency folder (optional)&amp;lt;/code&amp;gt; to specify the path where the dependencies are located.&amp;lt;br&amp;gt;&lt;br /&gt;
In this field enter a &amp;lt;b&amp;gt;folder path&amp;lt;/b&amp;gt; that contains all the dependency wheels that you previously downloaded. (Not a wheel directly, as required in the previous section.)&lt;br /&gt;
&lt;br /&gt;
At the next startup, Blender will install the local wheel including the local dependencies.&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2414</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2414"/>
		<updated>2025-10-07T18:47:39Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Tips &amp;amp; Tricks */ Remove obsolete sections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2413</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2413"/>
		<updated>2025-10-07T18:47:05Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Scenario #2: Working on pyluxcore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
To use a custom wheel of pyluxcore, open the addon preferences of BLH.&lt;br /&gt;
Set the option &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;Local Wheel&amp;lt;/code&amp;gt;. You can then enter a &amp;lt;code&amp;gt;Path to Wheel file&amp;lt;/code&amp;gt;, which must point to the wheel itself, not the folder where it is located!&lt;br /&gt;
&lt;br /&gt;
At each startup (or reload), BLC computes a hash of the linked wheel. This hash is compared against information stored in a local file, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel, and update accordingly if you change the selection of &amp;lt;code&amp;gt;Wheel Source&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore [...]&amp;lt;/code&amp;gt; --&amp;gt; A local version will be used.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version: [...]&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. [...]&amp;lt;/code&amp;gt; --&amp;gt; BLC detected that the installed wheel matches the designated wheel, and installation is skipped. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2412</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2412"/>
		<updated>2025-10-07T18:39:44Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Scenario #1: Working on BLC, using standard pyluxcore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
If you followed the previous instructions and installed BLC via a symbolic link, BLC will always be loaded from your local git repository source at Blender startup.&lt;br /&gt;
&lt;br /&gt;
if you make changes to BLC and want to reload the addon, you can use Blenders internal function &amp;quot;Reload Scripts&amp;quot;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Nota: This feature is WIP for BLC and may not yet be functional for all of its submodules.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2411</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2411"/>
		<updated>2025-10-07T18:36:05Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Installation of BlendLuxHelper and Setup of BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 5:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Close and reopen Blender. Go to the addon-preferences menu and enable the BLC addon.&lt;br /&gt;
The addon should now be installed, including the installation of pyluxcore and its dependencies.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2410</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2410"/>
		<updated>2025-10-07T18:33:57Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add section about BLH installation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Installation of BlendLuxHelper and Setup of BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 1:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Uninstall any previously installed version of BLC. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 2 (optional):&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Add a new local extension repository for installation of the BLC/BLH development environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 3:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Download the latest release of [https://github.com/LuxCoreRender/BlendLuxHelper BLH on GitHub], or - if necessary - build the extension from source.&lt;br /&gt;
&lt;br /&gt;
Install BLH in Blender thorugh the extensions menu using the [https://docs.blender.org/manual/en/latest/editors/preferences/extensions.html#bpy-ops-extensions-package-install-files Install from Disk] option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Step 4:&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Create a symbolic link to the local BLC git-repository, as outlined in Blenders Add-on Development Setup guide.&lt;br /&gt;
In the Addon preferences menu of BLH, at the bottom, you can find a function to perform this step with a graphical interface.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2409</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2409"/>
		<updated>2025-10-07T18:21:07Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Prerequisites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You made yourself familiar with Blenders official [https://developer.blender.org/docs/handbook/extensions/addon_dev_setup/ Add-on Development Setup] guide.&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2408</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2408"/>
		<updated>2025-10-07T18:07:30Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Statement of problem */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
In addition, there may be the need to handle some unusual cases, for example performing an offline-installation in restrictive company networks where dependencies cannot be downloaded via pip.&lt;br /&gt;
&lt;br /&gt;
To facilitate the configuration of these scenarios, we provide a separate extension, &amp;lt;b&amp;gt;BlendLuxHelper&amp;lt;/b&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
The setup and usage of BlendLuxCore together with BlendLuxHelper will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2407</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2407"/>
		<updated>2025-10-07T17:56:07Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Goal and audience */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
* Use cases with non-standard requirements, e.g. the need to perform an offline installation.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
&lt;br /&gt;
These methods will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2406</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2406"/>
		<updated>2025-10-07T17:54:55Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add note about v2.11 WIP content&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This article is work in progress for the development of BlendLuxCore v2.11. Instructions for v2.10 can be found in the article [[Developing and debugging BlendLuxCore v2.10]] &amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
&lt;br /&gt;
These methods will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore_v2.10&amp;diff=2405</id>
		<title>Developing and debugging BlendLuxCore v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore_v2.10&amp;diff=2405"/>
		<updated>2025-10-07T17:53:05Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add note about deprecation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Note: This page is documenting the development process used in v2.10.x of BlendLuxCore. The content is no longer under active development. See the main article [[Developing and debugging BlendLuxCore]] for the latest instructions.&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Introduction =&lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
&lt;br /&gt;
These methods will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore_v2.10&amp;diff=2404</id>
		<title>Developing and debugging BlendLuxCore v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore_v2.10&amp;diff=2404"/>
		<updated>2025-10-07T17:45:53Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Created page with &amp;quot;= Introduction =  == Goal and audience == This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&amp;#039;s possible to test and debug it.&amp;lt;br&amp;gt; The targeted audience encompasses: * BlendLuxCore development contributors * BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature. * LuxCore developers who want to use Blender as a tool to test changes to the core eng...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
&lt;br /&gt;
These methods will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path folder containing the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt; to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that Python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all Python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed Python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precedence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed Python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2389</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2389"/>
		<updated>2025-07-25T08:36:55Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Bugfix release v2.10.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed: [https://projects.blender.org/blender/blender/issues/140488 Blender Issue Tracker]&lt;br /&gt;
* Added a linux development shell script (optional utility for developers, [https://wiki.luxcorerender.org/Developing_and_debugging_BlendLuxCore#Utility_shell_script_for_launching_Blender see here])&lt;br /&gt;
* Viewport: Limit values in extremely overexposed areas, previously causing these areas to appear black&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2388</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2388"/>
		<updated>2025-07-23T15:21:37Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Bugfix release v2.10.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed: [https://projects.blender.org/blender/blender/issues/140488 Blender Issue Tracker]&lt;br /&gt;
* Added a linux development shell script (optional utility for developers)&lt;br /&gt;
* Viewport: Limit values in extremely overexposed areas, previously causing these areas to appear black&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2387</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2387"/>
		<updated>2025-07-23T15:04:01Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Bugfix release v2.10.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed&lt;br /&gt;
* Added a linux development shell script (optional utility for developers)&lt;br /&gt;
* Viewport: Limit values in extremely overexposed areas, previously causing these areas to appear black&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=BlendLuxCore_FAQ&amp;diff=2386</id>
		<title>BlendLuxCore FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=BlendLuxCore_FAQ&amp;diff=2386"/>
		<updated>2025-07-21T08:33:11Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Add &amp;quot;could not import pyluxcore&amp;quot; section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Frequently Asked Questions =&lt;br /&gt;
&lt;br /&gt;
=== When trying to use CUDA/OptiX, I get the error message: &amp;lt;code&amp;gt;RUNTIME ERROR: CUDA driver API error CUDA_ERROR_UNSUPPORTED_PTX_VERSION (code: 222, file:.../cuda.cpp, line: xxx): the provided PTX was compiled with an unsupported toolchain.&amp;lt;/code&amp;gt;  ===&lt;br /&gt;
&lt;br /&gt;
Your nvidia driver is too old compared to nvidia runtime compiler used by LuxCore, so the code compiled by LuxCore runtime compiler cannot be run by your driver.&lt;br /&gt;
&lt;br /&gt;
Please upgrade your nvidia driver to latest version, or at least to a suitable version with regard to runtime compiler: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#id7&lt;br /&gt;
&lt;br /&gt;
=== After installation, I get the error message &amp;quot;could not import pyluxcore&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
&amp;quot;pyluxcore&amp;quot; is the binary core library. BlendLuxCore downloads and installs the correct version for your system during installation. This error indicates something went wrong with this installation. Possible solutions are:&lt;br /&gt;
* Check that online access is allowed in the Blender preferences.&lt;br /&gt;
* Download may be restricted in company networks. You can try an [https://wiki.luxcorerender.org/BlendLuxCore_Installation#Offline_Installation offline-installation].&lt;br /&gt;
&lt;br /&gt;
=== I can not enable the BlendLuxCore addon, it shows errors ===&lt;br /&gt;
&lt;br /&gt;
Most problems in this area stem from broken graphics driver installations. Try to re-install or update your graphics driver.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;For Windows users:&#039;&#039;&#039;&lt;br /&gt;
* Make sure that you have installed the [https://www.microsoft.com/en-US/download/details.aspx?id=40784 Visual C++ Redistributable Packages for Visual Studio 2013]&lt;br /&gt;
* If you use v2.1alpha0 or later, you will also need:&lt;br /&gt;
** [https://aka.ms/vs/15/release/vc_redist.x64.exe Microsoft Visual C++ Redistributable for Visual Studio 2017]&lt;br /&gt;
** [https://software.intel.com/sites/default/files/managed/59/aa/ww_icl_redist_msi_2018.3.210.zip Intel C++ redistributable]&lt;br /&gt;
&lt;br /&gt;
If this does not solve the problem, browse the [https://github.com/LuxCoreRender/BlendLuxCore/issues?q=is%3Aissue+label%3Ainstallation installation issues] in the bug tracker to check if your error message was already reported. &lt;br /&gt;
If it was not reported yet, open a new issue and copy the error message from the Blender console (on Windows, click Window -&amp;gt; Toggle System Console in Blender&#039;s menu. On Linux, start Blender from a terminal and try to enable the addon, then copy the error message from the terminal).&lt;br /&gt;
&lt;br /&gt;
See the [[BlendLuxCore_Installation | installation page]] for information on how to install, update and remove the BlendLuxCore addon.&lt;br /&gt;
&lt;br /&gt;
=== Is there something like Cycles&#039; Layer Weight/Fresnel/Facing node in LuxCore? ===&lt;br /&gt;
&lt;br /&gt;
No, in LuxCore there is no direct equivalent to this node, because it would not work with the many algorithms in LuxCore that trace rays from lights (instead of from the camera), like the bidirectional engine, light tracing mode, or the PhotonGI cache.&lt;br /&gt;
&lt;br /&gt;
Of course, all materials in LuxCore are physically based and have realistic fresnel effects built-in.&lt;br /&gt;
&lt;br /&gt;
You can achieve a similar effect with the dot product node, but it will work only for one viewpoint:&lt;br /&gt;
&lt;br /&gt;
[[File:Layer_weight_for_one_direction.PNG | thumb | 400px | center]]&lt;br /&gt;
&lt;br /&gt;
=== Can Cycles materials be used in BlendLuxCore? ===&lt;br /&gt;
&lt;br /&gt;
To an extent, yes. Many common Cycles shader nodes can be used in BlendLuxCore:&lt;br /&gt;
&lt;br /&gt;
* You can enable this individually for each material with the &amp;quot;Use Cycles Nodes&amp;quot; option in the material properties.&lt;br /&gt;
* You can also enable it for the whole scene at once with the &amp;quot;Use Cycles Settings&amp;quot; button in the render properties. This will configure all materials, lights and the world to use Cycles settings&lt;br /&gt;
&lt;br /&gt;
Not all Cycles nodes and settings are supported. Here is an overview: https://github.com/LuxCoreRender/BlendLuxCore/issues/272&lt;br /&gt;
&lt;br /&gt;
=== Can 2D/3D mapping be driven by textures in LuxCore? ===&lt;br /&gt;
&lt;br /&gt;
In general, no, because it would lead to much worse performance on GPUs.&lt;br /&gt;
&lt;br /&gt;
However, if you only need to drive the translation part of a texture mapping, since LuxCore v2.5 you can use the distort texture for this purpose:&lt;br /&gt;
&lt;br /&gt;
[[File:Distort_texture.PNG | thumb | 400px | center | A checker texture (left) is distorted by a clouds texture (right). The result can be seen in the center]]&lt;br /&gt;
&lt;br /&gt;
Texturing of rotation and scale is not yet possible.&lt;br /&gt;
&lt;br /&gt;
=== What can be done against fireflies/hotpixels? ===&lt;br /&gt;
&lt;br /&gt;
Sometimes, pixels appear that are much brighter than the surrounding pixels. Sometimes they are singular, sometimes clumped up. The underlying reason are light paths that are correct, but very hard to find with the current rendering algorithms, and thus they take much longer to render until noise-free than all other light paths in the image.&lt;br /&gt;
&lt;br /&gt;
There are multiple ways to approach this problem:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Try another rendering algorithm&#039;&#039;&#039;, it might be able to find the firefly-causing light paths much easier than the one you currently use. For example, try going to the render properties, open the Light Paths panel and enable &amp;quot;Light Tracing&amp;quot;, or try the [[PhotonGI | PhotonGI caustic cache]], or try using the bidirectional engine.&lt;br /&gt;
* You can &#039;&#039;&#039;clamp the brightness of all light paths&#039;&#039;&#039; to a maximum value, in the render properties, Light Paths panel, &amp;quot;Clamping&amp;quot; setting. BlendLuxCore can auto-detect a value for this setting that is in the right ballpark for your scene if you render once without clamping enabled, but often this value will not be the best, so you will need a bit of trial-and-error to find a good value. Note that the clamping value depends on the lighting in your scene, so there is no one universally good clamping value, and you might need to adjust it if you add a new light source to your scene that is brighter than the others. Using a clamping value that is too low will result in a low-contrast, washed-out image, while a too high value will leave fireflies unaffected.&lt;br /&gt;
* Try to find out which lights or materials are responsible for the fireflies. There might be small, hard-to-find light sources that are causing them. Or a specular material is reflecting such a light source. If you are willing to alter the look of the scene, you can make such a light source more visible/larger, or lower the specularity of such a material. You can also make some light sources invisble to indirect light rays, thus eliminating fireflies (light properties, &amp;quot;Visibility&amp;quot; panel). This can be a good idea for the sun, for example, if your scene contains lots of specular materials.&lt;br /&gt;
&lt;br /&gt;
=== Why is my HDRI environment black and not showing up? ===&lt;br /&gt;
You probably have other very bright light sources in the scene, for example a sun or a sky lamp.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; raise the gain value of the area or HDRI light source that is black. The gain value might need to be very high, e.g. 100000.&lt;br /&gt;
&lt;br /&gt;
=== Why is my area lamp black? ===&lt;br /&gt;
See [[#&amp;quot;Why is my HDRI environment black and not showing up?&amp;quot;]]&lt;br /&gt;
&lt;br /&gt;
=== When I change the brightness of my lamp, nothing happens ===&lt;br /&gt;
&lt;br /&gt;
You are probably using an automatic tonemapper which adjusts itself to the changed brightness, making it seem like the brightness did not change.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Use a non-automatic tonemapper (camera settings -&amp;gt; [[ImagePipeline]]).&lt;br /&gt;
&amp;lt;!-- TODO describe how to switch to one, and/or add a link to the tonemapping settings page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== When I make one of my lights brighter, all the other lights get darker (or vice versa) ===&lt;br /&gt;
&lt;br /&gt;
Similar to [[#&amp;quot;When I change the brightness of my lamp, nothing happens&amp;quot;]].&amp;lt;br&amp;gt;&lt;br /&gt;
You are using an automatic tonemapper which tries to keep the image at the same brightness, making it seem like the brightness of the lamps changed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Use a non-automatic tonemapper (camera settings -&amp;gt; [[ImagePipeline]]).&lt;br /&gt;
&amp;lt;!-- TODO describe how to switch to one, and/or add a link to the tonemapping settings page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A material/object appears to be flickering when I move the camera and shows artifacts in final render ===&lt;br /&gt;
&lt;br /&gt;
This effect is called [https://en.wikipedia.org/wiki/Z-fighting Z-fighting] and is usually caused by mesh faces being exactly on top of each other, e.g. two planes on the same world coordinates.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; &lt;br /&gt;
* Check if there are two objects on top of each other, e.g. because you duplicated the object, cancelled the transform and forgot about it.&lt;br /&gt;
* Check if the mesh has duplicate faces. Enter edit mode and use the Remove Doubles button in the Tools panel, which might solve the problem in some cases.&lt;br /&gt;
Duplicate faces are often caused by extruding, cancelling the transform and forgetting about it.&lt;br /&gt;
&lt;br /&gt;
=== There are dark triangular artifacts on my model, and I already checked for duplicate faces ===&lt;br /&gt;
&lt;br /&gt;
Floating point numbers have a limited precision. When objects are very large (kilometers) or very small (micrometers), these precision issues become visible. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; &lt;br /&gt;
* If the object has a &amp;quot;normal&amp;quot; size (something like 1 cm to 1 km), but was scaled up/down by a huge amount, try to apply the scale (Ctrl+A -&amp;gt; Scale). For example, this often happens with imported CAD models.&lt;br /&gt;
* If applying the scale did not help and your object has to be very small or large, consider to bring it into the normal scale mentioned above, and pretend that it has a larger/smaller size. For example, if you make a model of the solar system, you will just have to make the earth something like 12.742 m in diameter, and pretend that 1 m of your model is equal to 10^6 m. &lt;br /&gt;
* If both options above are not usable in your case, you can raise the minimum epsilon that LuxCore uses. This setting can be found in the scene properties, Units panel, after clicking &amp;quot;Advanced LuxCore Settings&amp;quot;. By default, the minimum epsilon is 0.00001. Try to raise it to 0.0001 (multiply by 10) for a start and see if the artifacts disappear. Do not set this value higher than necessary, because it will cause all sorts of hard-to-track problems. Be especially careful if you are rendering a scene with volumes.&lt;br /&gt;
&lt;br /&gt;
=== An object that I set to &amp;quot;smooth shading&amp;quot; looks like it is shaded flat in shadow penumbras ===&lt;br /&gt;
&lt;br /&gt;
This artifact is called &amp;quot;terminator problem&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Solution:&#039;&#039;&#039; Unfortunately there is no real solution. You can only try to mitigate the effect by subdividing the geometry further and/or increase the size of the light source that is causing the problem.&lt;br /&gt;
&lt;br /&gt;
=== How do I setup liquid in a glass container correctly? ===&lt;br /&gt;
&lt;br /&gt;
This forum thread shows an example: https://forums.luxcorerender.org/viewtopic.php?f=4&amp;amp;t=728#p7550&lt;br /&gt;
&lt;br /&gt;
=== Can I export my scene in LuxCore format to render it in LuxCore standalone? ===&lt;br /&gt;
&lt;br /&gt;
Yes. In the render properties, LuxCore Tools panel, enable &amp;quot;FileSaver&amp;quot;. Then render with F12.&lt;br /&gt;
&lt;br /&gt;
=== How can I compile kernels from the command line? ===&lt;br /&gt;
Here is a way to compile kernels from the command line (out of Blender), for the latest version of pyluxcore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pip install pyluxcore --upgrade&lt;br /&gt;
python -c &amp;quot;import pyluxcore; pyluxcore.Init(); pyluxcore.KernelCacheFill()&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Getting Help = &lt;br /&gt;
&lt;br /&gt;
If none of the above entries helped to solve your problem, consider asking in the [https://forums.luxcorerender.org/viewforum.php?f=4 user support forum] or [https://forums.luxcorerender.org/viewtopic.php?f=4&amp;amp;t=2 filing a bug report].&lt;br /&gt;
&lt;br /&gt;
[[Category:BlendLuxCore]]&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2383</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2383"/>
		<updated>2025-07-02T10:19:43Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
* Change installation mechanism to use bpy.utils.extension_path_user() &amp;lt;b&amp;gt;INCOMPLETE&amp;lt;/b&amp;gt;&lt;br /&gt;
* Include &amp;quot;OptiX&amp;quot; in addon settings label to avoid user questions about compatibility&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed&lt;br /&gt;
* Added a linux development shell script (optional utility for developers)&lt;br /&gt;
* Remove löeftover code from the Addons system that is no longer used with the Extensions system.&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2382</id>
		<title>LuxCoreRender Release Notes v2.10</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.10&amp;diff=2382"/>
		<updated>2025-07-02T10:15:26Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: Added section for bugfix release v2.10.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
=Bugfix release v2.10.1=&lt;br /&gt;
&lt;br /&gt;
===LuxCore===&lt;br /&gt;
* Fixed a bug in luxcoreui (crash when loading a new .cfg file)&lt;br /&gt;
* Pin nvrtc dependency of pyluxcore to a specific version&lt;br /&gt;
&lt;br /&gt;
===BlendLuxCore===&lt;br /&gt;
* Added a workaround for a Blender bug that throws an error when Blender is closed&lt;br /&gt;
* Added a linux development shell script (optional utility for developers)&lt;br /&gt;
&lt;br /&gt;
=LuxCore=&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
&lt;br /&gt;
* New, multiplatform dependency manager: LuxCoreDeps. The new dep manager is based on Conan, an open source software which gives access to a database of thousands of build recipes, maintained up-to-date both by a company (JFrog) and a dynamic community. The deps are now built from sources, for a better control of build settings, binary compatibility etc.&lt;br /&gt;
&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
&lt;br /&gt;
* Buildability restored for all previous platforms: Linux, Windows, MacOS Intel&lt;br /&gt;
&lt;br /&gt;
* Buildability added MacOS ARM platform.&lt;br /&gt;
&lt;br /&gt;
* LuxCoreRender delivered  in the form of Python wheels, published on PyPi.&lt;br /&gt;
&lt;br /&gt;
* Automation (check, build, publish...) rewritten in Github Actions&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
&lt;br /&gt;
* LuxCore is now buildable again, on all previous platforms (Linux, Windows, MacOS Intel) + one (MacOS ARM).&lt;br /&gt;
* Crash fixed on tile path&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
&lt;br /&gt;
= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
===New Features===&lt;br /&gt;
* Compatibility for Blender 4.2 and 4.3&lt;br /&gt;
* Partial compatibility for Blender 4.4 (not a release goal)&lt;br /&gt;
* Moved from Blenders addon system to the new extension system&lt;br /&gt;
* BlendLuxCore no longer bundles LuxCore binaries, platform specific binaries now distributed via PyPi&lt;br /&gt;
* Changed build pipeline from Azure to GitHub CI/CD&lt;br /&gt;
* Add square-root option to math node (alias to power 0.5)&lt;br /&gt;
* Add a setting to suppress LuxCore console log output&lt;br /&gt;
* Glass material now accepts IOR &amp;lt; 1&lt;br /&gt;
* Materials can now be individually excluded from material override&lt;br /&gt;
* BlendLuxCore specific menus are marked with an icon&lt;br /&gt;
&lt;br /&gt;
===Fixed Bugs===&lt;br /&gt;
* Motion blur support for instances&lt;br /&gt;
* Improve custom normals export time by utilizing mesh.loops.foreach_get()&lt;br /&gt;
* LOL: Changed data access to adapt to new webhosting requirements&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* Crashes are observed on macOS with Blender 4.2 and Blender 4.3. Related to window resizing and render completion. Unknown if Blender specific or also happening in standalone.&lt;br /&gt;
* Motion blur does not seem to work on &amp;quot;deeper iterations&amp;quot;, e.g. copying an instanced object&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2379</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2379"/>
		<updated>2025-06-12T11:47:25Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Tips &amp;amp; Tricks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
&lt;br /&gt;
These methods will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set BLC_DEV_PATH to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precendence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Utility shell script for launching Blender ==&lt;br /&gt;
&lt;br /&gt;
The BlendLuxCore repository contains a shell script, called &amp;lt;code&amp;gt;blendev&amp;lt;/code&amp;gt; (short for blender-development), located inside the &amp;lt;code&amp;gt;debug-helpers&amp;lt;/code&amp;gt; subdirectory.&lt;br /&gt;
The purpose of this script is to easily launch Blender and switch between multiple versions of Blender, a regularly installed version of BlendLuxCore and pyluxcore, local development code of BlendLuxCore, and locally compiled versions of pyluxcore.&lt;br /&gt;
At the time of writing, this script is available only for linux/bash development.&lt;br /&gt;
&lt;br /&gt;
Please see the &amp;lt;code&amp;gt;Readme.md&amp;lt;/code&amp;gt; supplied alongside the script, and its internal help output &amp;lt;code&amp;gt;blendev -h&amp;lt;/code&amp;gt; for detailed instructions on how to use it.&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Wiki&amp;diff=2378</id>
		<title>LuxCoreRender Wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Wiki&amp;diff=2378"/>
		<updated>2025-06-12T11:35:27Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Documentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Users ==&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
* [[ BlendLuxCore_Installation | BlendLuxCore Installation]]&lt;br /&gt;
* [[ BlendLuxCore_FAQ | BlendLuxCore FAQ]]&lt;br /&gt;
* [[ LuxCoreRender_Tutorials | Tutorials ]]&lt;br /&gt;
* [[ LuxCoreRender_User%27s_Manual | LuxCoreRender User&#039;s Manual]]&lt;br /&gt;
* [[ :Category:BlendLuxCore | Blender Addon User&#039;s Manual ]]&lt;br /&gt;
* [[ PyLuxCoreTools | Command Line Tools ]]&lt;br /&gt;
* [[ LuxMark | LuxMark Benchmark]]&lt;br /&gt;
&lt;br /&gt;
=== Useful links ===&lt;br /&gt;
&lt;br /&gt;
* [https://luxcorerender.org/ &#039;&#039;LuxCoreRender Home Page&#039;&#039;]&lt;br /&gt;
* [https://forums.luxcorerender.org/ &#039;&#039;LuxCoreRender Forums&#039;&#039;]&lt;br /&gt;
* [[ External_Resources | External Resources ]]&lt;br /&gt;
* [[ Previous_Version | Previous Version (LuxRender) ]]&lt;br /&gt;
&lt;br /&gt;
== Developers &amp;amp; Admins ==&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
&lt;br /&gt;
* [[ Building_LuxCoreRender | Building LuxCoreRender ]]&lt;br /&gt;
* [[ C++ Coding Guidelines ]]&lt;br /&gt;
* [[ Regular Maintenance Tasks ]]&lt;br /&gt;
* [[ Developing and debugging BlendLuxCore ]]&lt;br /&gt;
* [[ Compiling_LuxCore | Building LuxCoreRender (legacy) ]]&lt;br /&gt;
* [[ LuxCoreRender_Release_Notes | LuxCoreRender Release Notes ]]&lt;br /&gt;
* [[ LuxCore_API | LuxCore API ]]&lt;br /&gt;
* [[ LuxCore_API_Reference_Manual | LuxCore API Reference Manual]]&lt;br /&gt;
* [[ LuxCore_SDL_Reference_Manual | LuxCore SDL Reference Manual ]]&lt;br /&gt;
&lt;br /&gt;
=== MaxToLux Documentation ===&lt;br /&gt;
&lt;br /&gt;
* [[ MaxToLux_Plugin_Release_Notes | MaxToLux Plugin Release Notes]]&lt;br /&gt;
* [[ MaxToLux_Plugin_Reference_Manual | MaxToLux Plugin Reference Manual]]&lt;br /&gt;
&lt;br /&gt;
=== Tutorials ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[ Writing_an_Imagepipeline_Plugin | How to Write an Imagepipeline Plugin ]]&lt;br /&gt;
* [[ Implementing_a_Texture | How to Implement a Texture ]]&lt;br /&gt;
&lt;br /&gt;
=== Information for Wiki Editors ===&lt;br /&gt;
&lt;br /&gt;
We had to close the wiki registration because of too many spambots.&amp;lt;br&amp;gt;&lt;br /&gt;
If you want to contribute to the wiki, please request an account in our [https://forums.luxcorerender.org/viewforum.php?f=10 general discussion forum].&lt;br /&gt;
&lt;br /&gt;
Consult the [//meta.wikimedia.org/wiki/Help:Contents User&#039;s Guide] for information on using the wiki software.&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2377</id>
		<title>LuxCoreRender Release Notes v2.11</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=LuxCoreRender_Release_Notes_v2.11&amp;diff=2377"/>
		<updated>2025-06-10T05:44:04Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* BlendLuxCore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= BlendLuxCore =&lt;br /&gt;
&lt;br /&gt;
* Fresnel texture: &amp;quot;custom n,k&amp;quot; now accepts values &amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
= LuxCore =&lt;br /&gt;
* Reduction of Boost footprint, replaced with standard equivalents available in C++20.&lt;br /&gt;
* For the need of previous point: replacement of apple-clang by clang 20 on MacOS platforms&lt;br /&gt;
* New target &#039;wheel-test&#039; that builds a testing wheel in local build (&amp;lt;code&amp;gt;make wheel-test&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Requirement checking in &amp;lt;code&amp;gt;make deps&amp;lt;/code&amp;gt;&lt;br /&gt;
* luxrays: rename GetConfigDir as GetCacheDir and use XDG_CACHE_HOME according to specifications (@illwieckz)&lt;br /&gt;
* Subdivision: add an &amp;quot;adaptive&amp;quot; setting to select between adaptive refinement and uniform refinement&lt;br /&gt;
&lt;br /&gt;
= LuxCoreDeps =&lt;br /&gt;
* Dependencies updated to latest versions&lt;br /&gt;
* Removed a workaround introduced in previous version (we used to build a fake wheel to get containerization)&lt;br /&gt;
* OpenMP - MacOS: Use of homebrew OpenMP (up-to-date, compatible with clang 20) rather than Conan llvm-openmp (version 17...). As a consequence, for MacOS Intel, a version &amp;gt;= 13.0 is required.&lt;br /&gt;
* Opensubdiv: tbb activation. As a consequence, for MacOS Arm, a version &amp;gt;= 14.2 is required.&lt;br /&gt;
* OpenImageIO: deactivation of several image formats that seem unrelated to or unsupported by LuxCore: freetype, hdf5, ffmpeg, libheif, ptex, opencv, webp. This removal spares both compilation time and build result size. Those formats are reactivable, in case they were missing.&lt;br /&gt;
* OpenImageIO: To the contrary, activation of tbb option.&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
	<entry>
		<id>https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2376</id>
		<title>Developing and debugging BlendLuxCore</title>
		<link rel="alternate" type="text/html" href="https://wiki.luxcorerender.org/index.php?title=Developing_and_debugging_BlendLuxCore&amp;diff=2376"/>
		<updated>2025-06-09T18:28:21Z</updated>

		<summary type="html">&lt;p&gt;CodeHD: /* Scenario #2: Working on pyluxcore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
== Goal and audience ==&lt;br /&gt;
This document explains the approach to install a development version of BlendLuxCore (BLC) in Blender, so that it&#039;s possible to test and debug it.&amp;lt;br&amp;gt;&lt;br /&gt;
The targeted audience encompasses:&lt;br /&gt;
* BlendLuxCore development contributors&lt;br /&gt;
* BlendLuxCore advanced users/alpha testers who have been provided a dev version of BLC, in order to test a new feature.&lt;br /&gt;
* LuxCore developers who want to use Blender as a tool to test changes to the core engine.&lt;br /&gt;
&lt;br /&gt;
== Statement of problem ==&lt;br /&gt;
BlendLuxCore (BLC) is composed of two parts:&lt;br /&gt;
* A Python module, essentially identical to the [https://github.com/LuxCoreRender/BlendLuxCore BlendLuxCore] repository.&lt;br /&gt;
* Underlying pyluxcore library, compiled from the [https://github.com/LuxCoreRender/LuxCore LuxCore] repository. Typically distributed as a Python wheel.&lt;br /&gt;
&lt;br /&gt;
The python module is distributed as a zip-file, which is installed in Blender as an extension. During the installation process, the pyluxcore-wheel is downloaded from PyPi. During subsequent startup of Blender, the python script verifies the presence of pyluxcore and an additional (time-consuming) download is not necessary.&lt;br /&gt;
&lt;br /&gt;
However, when developing BLC, we typically need to:&lt;br /&gt;
* Make Blender load a development version of the python module&lt;br /&gt;
* And optionally make BLC load a development version of the pyluxcore-wheel&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
&lt;br /&gt;
These methods will be explained in detail in the sections below.&lt;br /&gt;
&lt;br /&gt;
= Prerequisites =&lt;br /&gt;
In the next parts of the document, we shall assume:&lt;br /&gt;
&lt;br /&gt;
You have set a development environment on your local computer with:&lt;br /&gt;
* a cloned repository of BlendLuxCore&lt;br /&gt;
* and optionally a cloned repository of LuxCore&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to &amp;quot;pack&amp;quot; BlendLuxCore, ie build an installable package of BLC:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -S . -B out -DCMAKE_BUILD_TYPE=Release&lt;br /&gt;
cmake --build out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You know how to build a test wheel from LuxCore:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make wheel-test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #1: Working on BLC, using standard pyluxcore =&lt;br /&gt;
&lt;br /&gt;
The first goal can be achieved via an environment variable:&lt;br /&gt;
* &amp;lt;code&amp;gt;BLC_DEV_PATH&amp;lt;/code&amp;gt;: path _folder containing_ the development repo of BlendLuxCore&lt;br /&gt;
&lt;br /&gt;
In the environment where you run Blender, and BlendLuxCore has already been installed using the normal installation method, set BLC_DEV_PATH to the path of your dev repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;export BLC_DEV_PATH=/path/to/folder/containing/BlendLuxCore&amp;lt;/pre&amp;gt;&lt;br /&gt;
For clarification, set this folder like you would set the systems &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; variable, i.e. so that python can &amp;lt;code&amp;gt;import BlendLuxCore&amp;lt;/code&amp;gt; from this location!&lt;br /&gt;
&lt;br /&gt;
When this variable is set, all python code from the development repo will be loaded, &amp;lt;b&amp;gt;except&amp;lt;/b&amp;gt; the main &amp;lt;code&amp;gt;__init__.py&amp;lt;/code&amp;gt; file. Changes to the latter may require a full reinstallation of BlendLuxCore, depending on what was changed.&lt;br /&gt;
&lt;br /&gt;
As a verification of this working correctly, the console output of Blender at startup will show the following line:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] USING LOCAL DEV VERSION OF BlendLuxCore&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Scenario #2: Working on pyluxcore =&lt;br /&gt;
&lt;br /&gt;
For the second goal, two methods are available:&lt;br /&gt;
* Another environment variable, &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt;: path to a development version of the wheel&lt;br /&gt;
* A subfolder &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; within the installed python module. A development version of the wheel can be copied into this folder.&lt;br /&gt;
Note that the presence of a file inside &amp;lt;code&amp;gt;pyluxcore_custom/&amp;lt;/code&amp;gt; will take precendence over the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable!&lt;br /&gt;
To simplify further explanations, all explanations are presented in terms of the &amp;lt;code&amp;gt;BLC_WHEEL_PATH&amp;lt;/code&amp;gt; variable.&lt;br /&gt;
&lt;br /&gt;
When this variable is set, BLC computes a hash of the linked wheel. This hash is compared against information stored in the file &amp;lt;code&amp;gt;pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;, located within the installed python module. If the information matches, installation is skipped. Else, if it does not match, the local pyluxcore-wheel will be installed, replacing the previous version.&lt;br /&gt;
The text file also stores information if the previous installation was from PyPi or from a local wheel. This means, when the environment variable is unset after testing, it will again be replaced with the regular version from PyPi.&lt;br /&gt;
&lt;br /&gt;
As a verification, check for the following lines in the console output of Blender at startup:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] Installing local version of pyluxcore&amp;lt;/code&amp;gt; --&amp;gt; A new local version will be installed. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;lt;/code&amp;gt; --&amp;gt; A local version was previously installed and is used again. &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] installing pyluxcore version:&amp;lt;/code&amp;gt; --&amp;gt; pyluxcore will be installed from PyPi. Replaces any previous installation.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;[BLC] skipping pyluxcore installation. Specified version already installed.&amp;lt;/code&amp;gt; --&amp;gt; A PyPi version was previously installed and is used again.&lt;br /&gt;
&lt;br /&gt;
(Note: Further error messages exist but they are out of the scope of this article.)&lt;br /&gt;
&lt;br /&gt;
= Tips &amp;amp; Tricks =&lt;br /&gt;
&lt;br /&gt;
== Useful directories ==&lt;br /&gt;
&lt;br /&gt;
The extension is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender-version&amp;gt;/extensions/user_default&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The wheel is installed in:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;$HOME/.config/blender/&amp;lt;blender version&amp;gt;/extensions/.local/lib/python&amp;lt;python-version&amp;gt;/site-packages&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Wheel not loading - Python version mismatch between System and Blender ==&lt;br /&gt;
&lt;br /&gt;
You may work in an environment where the version of the system-wide Python interpreter is different from that of Blender&#039;s embedded interpreter. This can happen, for instance, if your OS is ArchLinux. System-wide Python will be the latest version available (say, 3.13), whereas Blender interpreter will be an older one (for instance, 3.11).&lt;br /&gt;
&lt;br /&gt;
If you build a test wheel without precaution, the tag will be the one of your system-wide Python and, when you try to install it in Blender, _the embedded interpreter will prevent you to do so (or will prevent you to import the lib)_.&lt;br /&gt;
&lt;br /&gt;
The most simple workaround consists in using &amp;lt;code&amp;gt;pyenv&amp;lt;/code&amp;gt; to set the right interpreter in your build session. Be careful to clear and reconfigure the whole project, afterwards: &amp;lt;pre&amp;gt;make clear &amp;amp;&amp;amp; make deps&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once rebuilt, please check the version of pyluxcore in the build log:&lt;br /&gt;
&amp;lt;code&amp;gt;LuxCore/out/install/Debug/pyluxcore/pyluxcore.cpython-&amp;lt;version&amp;gt;-x86_64-linux-gnu.so&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;version&amp;gt; should match with the embedded interpreter.&lt;br /&gt;
&lt;br /&gt;
Another point to be cautious about, in the present case: if pyluxcore is already installed system-wide, for a different version of Python than Blender, then Blender will fail installing the wheel. In this case, you&#039;ll have to uninstall your system-wide pyluxcore (&amp;lt;code&amp;gt;pip uninstall pyluxcore&amp;lt;/code&amp;gt;) if you want Blender to install correctly.&lt;br /&gt;
&lt;br /&gt;
== Message &amp;quot;[BLC] skipping pyluxcore installation. Custom wheel matching hash already installed.&amp;quot; ==&lt;br /&gt;
&lt;br /&gt;
If you think this message is irrelevant, clean the following file: &amp;lt;code&amp;gt;$HOME/.config/blender/4.2/extensions/.user/user_default/BlendLuxCore/pyluxcore_installation_info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Debugging the wheel executing in Blender (Linux) ==&lt;br /&gt;
&lt;br /&gt;
It is possible to debug the wheel when it is executed in Blender. To do so, follow the procedure below:&lt;br /&gt;
* Build the wheel in debug mode:&lt;br /&gt;
&amp;lt;pre&amp;gt;export LUX_BUILD_TYPE=Debug&lt;br /&gt;
make wheel-test&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Run Blender with gdb&lt;br /&gt;
&amp;lt;pre&amp;gt;gdb --args blender&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(nota bene: check that the latest wheel is correctly installed by BlendLuxCore)&lt;br /&gt;
&lt;br /&gt;
gdb should allow you to debug any call to LuxCore&lt;/div&gt;</summary>
		<author><name>CodeHD</name></author>
	</entry>
</feed>