Age | Commit message (Collapse) | Author |
|
* 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).
|
|
* 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.
|
|
* Use float_to_int() functions in a few more places.
|
|
was an old issue since the first version.
|
|
conversion.
|
|
* 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].
|
|
* 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.
|
|
* 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.
|
|
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.
|
|
* 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.
|
|
* 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.
|
|
* 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.
|
|
* Add M_2PI_F and M_4PI_F constants and use them inside the codebase.
|
|
|
|
displacement
distance, and an Invert option to invert the bump effect.
|
|
|
|
give results that were either too weak or too strong, this makes it give more
predictable results. The downside is that it breaks backwards compatibility but
the previous behavior was almost broken.
|
|
when
openimageio can't detect premul/straight alpha correct.
|
|
Code is added to restrict the pixel size of strands in cycles. It works best with ribbon primitives and a preset for these is included. It uses distance dependent expansion of the strands and then stochastic strand removal to give a fading. To prevent a slowdown for triangle mesh objects in the BVH an extra visibility flag has been added. It is also only applied for camera rays.
The strand width settings are also changed, so that the particle size is not included in the width calculation. Instead there is a separate particle system parameter for width scaling.
|
|
output
will not give straight RGB values if the alpha output is used, so that mixing with
a transparent BSDF gives the correct result.
|
|
merging code.
|
|
well as I would like, but it works, just add a subsurface scattering node and
you can use it like any other BSDF.
It is using fully raytraced sampling compatible with progressive rendering
and other more advanced rendering algorithms we might used in the future, and
it uses no extra memory so it's suitable for complex scenes.
Disadvantage is that it can be quite noisy and slow. Two limitations that will
be solved are that it does not work with bump mapping yet, and that the falloff
function used is a simple cubic function, it's not using the real BSSRDF
falloff function yet.
The node has a color input, along with a scattering radius for each RGB color
channel along with an overall scale factor for the radii.
There is also no GPU support yet, will test if I can get that working later.
Node Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#BSSRDF
Implementation notes:
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles/Subsurface_Scattering
|
|
respecting the assumption that normal and tangent are interpolated without
normalization.
|
|
the result to be finite afterwards which is a bit faster and works for OSL
too without needing to slow down OSL itself.
|
|
|
|
number of keys in the curve, rather than curve segments with the indices of two
keys. ShaderData.segment now stores the segment number in the curve.
|
|
should be no functional changes yet. UV, tangent and intercept are now stored
as attributes, with the intention to add more like multiple uv's, vertex
colors, generated coordinates and motion vectors later.
Things got a bit messy due to having both triangle and curve data in the same
mesh data structure, which also gives us two sets of attributes. This will get
cleaned up when we split the mesh class.
|
|
Patch [#33445] - Experimental Cycles Hair Rendering (CPU only)
This patch allows hair data to be exported to cycles and introduces a new line segment primitive to render with.
The UI appears under the particle tab and there is a new hair info node available.
It is only available under the experimental feature set and for cpu rendering.
|
|
a size parameter between 0.0 and 1.0 that gives a angle of reflection between
0° and 90°, and a smooth parameter that gives and angle over which a smooth
transition from full to no reflection happens.
These work with global illumination and do importance sampling of the area within
the angle. Note that unlike most other BSDF's these are not energy conserving in
general, in particular if their weight is 1.0 and size > 2/3 (or 60°) they will
add more energy in each bounce.
Diffuse: http://www.pasteall.org/pic/show.php?id=42119
Specular: http://www.pasteall.org/pic/show.php?id=42120
|
|
allocations for trace data, avoid some virtual function calls. Only helps
a few percentages.
|
|
|
|
range must be left to the default (0..1 and -1..1).
|
|
bounds then.
OSL noise() function is generating NaN's in certain cases, fix for that goes to our
OSL branch.
Also add missing minimum weight and max closure checks to OSL, forgot to add these
when fixing another bug.
|
|
leading to some extra noise compared to a few revisions ago.
|
|
|
|
and brick code so that it can be uninlined.
|
|
of closures limit. Optimized the code now so it can handle more.
Change SVM mix/add closure handling, now we transform the node graph so that
the mix weights are fed into the closure nodes directly.
|
|
GPU variants do not support pow(-1, 2), it doesn't check for even exponents, do
manually now.
|
|
again.
|
|
useful for e.g. fog in compositing.
|
|
|
|
|
|
|
|
a specular ramp shader. Note this is OSL only still, for experimenting.
Patch by Thomas.
|
|
* Tangent: generate a tangent direction for anisotropic shading. Can be either
radial around X/Y/Z axis, or from a UV map. The default tangent for the
anisotropic BSDF and geometry node is now always radial Z, for UV tangent use
this node now.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Tangent
* Normal Map: generate a perturbed normal from an RGB normal map image. This
is usually chained with an Image Texture node in the color input, to specify
the normal map image. For tangent space normal maps, the UV coordinates for
the image must match, and the image texture should be set to Non-Color mode
to give correct results.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/More#Normal_Map
* Refraction BSDF: for best results this node should be considered as a building
block and not be used on its own, but rather mixed with a glossy node using a
fresnel type factor. Otherwise it will give quite dark results at the edges for
glossy refraction.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Refraction
* Ambient Occlusion: controls the amount of AO a surface receives, rather than
having just a global factor in the world. Note that this outputs a shader and
not a color, that's for another time.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Shaders#Ambient_Occlusion
|