Commit Graph

1348 Commits

Author SHA1 Message Date
Brecht Van Lommel
746628e0d0 Cycles OSL: refactoring to remove all dependencies on builtin OSL closures.
These were removed in new OSL versions. We only used these as base classes,
not using them at all simplifies the code a bit.
2013-11-29 04:01:07 +01:00
Brecht Van Lommel
62bf24a5c3 Cycles: experimental OpenSubdiv code.
This code can't actually be enabled for building and is incomplete, but it's
here because we know we want to support this at some point and there's not much
reason to have it in a separate branch if a simple #ifdef can disable it.
2013-11-28 02:11:42 +01:00
Brecht Van Lommel
89cfeefab5 Cycles: experimental OSL ptex reading code.
This code can't actually be enabled for building and is incomplete, but it's
here because we know we want to support this at some point and there's not much
reason to have it in a separate branch if a simple #ifdef can disable it.
2013-11-28 02:11:42 +01:00
Brecht Van Lommel
44d1c92e60 Cycles: add ptex face ID and UV attributes.
Not the most memory efficient way to store these things but it's simple and
implementing it better requires some work to natively support subd grids as
a primitive in some way.
2013-11-28 02:11:42 +01:00
Brecht Van Lommel
731ffd3cd4 Cycles: remove approximate subdivision surface with gregory patches code.
It was never fully implemented and will be replaced by OpenSubdiv. Only linear
subdivision remains now. Also includes some refactoring in the split/dice code,
adding a SubdParams struct to pass around parameters more easily.
2013-11-28 02:11:42 +01:00
Brecht Van Lommel
f67dda6893 Fix T37159: cycles rendering particle emitter mesh incorrectly when using non-hair particles. 2013-11-27 17:17:25 +01:00
Brecht Van Lommel
8cb78f1094 Fix mistake in last commit with submodules. 2013-11-26 20:40:55 +01:00
Brecht Van Lommel
b98ff5cb5b Fix T37303, Fix T37163: cycles mask layers that are also excluded not rendering
correct with multiple render layers.

This case is somewhat weak, we now do a few more checks on sync than I would
like, but it's not too bad.
2013-11-26 20:36:53 +01:00
Thomas Dinges
5dec5fd4e5 Cycles: Add missing unregister for world ray visibility pointer. 2013-11-24 22:30:11 +01:00
Brecht Van Lommel
fab96b5913 UI List: remove separate name text fields.
It was never the intention to have these separate, and now that we can rename
directly in the list there is no more need for them.
2013-11-24 14:27:02 +01:00
Brecht Van Lommel
58ec292fd8 Fix cycles build error with visual studio, apparently the windows ABI does not
like 16 bit alignment on 32 bit.
2013-11-23 05:47:57 +01:00
Martijn Berger
e3a79258d1 Cycles: test code for sse 4.1 kernel and alignment for some vector types.
This is mostly work towards enabling the __KERNEL_SSE__ option to start using
SIMD operations for vector math operations. This 4.1 kernel performes about 8%
faster with that option but overall is still slower than without the option.

WITH_CYCLES_OPTIMIZED_KERNEL_SSE41 is the cmake flag for testing this kernel.

Alignment of int3, int4, float3, float4 to 16 bytes seems to give a slight 1-2%
speedup on tested systems with the current kernel already, so is enabled now.
2013-11-22 14:42:41 +01:00
Thomas Dinges
bd5da19d86 Cycles: Add a "Normal" input socket to the Layer Weight node + GLSL drawing code.
Patch by lichtwerk (Philipp Oeser).

Differential Revision: http://developer.blender.org/D28
2013-11-22 00:33:28 +01:00
Brecht Van Lommel
c18712e868 Cycles: change __device and similar qualifiers to ccl_device in kernel code.
This to avoids build conflicts with libc++ on FreeBSD, these __ prefixed values
are reserved for compilers. I apologize to anyone who has patches or branches
and has to go through the pain of merging this change, it may be easiest to do
these same replacements in your code and then apply/merge the patch.

Ref T37477.
2013-11-18 08:48:15 +01:00
Thomas Dinges
cc7b2a0b04 Cycles / Fresnel Node:
* Add a "Normal" Input to the Fresnel node.
* Fix for the Fresnel GLSL code (normalize the Incoming vector).

Patch #37384 by Philipp Oeser (lichtwerk) , thanks!
2013-11-09 13:14:00 +00:00
Thomas Dinges
2c57e4f577 Cycles:
* Change the default Light Path settings.

