blender/intern/cycles/render
Sergey Sharybin 272412f9c0 Cycles: Implement texture size limit simplify option
Main intention is to give some quick way to control scene's memory
usage by clamping textures which are too big. This is really handy
on the early production stages when you first create really nice
looking hi-res textures and only when it all works and approved
start investing time on optimizing your scene.

This is a new option in Scene Simplify panel and it acts as
following: when texture size is bigger than the given value it'll
be scaled down by half for until it fits into given limit.

There are various possible improvements, such as:

- Use threaded scaling using our own task manager.

  This is actually one of the main reasons why image resize is
  manually-implemented instead of using OIIO's resize. Other
  reason here is that API seems limited to construct 3D texture
  description easily.

- Vectorization of uchar4/float4/half4 textures.

- Use something smarter than box filter.

  Was playing with some other filters, but not sure they are
  really better: they kind of causes more fuzzy edges.

Even with such a TODOs in the code the option is already quite
useful.

Reviewers: brecht

Reviewed By: brecht

Subscribers: jtheninja, Blendify, gregzaal, venomgfx

Differential Revision: https://developer.blender.org/D2362
2016-11-22 12:00:09 +01:00
..
attribute.cpp Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv 2016-08-07 11:13:11 -04:00
attribute.h Cycles microdisplacement: Support for Catmull-Clark subdivision via OpenSubdiv 2016-08-07 11:13:11 -04:00
background.cpp Fix Cycles debug build assert on some platforms, tighten checks to avoid this in the future. 2016-06-12 17:35:15 +02:00
background.h Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
bake.cpp Fix T46207: Slow OpenCL GPU bake and blown out baking Cycles render 2016-05-31 17:48:42 +02:00
bake.h Fix T46550: Cycles combined baking black in some cases. 2016-02-06 21:02:02 +01:00
buffers.cpp Cycles: Initialize the RNG state from the kernel instead of the host 2016-10-30 11:51:20 +01:00
buffers.h Code refactor: nodify Cycles background and film. 2016-05-22 17:29:25 +02:00
camera.cpp Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
camera.h Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
CMakeLists.txt Cycles microdisplacement: ngons and attributes for subdivision meshes 2016-07-29 03:36:30 -04:00
constant_fold.cpp Cycles: implement partial constant folding for exponentiation. 2016-10-01 14:37:03 +03:00
constant_fold.h Cycles: implement partial constant folding for exponentiation. 2016-10-01 14:37:03 +03:00
curves.cpp Cycles: Code cleanup, prepare for strict C++ flags 2015-03-27 18:23:31 +05:00
curves.h Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
film.cpp Code refactor: minor node and node type utility functions and changes. 2016-05-29 20:30:16 +02:00
film.h Code refactor: nodify Cycles background and film. 2016-05-22 17:29:25 +02:00
graph.cpp Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
graph.h Cycles: Fix bump mapping to use object space when used with true displacement 2016-09-11 11:20:21 -04:00
image.cpp Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
image.h Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
integrator.cpp Cycles: Add optional probabilistic termination of light samples based on their expected contribution 2016-10-30 11:31:28 +01:00
integrator.h Cycles: Add optional probabilistic termination of light samples based on their expected contribution 2016-10-30 11:31:28 +01:00
light.cpp Fix T49985: cycles standalone XML missing distant lights. 2016-11-12 17:33:07 +01:00
light.h Cycles: Implement texture coordinates for Point, Spot and Area Lamps 2016-10-29 19:24:08 +02:00
mesh_displace.cpp Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED 2016-09-11 13:49:05 -04:00
mesh_subdivision.cpp Cycles: Remove explicit std:: from types where possible 2016-10-24 12:31:11 +02:00
mesh.cpp Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
mesh.h Cycles: Store undisplaced coordinates for meshes when needed 2016-09-01 22:45:29 -04:00
nodes.cpp Cycles: Add smoothing option to the Brick Texture 2016-10-30 02:16:22 +02:00
nodes.h Cycles: Add smoothing option to the Brick Texture 2016-10-30 02:16:22 +02:00
object.cpp Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
object.h Fix T49163: let Cycles only hide particles with missing motion data, not regular objects. 2016-08-28 21:26:03 +02:00
osl.cpp Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
osl.h Cycles: nodify shader nodes 2016-06-11 20:32:24 +02:00
particles.cpp Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
particles.h Code refactor: modify mesh storage to use arrays rather than vectors, separate some arrays. 2016-05-28 18:31:00 +02:00
scene.cpp Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
scene.h Cycles: Implement texture size limit simplify option 2016-11-22 12:00:09 +01:00
session.cpp Cycles microdisplacement: Allow kernels to be built without patch evaluation 2016-08-15 11:13:18 -04:00
session.h Cycles: Refactor Device selection to allow individual GPU compute device selection 2016-11-07 03:19:29 +01:00
shader.cpp Cycles: Also support the constant emission speedup for mesh lights 2016-09-14 18:53:35 +02:00
shader.h Cycles: Don't run full shader evaluation for constant emission lamps 2016-09-09 01:39:09 +02:00
sobol.cpp Fix #29528: crash adding subsurf modifier in a particular scene with viewport render. 2011-12-08 21:55:35 +00:00
sobol.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm.cpp Cycles: Implement threaded SVM nodes compilation 2016-09-13 13:46:49 +02:00
svm.h Cycles: Implement threaded SVM nodes compilation 2016-09-13 13:46:49 +02:00
tables.cpp Cycles: Fix two small memory leaks and deduplicate table freeing 2016-05-08 17:44:03 +02:00
tables.h Cycles: Fix two small memory leaks and deduplicate table freeing 2016-05-08 17:44:03 +02:00
tile.cpp Cycles: Resumable render implementation for Cycles 2016-03-30 16:02:27 +02:00
tile.h Cycles: Resumable render implementation for Cycles 2016-03-30 16:02:27 +02:00