Commit Graph

837 Commits

Author SHA1 Message Date
Brecht Van Lommel
e1004eb139 Fix CUDA build error after last commit, and remove some comments. 2013-01-03 13:18:35 +00:00
Brecht Van Lommel
b3f21a2254 Cycles Hair: add Generated texture coordinates for curves, so that procedural
textures now work without having to add a UV map.

Also made UV and intercept attributes only export when needed by the shader.
2013-01-03 12:31:05 +00:00
Brecht Van Lommel
bf25f1ea96 Cycles Hair: refactoring to store curves with the index of the first key and the
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.
2013-01-03 12:09:09 +00:00
Brecht Van Lommel
57cf48e7c6 Cycles Hair: refactoring to support generic attributes for hair curves. There
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.
2013-01-03 12:08:54 +00:00
Campbell Barton
1a7638fa94 add id property clear function (matching the same python function for dicts/lists) 2013-01-02 23:10:14 +00:00
Stuart Broadfoot
0f3931dee4 Fix for normal scaling when using triangle primitives for hair.
and some code clean ups in blender_curves and node_shader_hair_info.c
2013-01-01 19:50:29 +00:00
Stuart Broadfoot
178a877a95 Fix to prevent undefined normals being generated with `add_face_normals()', from triangles with zero area. 2013-01-01 19:44:09 +00:00
Sergey Sharybin
2e0e2cb170 Highlight currently rendering tiles
This commit implements highlight of tiles which are being currently
rendered for both Blender Internal and Cycles (and should be possible
to use it for other external engines as well).

Couple of implementation details:

- Added one extra boolean flag to render engine which should be set
  to truth if render engine wants to highlight tiles. If so, property
  use_highlight_tiles should be set to True.

- Render Part's ready boolena was changed by status enum, which could
  be NONE, IN_PROGRESS and READY. All render part with IN_PROGRESS
  status will be highlighted in image editor.

- For external engines render part's status is filling in automatically.
  Initially all render parts has got NONE status, then one external
  engine acquire render result, corresponding part will change status
  to IN_PROGRESS. As soon as render result is finished, corresponding
  render part will change status to FINISHED

  This should make it easy to highlight tiles for other engines as well.
2013-01-01 16:15:13 +00:00
Sergey Sharybin
08cea96ab0 Alpha premul pipeline cleanup
This assumptions are now made:
- Internally float buffers are always linear alpha-premul colors
- Readers should worry about delivering float buffers with that
  assumptions.
- There's an input image setting to say whether it's stored with
  straight/premul alpha on the disk.
- Byte buffers are now assumed have straight alpha, readers should
  deliver straight alpha.

Some implementation details:

- Removed scene's color unpremultiply setting, which was very
  much confusing and was wrong for default settings.
  Now all renderers assumes to deliver premultiplied alpha.

- IMB_buffer_byte_from_float will now linearize alpha when
  converting from buffer.

- Sequencer's effects were changed to assume bytes have got
  straight alpha. Most of effects will work with bytes still,
  however for glow it was more tricky to avoid data loss, so
  there's a commented out glow implementation which converts
  byte buffer to floats first, operates on floats and returns
  bytes back. It's slower and not sure if it should actually
  be used -- who're using glow on alpha anyway?

- Sequencer modifiers should also be working nice with straight
  bytes now.

- GLSL preview will predivide float textures to make nice shading,
  shading with byte textures worked nice (GLSL was assuming straight
  alpha).

- Blender Internal will set alpha=1 to the whole sky. The same
  happens in Cycles and there's no way to avoid this -- sky is
  neither straight nor premul and doesn't fit color pipeline well.

- Straight alpha mode for render result was also eliminated.

- Conversion to correct alpha need to be done before linearizing
  float buffer.

- TIFF will now load and save files with proper alpha mode setting
  in file meta data header.

- Remove Use Alpha from texture mapping and replaced with image
  datablock setting.

  Behaves much more predictable and clear from code point of view
  and solves possible regressions when non-premultiplied images were
  used as textures with ignoring alpha channel.
2012-12-31 13:52:13 +00:00
Brecht Van Lommel
97c6a55c39 Fix #33706: issue in cycles motion blur rendering after hair commit, my fault
for not finding it in review.

Also removed the hard limits on motion blur shutter time, soft limits are still
the same but it can be useful to set things lower/higher in some cases.
2012-12-31 13:07:06 +00:00
Bastien Montagne
b3aa368c8f Usual UI messages-related fixes... 2012-12-30 23:21:33 +00:00
Thomas Dinges
6b05c887d3 Cycles Hair:
* Implemented the Hair Info Node for OSL.
2012-12-29 01:57:32 +00:00
Thomas Dinges
6b211bac15 Fix for last commit, hair settings panel should also check on psys. 2012-12-29 01:14:03 +00:00
Brecht Van Lommel
cfd0b3c5f2 Fix OSL distance() of point to line segment function not being available,
implemented now in stdosl.h.
2012-12-28 18:21:07 +00:00
Thomas Dinges
81b371a451 Cycles Hair UI:
* Code cleanup, removed some unneeded code
* Moved "Cycles Hair Rendering" panel above "Cycles Hair settings"
* "Cycles Hair settings" panel is only visible when hair rendering ("use_curves") is enabled.
2012-12-28 16:25:41 +00:00
Brecht Van Lommel
74a30d91d2 Fix cycles python error in some panels, was not updated for new list template yet. 2012-12-28 14:46:43 +00:00
Stuart Broadfoot
e9ba345c46 New feature
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.
2012-12-28 14:21:30 +00:00
Brecht Van Lommel
7cbfe1839b Fix part of #33662: cycles crash using displacement on meshes with vertices not
attached to any face.
2012-12-26 20:59:35 +00:00
Brecht Van Lommel
4ee0087e35 Fix cycles displacement not working well with OSL and multiple objects. 2012-12-23 14:29:43 +00:00
Brecht Van Lommel
35c0b821a5 Cycles: deal a bit better with errors when CUDA runs out of memory, try to avoid crashes. 2012-12-23 12:53:58 +00:00
Brecht Van Lommel
779662aff7 Fix #33641: cycles self intersection artifacts with motion blur and one of the
X/Y/Z coordinates close to 0.
2012-12-23 12:52:10 +00:00
Brecht Van Lommel
80d22a3f12 Cycles OSL: handle new getattribute constant folding with renderstate NULL check,
and fix #33654, distance to line segment function is not implemented but compiled
anyway, now it should give a compile error.
2012-12-22 15:15:11 +00:00
Brecht Van Lommel
e5b457dbc9 Cycles: merge some changes from a local branch to bring network rendering a bit
more up to date, still nowhere near working though, but might as well commit this
in case someone else is interested in working on it.
2012-12-21 11:13:46 +00:00
Brecht Van Lommel
5f4c7e5da4 Cycles: add some extra CUDA nvcc paths for runtime compile, might help for #33622. 2012-12-21 10:27:35 +00:00
Brecht Van Lommel
12117a8187 Fix cycles aliasing warnings caused by motion blur transforms. 2012-12-21 10:26:48 +00:00
Campbell Barton
47a429d161 patches from fedora:
blender-2.64-64bit.patch
blender-2.64a-big-endian.patch
by Jochen@herr-schmitt.de
2012-12-21 03:02:36 +00:00
Brecht Van Lommel
abd3c87663 Cycles: reduce memory usage of instanced objects by about 40%, as long as the
motion vector pass is not enabled.
2012-12-20 19:26:57 +00:00
Brecht Van Lommel
54729df020 Cycles OSL: diffuse_toon and specular_toon closures. These are toon shaders with
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
2012-12-19 21:17:16 +00:00
Bastien Montagne
ab2c273b12 Added GPL header to sconscripts!
Also changed shebang to '#!/usr/bin/env python', this is more portable across unixes...
2012-12-17 08:01:43 +00:00
Brecht Van Lommel
a0855a95db Cycles: add "Textures" panel in particle properties, to make it possble to add
textures when Cycles is selected as render engine.
2012-12-16 12:55:52 +00:00
Brecht Van Lommel
176292067e Cycles OSL: small optimization to geometry node, tangent output still was
not properly optimized out in some cases.

For reference, setting this will give detailed information about OSL shaders:
export OSL_OPTIONS="statistics:level=1,debug=1,llvm_debug=1"
2012-12-16 09:37:32 +00:00
Brecht Van Lommel
caf2324d56 Fix cycles build error with OSL disabled. 2012-12-15 20:43:25 +00:00
Brecht Van Lommel
06888b7beb Cycles OSL minor optimizations: recycle shading context, don't do memory
allocations for trace data, avoid some virtual function calls. Only helps
a few percentages.
2012-12-15 10:18:42 +00:00
Brecht Van Lommel
0f5b5bb5f1 Cycles: make "Open Shading Language" a boolean toggle, the other option "GPU Compatible" was confusing. 2012-12-14 15:26:49 +00:00
Brecht Van Lommel
5d520c2b5a Cycles: shuffle addon import statements a bit to try to fix a strange import
error in some builds.
2012-12-13 08:45:55 +00:00
Brecht Van Lommel
5616c7a058 Cycles: disable scaling up of ray differentials after diffuse/glossy bounce, this
isn't working well for OSL texture filtering and wasn't very helpful to begin
with, a better solution should be possible.
2012-12-12 14:43:07 +00:00
Brecht Van Lommel
3945979f2b Fix #33486: cycles CPU image textures were offset wrong by half a pixel compared
to OpenGL/CUDA/OSL rendering.
2012-12-12 09:17:21 +00:00
Brecht Van Lommel
3759c10e5c Fix #33485: cycles OSL now autodetects the presence of emission and transparent
closures to enable multiple importance sampling and transparent shadows.
2012-12-12 06:51:06 +00:00
Campbell Barton
c40030a36c replace BLI_array_declare with BLI_array_staticdeclare() and BLI_array_alloca() for smaller arrays. 2012-12-12 02:48:03 +00:00
Thomas Dinges
188718a3d5 OSL Shader Files:
* Simplify default color values, where each component was the same.
* Initialize closures as Null Closure, rather than assigning an existing closure, gets overwritten anyways.
2012-12-11 16:06:03 +00:00
Brecht Van Lommel
8d4bd2cf3b Cycles OSL: add diffuse_ramp closure in addition to phong_ramp. 2012-12-11 14:39:41 +00:00
Brecht Van Lommel
43c04eefe3 Cycles: RGB and Vector Curves nodes now supported, with the limitation that the
range must be left to the default (0..1 and -1..1).
2012-12-11 14:39:37 +00:00
Brecht Van Lommel
7c81952179 Cycles: trick to make building with OSL trunk work as well, it has a different
name for LoadMemoryShader so we make it call the right name depending on which
is available.
2012-12-11 14:39:32 +00:00
Brecht Van Lommel
919311a654 Fix cycles OSL + AO enabled in world settings not working correct. 2012-12-10 12:56:56 +00:00
Brecht Van Lommel
98fab9e530 Fix #33454: cycles wasn't hiding the original object used for dupliverts or
duplifaces like blender internal.
2012-12-09 12:43:40 +00:00
Brecht Van Lommel
369b9fcf0f Fix missing mapping and influence panel for particles when cycles is selected
as render engine. Still missing is colors and texture slots, but that's too
tricky to fix this close to release.
2012-12-07 11:30:40 +00:00
Brecht Van Lommel
c20292f624 Fix mapping node min/max not working OSL. 2012-12-06 09:13:57 +00:00
Campbell Barton
767bfba808 cmake was missing some header files. 2012-12-04 14:43:42 +00:00
Konrad Kleine
38dcce2da2 FIX: OSL mix shader clamps 2nd color component to 3rd one.
Previously the OSL Mix shader node was clamping the 2nd color component (green) to the 3rd color component (blue). Now every component is clamped on its own.
2012-12-04 08:40:24 +00:00
Brecht Van Lommel
a9d889cba4 Fix #33405: preview render getting stuck in a particular .blend file, ObjectKey
operator< had wrong brackets, changed it now to be more clear.

Fix #33404: crash GPU rendering with OSL option still enabled. There was a check
to disable OSL in this case, but it shouldn't have modified scene->params because
this is used for comparison in scene->modified().
2012-12-04 07:48:09 +00:00