Commit Graph

1499 Commits

Author SHA1 Message Date
Thomas Dinges
e29a45b396 Cycles: Separation of Indirect and Direct clamping.
Indirect and Direct samples can now be clamped individually. This way we can clamp the indirect samples (fireflies), while keeping the direct highlights.
Example render: http://www.pasteall.org/pic/show.php?id=66586

WARNING: This breaks backwards compatibility. If you had Clamping enabled in an old file, you must re-enable either Direct/Indirect clamping or both again.

Reviewed by: brecht
Differential Revision: https://developer.blender.org/D303
2014-02-10 21:46:02 +01:00
Brecht Van Lommel
a0c54d71d8 Fix part of T38304: cycles render problem with zero length curve segments.
Now these are removed from the curve.
2014-02-10 18:33:27 +01:00
Brecht Van Lommel
644ca76356 Fix T38576: cycles hair not rendering in edit/paint modes. 2014-02-10 14:29:21 +01:00
Sv. Lockal
7096529704 Fix T38501: blender crashes right after adding image texture to material
in cycles

Also fix very similar problem in half-float SSE conversion.
2014-02-10 17:19:26 +04:00
Thomas Dinges
685c7a2272 Code cleanup: Remove Debug closure declaration. 2014-02-09 14:41:45 +01:00
Jonas Eschenburg
c6d1eaa3b2 Cycles: use COMPAT_ENGINES mechanism for UI panels.
This way addons like network renderers can more easily reuse them.

Reviewed By: brecht
2014-02-09 13:55:54 +01:00
Thomas Dinges
b0c314af9f Cycles Standalone: Expose Shader settings in the xml api. 2014-02-07 23:23:37 +01:00
Thomas Dinges
9025101122 Cycles Standalone: Exit when no xml file can be found. 2014-02-07 22:31:38 +01:00
Brecht Van Lommel
9c83ed774b Fix T36979: wrong render of textured mesh lights with multiple importance sampling. 2014-02-07 15:09:34 +01:00
Brecht Van Lommel
0f8ad228c3 Fix T38526: crash using blackbody node on background with multiple importance sampling. 2014-02-06 21:10:22 +01:00
Brecht Van Lommel
135e4e69a1 Fix T38524: Cycles not rendering sky texture correct when the direction vector is not normalized. 2014-02-06 21:10:22 +01:00
Brecht Van Lommel
a41648c1dc Cycles: add pass alpha threshold value to render layers.
Z, Index, normal, UV and vector passes are only affected by surfaces with alpha
transparency equal to or higher than this threshold. With value 0.0 the first
surface hit will always write to these passes, regardless of transparency. With
higher values surfaces that are mostly transparent can be skipped until an opaque
surface is encountered.
2014-02-06 15:24:15 +01:00
Martijn Berger
0f91f56ce3 Cycles Network rendering, remove some exception throwing, replace with saner error handling
This patch adds a network_error() function more alike how other devices handle error's

- it adds a check for errors on load_kernels to make sure we do not crash if rendering without a server.
- it uses the non throwing variation of boost::asio::read.

Reviewers: brecht

Reviewed By: brecht

CC: brecht

Differential Revision: https://developer.blender.org/D86
2014-02-05 21:55:51 +01:00
Brecht Van Lommel
502f9312d8 Attempt to fix OSL build error on Linux with latest OSL master. 2014-02-04 22:50:11 +01:00
Sv. Lockal
bd438de8c6 Cycles: bvh_cardinal_curve_intersect intro SSE optimization
Gives 5% speedup for koro_final.blend, 10-15% for hair.blend

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D225
2014-02-04 23:39:02 +04:00
Brecht Van Lommel
28e6d05e09 Fix cycles crash with float image textures on CPU without AVX support.
The AVX kernel functions for reading image textures could be get used from non-AVX
kernels. These are C++ class methods and need to be marked for inlining, all other
functions are static so they don't leak into other kernels.
2014-02-04 16:07:50 +01:00
Martijn Berger
4b07579cd4 Cycles_server also needs to link to libdl on linux 2014-02-03 20:19:15 +01:00
Sv. Lockal
cb96cf0b63 Cycles: small optimization for SSE 4.1 bvh intersector
Gives 0.7% - 1.3% speedup for BMW1M-MikePan scene.

