Commit Graph

525 Commits

Author SHA1 Message Date
Sergey Sharybin
b8c3f59e92 Tomato Cycles: resolve textures limit when using CPU render
Remove limit for number of textures when using CPU rendering,
so huge scenes from Mango could be rendered properly.

Re-arranged float and bytes textures for this, so now float
textures goes before byte. This is needed to make alignment
stuff easier for variable number of textures.

Also replace code-generated CPU kernel structure's members
with an array, which makes it easier to access textures
without adding bunch of cases in switch.

Should be no functional changes when rendering with GPU
or OpenCL devices.
2012-07-30 15:26:06 +00:00
Campbell Barton
a14fc54702 svn merge ^/trunk/blender -r49333:49361 2012-07-29 18:48:34 +00:00
Lukas Toenne
588e4a4327 Additional fix #32074, by Sven-Hendrik Haase (svenstaro). Boost version header must be included in cycles in order to expand the version check macro. 2012-07-29 13:52:38 +00:00
Sergey Sharybin
5e90606b17 Tomato Cycles: fix for wrong resolution used for rendering Render Layer node
Issue was caused by Cycles using render options from rendering scene, not
from active scene.

For now solved by passing render resolution inside RenderEngine structure.
This probably could be solved in more general way, like adding bindings

for RenderEngine->Render, which would avoid passing options like
is_animation, came_override and so via RenderEngine. Would think about
this a bit more and probably would do that.

The same issue happens in trunk as well, but not consider such a change
trunk-ready, would want to make more tests and probably clean the code
a little bit before commiting this into trunk.
2012-07-27 12:16:23 +00:00
Campbell Barton
e27f56d388 svn merge ^/trunk/blender -r49244:49250 2012-07-26 13:30:37 +00:00
Lukas Toenne
fec872ef9c Added a particle index output to the Particle Info Cycles node. This is required to get consistent ID numbers for particles. The Object ID is not usable since it's a user defined value of the instanced object, which does not vary per instance. Also the random value from the object info node is not consistent over time, since it only depends on the index in the dupli list (so each emitted or dying particle shifts the value).
The particle index is always the same for a specific particle. Randomized values can be generated from this with the use of a noise texture.
2012-07-26 11:40:58 +00:00
Sergey Sharybin
67d364304c Merging r49223 through r49225 from trunk into soc-2011-tomato 2012-07-25 20:28:06 +00:00
Sergey Sharybin
8ad3e73965 Make Cycles compatible with older boost versions.
Patch by IRIE Shinsuke, thanks!
2012-07-25 20:25:47 +00:00
Sergey Sharybin
62df895415 Tomato Cycles: resolve slowdown introduced by interactive samples view commit
Update samples displayign in the interface once in a whiel only
(currently once in 1 sec). This still keeps rendering interactive
enough for artists and it eliminates slowdown caused by constant
uploading sampels from GPU to host.

This also allowed to get rid of hack with storing render result
in render buffers, due to it's not so big overhead ow to create
render result when sample needs to be updated.

Tests made with different files shows that now render speed is
really close to oroginal speed from before we started hackign
into this stuff.

There still some issues with interactive update when rendering
several render layers, but that seems to be irrelivant to all
this sampels commtis, so woudl look into this as a separate
patch.
2012-07-25 14:29:14 +00:00
Sergey Sharybin
375882f396 Tomato Cycles: speedup realtime samples update
Copy pixels for combined pass only when updating tile after each sample
skipping all other passes. Behaves noticeable faster on scenes with
lots passes used.

Would check further tomorrow from studio whether stuff could be speed
up further.
2012-07-24 20:54:06 +00:00
Sergey Sharybin
de6d480f71 Tomato Cycles: fix for memory overflow issue
This fixes memory overflow caused by creating render result every time
RenderResult is creating when updating sample and not being freed until
tile is fully rendered.

