blender/intern/cycles/kernel
Lukas Stockner 48155c210a Cycles: Add Support for IES files as textures for light strength
This patch adds support for IES files, a file format that is commonly used to store the directional intensity distribution of light sources.
The new IES node is supposed to be plugged into the Strength input of the Emission node of the lamp.

Since people generating IES files do not really seem to care about the standard, the parser is flexible enough to accept all test files I have tried.
Some common weirdnesses are distributing values over multiple lines that should go into one line, using commas instead of spaces as delimiters and adding various useless stuff at the end of the file.

The user interface of the node is similar to the script node, the user can either select an internal Text or load a file.
Internally, IES files are handled similar to Image textures: They are stored in slots by the LightManager and each unique IES is assigned to one slot.

The local coordinate system of the lamp is used, so that the direction of the light can be changed. For UI reasons, it's usually best to add an area light,
rotate it and then change its type, since especially the point light does not immediately show its local coordinate system in the viewport.

Reviewers: #cycles, dingto, sergey, brecht

Reviewed By: #cycles, dingto, brecht

Subscribers: OgDEV, crazyrobinhood, secundar, cardboard, pisuke, intrah, swerner, micah_denn, harvester, gottfried, disnel, campbellbarton, duarteframos, Lapineige, brecht, juicyfruit, dingto, marek, rickyblender, bliblubli, lockal, sergey

Differential Revision: https://developer.blender.org/D1543
2018-05-27 01:24:57 +02:00
..
bvh Code refactor: make Transform always affine, dropping last row. 2018-03-10 04:54:05 +01:00
closure Fix T54801: incorrect render with zero weight transparent BSDFs. 2018-05-06 02:00:39 +02:00
filter Cycles Denoising: Don't use atomics in the accumulation kernel on CPUs 2018-05-24 18:44:56 +02:00
geom Fix T54356: volume rendering bug using just color attribute. 2018-03-19 21:22:15 +01:00
kernels Code cleanup: remove some more unused code after recent CUDA changes. 2018-02-18 00:53:03 +01:00
osl Cycles: Add Support for IES files as textures for light strength 2018-05-27 01:24:57 +02:00
shaders Cycles: Add Support for IES files as textures for light strength 2018-05-27 01:24:57 +02:00
split Fix T54317: overlapping volume render bug after recent changes. 2018-03-19 21:22:15 +01:00
svm Cycles: Add Support for IES files as textures for light strength 2018-05-27 01:24:57 +02:00
CMakeLists.txt Cycles: Add Support for IES files as textures for light strength 2018-05-27 01:24:57 +02:00
kernel_accumulate.h Cycles: option to make background visible through glass transparent. 2018-01-12 01:34:28 +01:00
kernel_bake.h Cycles: add roughness baking support, using squared roughness convention. 2018-03-10 18:37:33 +01:00
kernel_camera.h Cycles: support arbitrary number of motion blur steps for cameras. 2018-03-10 06:27:19 +01:00
kernel_compat_cpu.h Cycles: support arbitrary number of motion blur steps for cameras. 2018-03-10 06:27:19 +01:00
kernel_compat_cuda.h Cycles: support arbitrary number of motion blur steps for cameras. 2018-03-10 06:27:19 +01:00
kernel_compat_opencl.h Cycles: Cleanup: Remove duplicated atan2f definition for OpenCL 2018-05-24 19:08:06 +02:00
kernel_differential.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
kernel_emission.h Code refactor: use KernelShader and KernelParticle instead of float arrays. 2018-03-10 04:54:04 +01:00
kernel_film.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
kernel_globals.h Code cleanup: remove some more unused code after recent CUDA changes. 2018-02-18 00:53:03 +01:00
kernel_jitter.h Cycles: Use more stable version of integer square root function 2017-05-09 17:07:17 +02:00
kernel_light.h Cycles: Add Support for IES files as textures for light strength 2018-05-27 01:24:57 +02:00
kernel_math.h Code refactor: add ProjectionTransform separate from regular Transform. 2018-03-10 04:54:04 +01:00
kernel_montecarlo.h Cycles: Cleanup, indendation 2017-10-06 19:33:59 +05:00
kernel_passes.h Cycles: take into account diffuse roughness for roughness baking. 2018-03-28 23:45:15 +02:00
kernel_path_branched.h Fix T54317: overlapping volume render bug after recent changes. 2018-03-19 21:22:15 +01:00
kernel_path_common.h Code refactor: remove rng_state buffer and compute hash on the fly. 2017-10-04 21:11:14 +02:00
kernel_path_state.h Fix T54455: OpenCL build error after recent changes. 2018-03-29 07:14:09 +02:00
kernel_path_subsurface.h Cycles: random walk subsurface scattering. 2018-02-09 19:58:33 +01:00
kernel_path_surface.h Fix T54317: overlapping volume render bug after recent changes. 2018-03-19 21:22:15 +01:00
kernel_path_volume.h Cycles: add Russian roulette termination for volume multiple scattering. 2018-02-22 00:55:32 +01:00
kernel_path.h Cycles: don't count volume boundaries as transparent bounces. 2018-03-01 01:21:29 +01:00
kernel_projection.h Cycles: adaptive subdivision support for panoramic cameras. 2018-01-12 23:57:45 +01:00
kernel_queues.h Cycles: Add function to dequeue a ray 2017-06-10 03:51:18 -04:00
kernel_random.h Fix T54420: too much volume render noise with multiple volume objects. 2018-03-27 01:08:30 +02:00
kernel_shader.h Cycles: add roughness baking support, using squared roughness convention. 2018-03-10 18:37:33 +01:00
kernel_shadow.h Cycles: better path termination for transparency. 2018-02-22 00:55:32 +01:00
kernel_subsurface.h Cycles: better path termination for transparency. 2018-02-22 00:55:32 +01:00
kernel_textures.h Cycles: Add Support for IES files as textures for light strength 2018-05-27 01:24:57 +02:00
kernel_types.h Cycles: Cleanup: Remove double semicolons 2018-04-29 09:28:41 +02:00
kernel_volume.h Fix T54420: too much volume render noise with multiple volume objects. 2018-03-27 01:08:30 +02:00
kernel_work_stealing.h Code refactor: add WorkTile struct for passing work to kernel. 2017-10-04 21:11:14 +02:00
kernel.h Code refactor: device memory cleanups, preparing for mapped host memory. 2017-11-05 15:22:04 +01:00