blender/intern/cycles/util
Thomas Dinges 4a4f043bc4 Cycles: Add support for single channel float textures on CPU.
Until now, single channel textures were packed into a float4, wasting 3 floats per pixel. Memory usage of such textures is now reduced by 3/4.
Voxel Attributes such as density, flame and heat benefit from this, but also Bumpmaps with one channel.
This commit also includes some cleanup and code deduplication for image loading.

Example Smoke render from Cosmos Laundromat: http://www.pasteall.org/pic/show.php?id=102972
Memory here went down from ~600MB to ~300MB.

Reviewers: #cycles, brecht

Differential Revision: https://developer.blender.org/D1981
2016-05-11 21:58:34 +02:00
..
CMakeLists.txt Cleanup: Move texture definitions to util, to avoid bad level include. 2016-04-15 23:02:44 +02:00
util_algorithm.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_aligned_malloc.cpp Cycles: Some cleanup, should be no functional changes 2016-02-16 15:33:00 +01:00
util_aligned_malloc.h Cycles: Use size_t for aligned allocator 2015-02-19 22:19:29 +05:00
util_args.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_atomic.h Cycles: Code cleanup, spaces around keyword and brace 2015-06-01 19:49:52 +05:00
util_boundbox.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_color.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_debug.cpp Cycles: Make CUDA adaptive feature compile a Debug flag. 2016-05-06 23:13:33 +02:00
util_debug.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_foreach.h Optionally use c++11 stuff instead of boost in cycles where possible. We do and continue to depend on boost though 2015-03-29 22:12:40 +02:00
util_function.h Cycles: Correction to previous commit: non-msvc compilers also should use nullptr 2015-03-30 15:17:09 +05:00
util_guarded_allocator.cpp Cycles: Implement guarded allocator for STL classes 2015-02-15 02:01:48 +05:00
util_guarded_allocator.h Cycles: Stop rendering when bad_alloc happens 2016-04-20 16:19:49 +02:00
util_half.h Cycles: fix compilation on 32-bit Windows for half-floats 2015-05-10 19:06:43 +00:00
util_hash.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
util_image.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_list.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_logging.cpp Cycles: Be ready for gflags namespace auto-detect 2015-01-01 01:31:08 +05:00
util_logging.h Cycles: Log whch optimizations are used for CPU kernels 2016-01-06 20:25:19 +05:00
util_map.h Optionally use c++11 stuff instead of boost in cycles where possible. We do and continue to depend on boost though 2015-03-29 22:12:40 +02:00
util_math_cdf.cpp Cycles: Support user-defined shutter curve 2015-10-28 02:43:06 +05:00
util_math_cdf.h Cycles: Fix compilation error with MSVC 2015-10-28 17:33:31 +05:00
util_math_fast.h Code cleanup: resolve minor Cycles todo's. 2016-02-06 11:56:37 +01:00
util_math.h Fix T48139: Checker texture strange behavior in cycles 2016-04-15 15:30:30 +02:00
util_md5.cpp Cycles: Cleanup, indentation and braces 2016-02-03 15:00:55 +01:00
util_md5.h Cycles: add utility function to calculate MD5 hash of a given string 2015-11-21 22:07:59 +05:00
util_opengl.h Cycles: Post-reintegration tweaks to ensure things do compile 2015-01-01 01:31:08 +05:00
util_optimization.h Cycles: Minor cleanup, whitespace around keyword and preprocessor indent 2016-04-13 08:58:52 +02:00
util_param.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_path.cpp Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_path.h Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_progress.h Cycles: Report total and render time to the log 2015-06-17 14:07:51 +02:00
util_queue.h Cycles: Avoid recursion when doing constant fold 2015-12-02 16:19:39 +05:00
util_set.h Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_simd.cpp Cycles: Add an option to build single kernel only which fits current CPU 2016-03-25 16:09:05 +01:00
util_simd.h Cycles: Move non-vectorized bitscan() to util 2016-03-31 10:06:21 +02:00
util_sky_model_data.h Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sky_model.cpp Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sky_model.h Cleanup: Move Cycles sky model data to util. 2016-02-13 13:41:40 +01:00
util_sseb.h Cycles: add better specializations for SSE shuffle function and few more wrappers. 2015-03-07 17:25:21 +00:00
util_ssef.h Cycles: Cleanup, indentation and braces 2016-02-03 15:00:55 +01:00
util_ssei.h Cycles: add better specializations for SSE shuffle function and few more wrappers. 2015-03-07 17:25:21 +00:00
util_stack_allocator.h Cycles: Fix issues with stack allocator in MSVC 2016-04-25 13:50:27 +02:00
util_stats.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_string.cpp Fix T47856: Cycles problem when running from multi-byte path 2016-03-23 13:58:31 +01:00
util_string.h Fix T47856: Cycles problem when running from multi-byte path 2016-03-23 13:58:31 +01:00
util_system.cpp Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_system.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_task.cpp Cycles: Fix rare dead-locks on TaskScheduler::exit() 2016-04-10 21:18:54 +02:00
util_task.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_texture.h Cycles: Add support for single channel float textures on CPU. 2016-05-11 21:58:34 +02:00
util_thread.h Cycles: Fix for missing pthread's spin on OSX 2016-04-01 09:16:46 +02:00
util_time.cpp Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_time.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_transform.cpp Code cleanup: resolve minor Cycles todo's. 2016-02-06 11:56:37 +01:00
util_transform.h Cycles: Fix compilation error of CUDA kernel after recent decomposition changes 2015-10-09 17:53:29 +05:00
util_types.h Cycles: Make Blender importer more forward compatible 2016-02-12 15:27:33 +01:00
util_vector.h Cycles: Use explicit qualifier for single-argument constructors 2016-05-11 16:51:14 +02:00
util_version.h Cleanup string includes after versioning commits 2016-04-13 09:45:32 +02:00
util_view.cpp Cleanup string includes after versioning commits 2016-04-13 09:45:32 +02:00
util_view.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
util_windows.h Cycles: Re-implement some utilities to avoid use of boost 2016-02-06 19:19:20 +01:00
util_xml.h Cycles: Fix compilation error when OIIO is compiled with external PugiXML parser 2015-01-01 01:31:07 +05:00