Solved in probably not best way -- RenderResult is being stored in
RenderBuffers, so it's creating only once.

This solves memory issues, but while was looking into this issue
discovered dramatic slowdown caused by samples update in some files
from mango svn.

Solving this slowdown is becoming first priority from now on.
2012-07-24 20:05:00 +00:00
Campbell Barton
c363fc3dce svn merge ^/trunk/blender -r49175:49177 2012-07-24 13:02:54 +00:00
Campbell Barton
679847bd99 add prints for texture loading (we're running into texture limit a lot so its handy to see whats actually loading from the blend files) 2012-07-24 13:01:55 +00:00
Sergey Sharybin
d9d4430a56 Tomato Cycles: code reshuffle to make data flow more obvious
Should be no functional changes
2012-07-23 22:06:43 +00:00
Sergey Sharybin
e0eed025c9 Tomato Cycles: deadlock with save buffers enabled should be resolved now 2012-07-23 20:46:27 +00:00
Sergey Sharybin
10118cc825 Tomato Cycles: update buffers after sample wasfinished for CUDA devices 2012-07-23 19:06:04 +00:00
Sergey Sharybin
9cdf5a8553 Tomato Cycles: update buffers on every sample finished
Was requested by Mango team to improve feedback during rendering.

Known issues:
- Updating of samples are accumulative, meaning that visually samples
  would be dark in the beginning becoming brighter during progress.
- Could give some % of slowdown, so probably should be disabled in
  background mode.

Still to come: update of samples when using CUDA and OpenCL.
2012-07-23 18:45:29 +00:00
Campbell Barton
ad4738e77f svn merge ^/trunk/blender -r49118:49143 2012-07-23 15:03:54 +00:00
Campbell Barton
5412389af6 fix for cycles bug in localview: see r48269, bits used for localview gave collisions with PathRayFlag's 2012-07-23 14:48:19 +00:00
Sergey Sharybin
b25d28df18 Tomato Cycles: ability to cancel rendering before tile was fully rendered
Seems this requred cuda context synchronization after every finished sample,
which could give few percent of slowdown. In test made here it was only minor
slowdown, so think it's pretty much acceptable for now.
2012-07-23 13:51:29 +00:00
Sergey Sharybin
5652c9e107 Tomato Cycles: rendering can be cencelled before tile is fully rendered
Probably there;s a proper way to check whether rendering was requested
to cancel, but couldn't see any clearer ways to do that.
2012-07-23 13:01:30 +00:00
Campbell Barton
919a848015 svn merge ^/trunk/blender -r49107:49118 2012-07-22 16:10:06 +00:00
Campbell Barton
9b51503307 style cleanup 2012-07-21 22:58:08 +00:00
Campbell Barton
7200172990 svn merge ^/trunk/blender -r49063:49067 2012-07-19 13:07:33 +00:00
Campbell Barton
2557eaf0dd print names of nodes/sockets when cycles complains about only being able to connect a closure to another closure. 2012-07-19 13:04:43 +00:00
Campbell Barton
43fede9519 svn merge ^/trunk/blender -r48986:48991 2012-07-17 09:58:20 +00:00
Campbell Barton
32cf7fcdb1 code cleanup: spelling 2012-07-16 23:23:33 +00:00
Sergey Sharybin
8764e7507f Merging r48829 through r48861 from trunk into soc-2011-tomato 2012-07-12 12:12:21 +00:00
Sergey Sharybin
a87051bd8e Patch #32074: Fix compilation with boost 1.50
This patch switches from boost's filesystem v2 to v3.

This should be completely smooth due to filesystem v3 is pretty
old already.

Patch by Sven-Hendrik Haase (aka svenstaro), thanks!
2012-07-11 14:48:47 +00:00
Brecht Van Lommel
26f6913516 Cycles: blended box mapping support for image texture node. This enabled by
selecting Box instead of Flat as projection, and then setting the blend value.
Blend 0.0 will not do any blending between box sides, higher values will give
a smooth transition between the sides

This is useful for mapping image texture without too obvious patterns in a
way that looks seamless, without the need for UV mapping. This works basically
the same as the mango node setup that was posted, just a bit faster:

http://mango.blender.org/production/blended_box/
2012-07-11 00:08:42 +00:00
Campbell Barton
c185635ed0 svn merge ^/trunk/blender -r48749:48754 2012-07-09 12:57:04 +00:00
Campbell Barton
facb1512c0 fix/workaround for cycles crash packing bvh
brecht - when you get time please look into this to see if the fix is ok.
2012-07-09 12:55:16 +00:00
Campbell Barton
029611835e fix for crash when render result is NULL 2012-07-06 14:26:22 +00:00
Campbell Barton
48d0d32f73 svn merge ^/trunk/blender -r48585:48604 2012-07-04 17:55:30 +00:00
Bastien Montagne
558721ab59 More spell checking. 2012-07-04 15:04:38 +00:00
Campbell Barton
fbc24a61c4 svn merge ^/trunk/blender -r48576:48585 2012-07-04 11:53:48 +00:00
Campbell Barton
16e6b7b867 cycles changes:
- images that can't be loaded because of the limit are printed in the console.
- textures that can't be found show up as pink (so we know somethings wrong).
2012-07-04 11:48:42 +00:00
Brecht Van Lommel
ad79bea8e4 Forgot these files in previous commit. 2012-06-28 11:16:47 +00:00
Brecht Van Lommel
7c8f82a174 Cycles: regular rendering now works tiled, and supports save buffers to
save memory during render and cache render results.


Implementation notes:

In the render engine API it's now possible to get the render result for
one render layer only, and retrieve the expected tile size in case save
buffers is used. This is needed because EXR expects tiles with particular
size and coordinates.

The EXR temporary files are now also separated per layer, since Cycles
can't give the full render result for all render layers, and EXR doesn't
support writing parts of tiles.

In Cycles internally the handling of render buffers and multi GPU
rendering in particular changed quite a bit, and could use a bit more
refactoring to make things more consistent and simple.
2012-06-28 10:34:38 +00:00
Brecht Van Lommel
3271850a2f Fix cycles not working in 3d local view, and missing update when toggling hiding
in the outliner.
2012-06-25 11:43:22 +00:00
Brecht Van Lommel
2b41b6d669 Fix for cycles building with assertions on scons/windows. 2012-06-25 11:42:58 +00:00
Campbell Barton
158a70c8a3 the mutex struct seems to be different across systems, use memset rather then an initializer value.
also quiet warning in cycles.
2012-06-25 11:19:38 +00:00
Campbell Barton
263be14811 rename WITH_BUILTIN_GLEW, WITH_SYSTEM_GLEW & negate. 2012-06-23 13:42:14 +00:00
Thomas Dinges
3ba31f0481 * Fix for the Cycles XML commit yesterday, blur_glossy has a different internal variable name. 2012-06-21 08:02:18 +00:00
Thomas Dinges
b84ee5ae7c Cycles XML:
* Add recent integrator options.
2012-06-20 21:12:38 +00:00
Brecht Van Lommel
e3e75b3936 Fix #31883: cycles vectors pass rendering crash with some render layers using
it and others not.
2012-06-20 14:24:52 +00:00
Campbell Barton
98e6912480 style cleanup 2012-06-19 22:17:19 +00:00
Brecht Van Lommel
6a8fceb8b8 Fix cycles non-progressive integrator not delivering correct AO pass. 2012-06-15 10:15:10 +00:00
Thomas Dinges
bccadfb335 Cyles UI:
* Alignment fix for the "Samples" panel, this way both columns are aligned nicely.
2012-06-14 08:58:23 +00:00
Brecht Van Lommel
4940482e59 Fix issue with missing emission in non-progressive integrator. 2012-06-13 17:34:47 +00:00