Age | Commit message (Collapse) | Author |
|
and sm_30 cards, so hopefully it should all work now.
Also includes some warnings fixes related to nvcc compiler arguments, should make
no difference otherwise.
|
|
* Added a node to convert wavelength (in nanometers, from 380nm to 780nm) to RGB values. This can be useful to match real world colors easier.
* Code cleanup:
** Moved color functions (xyz and hsv) into dedicated utility files.
** Remove svm_lerp(), use interp() instead.
Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Wavelength
Example render:
http://www.pasteall.org/pic/show.php?id=53202
This is part of my GSoC 2013. (revisions 57322, 57326, 57335 and 57367 from soc-2013-dingto).
|
|
meshes and lamps. The light path node already made this possible but it's a bit
faster to render this way and convenient.
|
|
to be done in cycles itself to keep compatibility for bytecode too.
Also fix broken button to compile OSL from the text editors, this got broken after
recent change to disable editing of library linked nodes.
|
|
for now,
seems to be giving issues with CUDA 4.2 but I can't figure out why exactly.
|
|
glossy_toon
but we can keep the old name working too.
|
|
* Added a node to convert wavelength (in nanometer, from 380nm to 780nm) to RGB values. This can be useful to match real world colors easier.
Example render:
http://www.pasteall.org/pic/show.php?id=53202
ToDo:
* Move some functions into an util file, maybe a common util_color.h or so.
* Test GPU, unfortunately sm_21 doesn't work for me yet.
|
|
bug in CUDA 4.2 (solved in 5.5) with typedef'd function parameters.
|
|
* Use float_to_int() functions in a few more places.
|
|
opposite of Blender Internal but it makes more sense I think.
|
|
* Fix for recent commits, ceilf is not available in OpenCL.
|
|
was an old issue since the first version.
|
|
without
multiple importance sampling, so you can disable them for diffuse/glossy/transmission.
The Light Path node here is still weak and does not give this info. To make that
work we'd need to evaluate the shader multiple times which is slow and we can't
detect well enough when it is actually needed.
|
|
instead of sobol. So far one doesn't seem to be consistently better or worse than
the other for the same number of samples but more testing is needed.
The random number generator itself is slower than sobol for most number of samples,
except 16, 64, 256, .. because they can be computed faster. This can probably be
optimized, but we can do that when/if this actually turns out to be useful.
Paper this implementation is based on:
http://graphics.pixar.com/library/MultiJitteredSampling/
Also includes some refactoring of RNG code, fixing a Sobol correlation issue with
the first BSDF and < 16 samples, skipping some unneeded RNG calls and using a
simpler unit square to unit disk function.
|
|
conversion.
|
|
enabled in a render layer a Mist Pass panel will be shown in the world
properties.
|
|
* Revert r57203 (len() renaming)
There seems to be a problem with nVidia OpenCL after this and I haven't figured out the real cause yet.
Better to selectively enable native length() later, after figuring out what's wrong.
This fixes [#35612].
|
|
such as motion/uv/normal but they should have been excluded from them.
|
|
* Rename some math functions:
len -> length
len_squared -> length_squared
normalize_len -> normalize_length
* This way OpenCL uses its inbuilt length() function, rather than our own. The other two functions have been renamed for consistency.
* Tested CPU, CUDA and OpenCL compile, should be no functional changes.
|
|
* Avoid 2 int castings in hair code and fix some comments.
|
|
* Cycles Mix closure could render strange effects, when the user entered a value out of the 0...1 range. This was already clamped for OSL, clamp for SVM as well.
|
|
* Move some hair width related code into a dedicated branch.
* Don't calculate time/lens RNG when Motion Blur or Depth of Field are disabled
|
|
varibale
already adds an extra step. Also list all features for OpenCL AMD to make testing
easier.
|
|
a separate Blender Object/World Space that is compatible with Blender render
baking and uses the YZ flipping convention.
|
|
Now it uses the same (strange) YZ flipping convention.
|
|
* Use advanced shading for nvidia as well, works fine on my Geforce 540M with sm_21.
I tested the files from regression suite.
|
|
* Support using devices from all OpenCL platforms, so that you can use e.g. both
Intel and NVidia OpenCL implementations if you have them installed.
* Fix compile error due to missing fmodf after recent math node change.
* Enable advanced shading for Intel OpenCL.
* CYCLES_OPENCL_DEBUG environment variable for generating debug symbols so you
can debug with gdb. This crashes the compiler with Intel OpenCL on Linux though.
To make this work the preprocessed kernel source code is written out, as gdb
needs this.
* Show OpenCL compiler warnings even if the build succeeded.
* Some small fixes to initialize cdDevice to NULL, add missing NULL check when
creating buffer and add missing space at end of build options for Apple OpenCL.
* Fix crash with multi device + opencl, now e.g. CPU + GPU render should work.
I did a few tweaks to the code and also:
* Fix viewport render failing sometimes with Apple CPU OpenCL, was not taking
workgroup size limits into account properly.
* Add compile error when advanced shading in the Blender binary and OpenCL kernel
are not in sync.
|
|
* Some closures (Toon, Diffuse Ramp) were not assigned to a CLOSURE_IS_* define, which made them invisible on render passes.
* Westin closures had wrong type, Sheen is Diffuse, Backscatter is Glossy.
|
|
* Avoid redundant assignment and use correct Normal for Ray Differentials.
|
|
* Fix a condition in the hair BVH code.
|
|
* Rename fresnel_dielectric() to fresnel_dielectric_cos() to match SVM, easier when searching code.
* Also remove an old code comment in bsdf_reflection.h from Cycles branch days.
|
|
* Make sure we have valid geometry data, fixes a crash with Lamp objects.
Reported by lichtwerk in IRC, thanks!
|
|
* Added a toon bsdf node to Cycles. This was already available as OSL only closure, but is now available inside the SVM backed as well, for CPU and GPU rendering.
* There are 2 variations available, diffuse and glossy toon, selectable via a menu inside the node.
Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Toon
Example render & blend file:
http://www.pasteall.org/pic/show.php?id=51970
http://www.pasteall.org/blend/21579
|
|
* Use M_2PI_F in more places and do multiplication instead of division in gradient texture.
|
|
* Re-use already defined Westin closure class.
|
|
|
|
* Added a wireframe node (Input category) to get access to Mesh wireframe data.
The thickness can be controlled via a "Size" parameter, and is available in world units (default) and screen pixel size.
* Only the triangulated mesh is available now, quads is for later.
Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Wireframe
Render and Example file:
http://www.pasteall.org/pic/show.php?id=51731
http://www.pasteall.org/blend/21510
|
|
* Added a Modulo operation to the math node, available in Compositor, Shader and Texture Nodes.
|
|
* Remove an unused parameter from Checker texture and correct a typo in license header.
|
|
* Fix OSL compilation for scene_intersect(), when __Hair__ was disabled.
|
|
* Added Westin Sheen and Westin Backscatter closures for testing, useful for Cloth like effects.
Only available via OSL, added an example OSL shader to the Templates (Text Editor).
|
|
* Simplify shaperadius() function a bit to avoid castings.
* Style cleanup 1.f -> 1.0f, to follow rest of Cycles code.
|
|
* Avoid one max() call for the bssrdf radius, the if condition already checks for values < BSSRDF_MIN_RADIUS.
|
|
|
|
|
|
* Revert part of r56832, if code gets more complicated, it's better to keep it more logical here.
|
|
* Some simplification of closure code (Velvet and Toon).
|
|
OpenCL fixes.
|
|
* Code cleanup, remove unused "resolution" variable from the DeviceTask class, was never used.
|
|
* Use is_zero(a) rather than dot(a, a) == 0, saves some calculations.
|