Reviewers: juicyfruit

Differential Revision: https://developer.blender.org/D280
2014-02-03 20:49:07 +04:00
Brecht Van Lommel
eff3bd4e98 Fix T38439: allow IOR in range [0, inf] instead of [1, inf] in Cycles.
The same can be achieved by flipping normals on the mesh, but it can be
convenient to do this in the shader.
2014-02-03 17:08:34 +01:00
Sv. Lockal
04984430ce Cycles: enable /arch:AVX in msvc 11 and later versions for avx kernel
This enables VEX-encoding in AVX kernel for windows msvc builds and gives 5-10% speedup for different scenes.

Reviewers: juicyfruit, dingto, brecht

Reviewed By: brecht

CC: brecht

Differential Revision: https://developer.blender.org/D284
2014-02-03 17:22:50 +04:00
Campbell Barton
d900f5be55 Code cleanup: use bools where possible 2014-02-03 19:35:44 +11:00
Campbell Barton
1dc1d92dab Code cleanup: white space and cmake was broken on all platforms 2014-02-03 13:56:34 +11:00
Thomas Dinges
c0e6a0d318 Code cleanup / Cycles: Remove unused "curverender" variable from Object class, was never used. 2014-02-02 20:11:50 +01:00
Thomas Dinges
5c06b2d33e Code cleanup / Cycles: Remove encasing_ratio variable, it was already hard coded, so define it in the kernel only. 2014-02-02 19:53:04 +01:00
Campbell Barton
41cc86a666 Add include needed for clang, quiet warning 2014-02-02 21:33:52 +11:00
Sv. Lockal
1ff299b317 Cycles: less instructions for CPU perlin code
Also move shuffle() in bvh traversal back (was accidentally lost in SSE hair revert)
2014-02-01 14:07:53 +04:00
Campbell Barton
b3bb50f687 Warnings: quiet unused define message 2014-01-30 15:26:22 +11:00
Brecht Van Lommel
44cb138cf2 Fix sconscript syntax error when using python 2.x instead of 3.x. 2014-01-29 14:50:20 +01:00
Thomas Dinges
ac27a1a0f6 Scons: Some tweaks for f70d966047, we don't need SSE41 kernel for 32bit, nor vc2008 x64. 2014-01-29 13:29:24 +01:00
Brecht Van Lommel
f70d966047 Scons: refactor cycles kernel code to avoid building the AVX kernel with
compilers that don't support it.

CMake still needs to updated to work the same for consistency, but this should
fix the OS X buildbot at least.
2014-01-28 23:02:06 +01:00
Martijn Berger
84f9587540 Cuda use streams and async to avoid busywaiting
This is my first stab at this and is based on this IRC converstation:

<mib2berlin> brecht: this is meaning as reminder only, I know you have other things to do > http://openvidia.sourceforge.net/index.php/Optimization_Notes#avoiding_busy_waits
<brecht> mib2berlin: thanks, bookmarked

only tested on Ubuntu 14.04 / cuda 5.0 but ill do some more testing tomorrow.

Also unsure about the placement and the lifetime of the stream and the event. But creating / deleting these seems to incur a non trivial cost.

Reviewers: brecht

Reviewed By: brecht

CC: mib2berlin, dingto

Differential Revision: https://developer.blender.org/D262
2014-01-28 18:40:08 +01:00
Jens Verwiebe
623a550eec OSX/scons: fix gnu gcc compile by using clang assembler ( openMP builds) 2014-01-27 19:46:05 +01:00
Brecht Van Lommel
7280321f7a Revert recent OpenEXR cmake/linux fix and earlier OS X fix to use GCC for AVX.
Both need a better solution and break working builds.
2014-01-27 19:13:25 +01:00
Brecht Van Lommel
9e20d3e32a Attempt to fix T38373: cmake linux build failure with OpenEXR. 2014-01-27 15:26:03 +01:00
Martijn Berger
184294782e patch by liblib (lid b)
Default installation path of cuda nvcc.exe contain spaces