* Diffuse/Glossy bounces are now set to 4, to give a bit faster renders in default scenes. More bounces are often not needed (especially in animation). 
* Transmission bounces have been increased to 12, to not run into problems with dark glass too quickly. 
* Max/Min bounces are now 12/3.
2013-11-01 09:37:42 +00:00
Campbell Barton
f9d5bccb06 code cleanup: spelling 2013-10-31 23:52:44 +00:00
Lukas Toenne
06fb71bc46 Fix #37194, OSL script crashes blender. The lookup functions for finding Cycles shader inputs/outputs based on socket names are using a few modifications on the Blender socket names. But these only apply
to standard nodes where the Blender socket names can differ from associated Cycles names and may require additional indices to make them unique. Script node sockets are already unique and exact due to
being generated from the script function parameters.
2013-10-30 11:21:31 +00:00
Brecht Van Lommel
70e9191e15 Fix #37184: film exposure + transparency not working well in cycles viewport. 2013-10-28 19:01:01 +00:00
Campbell Barton
48c1e0c0fc spelling: use American spelling for canceled 2013-10-26 01:06:19 +00:00
Campbell Barton
00160d4a1b remove unused var 2013-10-26 01:03:16 +00:00
Lukas Toenne
89fc09b3be Fix for OSL bug reported on IRC by Pablo Vasquez: Clamp option of the math node in OSL produces bad results. Really stupid bug, OSL math node was assigning the clamped 1st input value instead of the
clamped result of the actual operation.
2013-10-23 11:30:18 +00:00
Brecht Van Lommel
4ecfb215e2 Fix: ensure cycles mist pass stays in range 0..1, it could have values out of
this range due to sampling noise.

Side note: I looked into the mist pass because it was apparently not calculating
mist correctly on characters with transparent hair. Turns out this is just
sampling noise that goes away with more samples.

This noise is because the ray will randomly go to the next transparency layer or
get reflected, the path tracing integrator will not branch the path and only pick
one of the two directions each time.

Branched path tracing however will shade all transparent layers for each AA
sample, which means this source of noise is eliminated.
2013-10-18 23:44:25 +00:00
Brecht Van Lommel
451607630e Fix #37134: cycles viewport not displaying correct with multi GPU render
and graphics card that does not support CUDA OpenGL interop.
2013-10-18 20:11:07 +00:00
Sergey Sharybin
598239eb51 Make strict compiler flags happy 2013-10-18 15:30:38 +00:00
Brecht Van Lommel
5a355c2b01 Fix cycles hair segments not giving correct vector speed pass, the motion vector
export was not implemented yet for this primitive.
2013-10-18 15:03:18 +00:00
Brecht Van Lommel
2e8ab664d5 Fix cycles mesh synchronization being too slow with vector blur and duplis. 2013-10-17 16:05:57 +00:00
Thomas Dinges
0cbdac99b8 Interface:
* More compact and better looking Vertex Groups panel (Particle System).
* Smaller uiLists for Cycles as well.
2013-10-13 23:45:41 +00:00
Brecht Van Lommel
9d7567d6ac Fix #37002: cycles viewport render shows white on old graphics cards with no
support for non-power-of-two textures.
2013-10-12 13:55:52 +00:00
Thomas Dinges
c0295bd3d3 Code cleanup: Remove some more unused cycles SSS code, related to the lookup table. 2013-10-12 09:54:57 +00:00
Brecht Van Lommel
8f33609374 Code cleanup: remove some unused cycles SSS code. 2013-10-12 00:08:31 +00:00
Campbell Barton
8fd52b3433 style cleanup 2013-10-10 17:28:01 +00:00
Thomas Dinges
3d4bbd278a * Code cleanup for M_PI code. 2013-10-10 17:14:04 +00:00
Brecht Van Lommel
a200256451 Fix windows scons OSL build error, just use quotes now instead of array. 2013-10-09 20:11:18 +00:00
Brecht Van Lommel
bde4148375 Fix OSL shader build failing with spaces in the path to build directory,
patch by Campbell.
2013-10-09 18:48:32 +00:00
Thomas Dinges
e6ce07a5d4 Cycles / SSS:
* Remove the compatible falloff SSS implementation. We shouldn't support two implementations in the long term, and 2.7x is a good release number do break some compatibility as well. 

* Version patch added, so Files with Compatible falloff will automatically use Cubic now. 