Reviewers: juicyfruit

Differential Revision: https://developer.blender.org/D239
2014-01-27 11:43:41 +01:00
Thomas Dinges
12109dd18e Cycles Standalone: Basic support for external OSL shaders.
* Very simple implementation, only allows for 1 output socket. As we haven't decided yet whether we keep the XML API, rather not spend more time on this now.

* To use an external osl shader, put the .osl file next to the xml file.
* Parameters: "output" is the output socket name, "output_type" the variable type (float, color and closure color are supported).
Example:
<osl_shader name="tex" src="ramp_closure.osl" output="Phong" output_type="closure color" />
<connect from="tex Phong" to="output surface" />
2014-01-26 16:23:07 +01:00
Thomas Dinges
97aab5acc4 Cycles: Set samples to USHRT_MAX per default in the constructor, this is already used elsewhere. 2014-01-25 19:25:24 +01:00
Thomas Dinges
f746d90398 Cycles Standalone: Various changes
* Change Info in header, put more important info to the left
* API: Move Camera width/height to camera, add some film properties
* Add ESC key to help menu
2014-01-25 18:57:02 +01:00
Martijn Berger
b46dcafa7a fix building cycles standalone on windows / cmake 2014-01-25 14:20:25 +01:00
Thomas Dinges
1dd05a1e7b Cleanup: Simplify Cycles standalone OSL detection code. 2014-01-25 13:25:26 +01:00
Thomas Dinges
544b7e6be4 Cycles Standalone: Add a help message, which appears when pressing the "h" key.
This is very basic for now, but can be extended with more info (available devices for example) later.

Thanks to Bastien and Sergey for some help with the glRect coordinates stuff.
2014-01-24 12:59:15 +01:00
Brecht Van Lommel
b119f471f4 Fix T37302: cycles slow hair export with many hairs, especially on Windows. 2014-01-23 18:14:19 +01:00
Brecht Van Lommel
4b820fb673 Fix T38311: cycles BVH cache crash on Windows. 2014-01-23 01:13:46 +01:00
Thomas Dinges
ae3f577ac1 Cycles Standalone: Volume integrator settings. 2014-01-21 20:56:56 +01:00
Thomas Dinges
a6e697f6d7 Cycles Standalone: XML Updates for the integrator. 2014-01-21 19:15:54 +01:00
Thomas Dinges
5ece1594ca Cycles Standalone: Updates for the XML API, added some missing nodes. Still not complete, but better. 2014-01-21 01:30:20 +01:00
Thomas Dinges
fd0b104f70 Cycles Standalone: GUI flag was not passed correctly to the code, own mistake when I added the GUI build option. 2014-01-20 21:12:28 +01:00
Thomas Dinges
21264f89ac Cycles: Add a cmake config to easily compile Cycles Standalone.
On Linux/Mac OS X, simply type "make cycles" inside the Blender source directory, to get a standalone build of the engine.

Reviewed by: Brecht
Differential Revision: https://developer.blender.org/D228
2014-01-20 20:44:39 +01:00
Brecht Van Lommel
fc3be511f0 Fix T37978: cycles nodes with multiple Material Output nodes not predictable.
Now it uses the last activated node like compositing does. This should have no
effect on existing files until you activate another output node there.
2014-01-20 20:31:10 +01:00
Sv. Lockal
62f6d5351f Revert "Cycles: mix hair minimum width code with SSE intersection code"
Code is not equivalent in min/max part (SSE works with NaNs differently), this results in black dots with cardinal_curve hair.

This reverts commit b886c26d1f.
2014-01-20 00:23:17 +04:00