It was already mentioned in the manual, that Compatible is deprecated. 
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#BSSRDF
2013-10-08 17:07:18 +00:00
Thomas Dinges
b5a5773fa9 Cycles / CUDA:
* Remove support for  CUDA Toolkit 4.x, only Toolkit 5.0 and above are supported now.
* Remove support for sm_1x cards (< Fermi) for good. We didn't officially support those cards for a few releases already, now remove some special code that was still there.
2013-10-08 15:29:28 +00:00
Antony Riakiotakis
1beec5ba47 Add GLEW_STATIC definition for CMake as well. 2013-10-07 18:56:21 +00:00
Brecht Van Lommel
e9d03296c7 Better fix for #36935 and 36316:
* 32 bit GCC builds now have the SSE BVH optimizations turned off, but still
  compile with SSE flags for better performance.

* White color when rendering on Windows seems to have been unrelated to SSE,
  rather it was a graphics driver not supporting half float textures, added a
  check for that now.
2013-10-05 19:56:34 +00:00
Lukas Toenne
4aacb0eda9 Fix #36962, "Render emitter" option for hair is ignored in Cycles. Hair particles use the hide_tris boolean to disable rendering of the emitter, but this was still ANDed with the "experimental" flag.
Hair is not experimental any longer, so this has to be removed.
2013-10-05 12:46:32 +00:00
Brecht Van Lommel
4c5d6dcbaf Fix cycles hair render UI panel showing for particles that are not hair,
patch by Greg Zaal.
2013-10-04 18:04:29 +00:00
Brecht Van Lommel
6737a04061 Attempt to fix #36935: disable SSE optimizations on 32 bit windows too. Something
strange is going on here, but I don't think it can be fixed before the release,
if it is worth at all spending time on this.
2013-10-04 14:47:37 +00:00
Brecht Van Lommel
e308c2f166 Fix #36316: dots in cycles render on certain CPUs with 32 bit linux builds.
There is some sort of problem with the SSE2 code path, but I couldn't find
the cause, maybe a compiler bug due to the large amount of inlining? For
now I've disabled SSE2 optimizatons in 32 bit GCC builds.
2013-10-02 19:00:16 +00:00
Brecht Van Lommel
a47e6810a2 Fixes for cycles Mapping and Vector Transform node:
* Keep the Mapping node default type as Point for now, instead of Texture. The
  latter is a better default, but this is breaking API compatibility and it's
  too close to release to expect addons to be fixed in time.

* Vector Transform and Mapping nodes had properties with name "type" to set the
  type of vector, but this conflicts with the node type property, so renamed to
  vector_type now.
2013-10-02 17:02:59 +00:00
Brecht Van Lommel
cbb783f1d6 Fix cycles OpenCL compile error on AMD, and fix assert in debug builds. 2013-10-02 14:41:04 +00:00
Brecht Van Lommel
31e6181187 Fix #36873: cycles opencl render status show negative sample count. 2013-09-30 12:11:25 +00:00
Thomas Dinges
85cb0bc19d Fix [#36863] OSL clamp, min and max functions have wrong signature when arguments are integers
* This was fixed in OSL 1.3.2, but we used an outdated stdosl.h.
2013-09-29 23:24:45 +00:00
Brecht Van Lommel
fa352bb749 Fix #35684: cycles unable to use full 6GB of memory on NVidia Titan GPU. We now
use arrays instead of textures for general storage on this card (image textures
are still stored as texture). Textures were found to be faster on older cards,
but the limits on 1D texture size have not increased along with the memory size,
which meant that the full 6 GB could not be used.

The performance actually seems to be slightly better with arrays in some tests
on Titan. For older cards there seems to be a bit of a mix, some are better and
others not. We may change those to use arrays too, but more testing is needed,
only Titan and Tesla K20 (sm_35) is changed for now.

The fact that arrays are faster is a bit surprising, as others found textures
to be faster on Kepler. However even if they were, the memory limitation is
more important to solve anyway.
https://research.nvidia.com/publication/understanding-efficiency-ray-traversal-gpus-kepler-and-fermi-addendum
2013-09-27 19:09:31 +00:00
Thomas Dinges
d0a092be5c Fix [#36822], Sky Turbidity values > 10 could result in weird behavior and crashes with the new sky model.
Soft UI range is 10 already, now clamp inside the code as well.
2013-09-27 10:26:00 +00:00
Brecht Van Lommel
c3d3d8be36 Fix cycles issue with mapping node rotation and scale order. When using both
scale and rotation in mapping node, there would be shearing, and the only way
to avoid that was to add 2 mapping nodes. This is because to transform the
texture, the inverse transform needs to be done on the texture coordinate

Now the mapping node has Texture/Point/Vector/Normal types to transform the
vector for a particular purpose. Point is the existing behavior, Texture is
the new default that behaves more like you might expect.
2013-09-25 20:28:49 +00:00