Commit Graph

2937 Commits

Author SHA1 Message Date
Campbell Barton
4d7583b66f code cleanup: warnings, also add check in crash handler that a wmWindowManager is present. 2013-01-11 03:21:24 +00:00
Brecht Van Lommel
0deb074f1c Fix #33824: cycles non-progressive render mode did not do correct path termination,
leading to too much noise when the min bounce setting was lower than max bounce.
2013-01-10 19:28:16 +00:00
Brecht Van Lommel
057f0a63d4 Fix #33821: cycles background intensity fix had uninitialized memory usage
for area lights.
2013-01-10 17:37:26 +00:00
Brecht Van Lommel
04754cc112 Fix too bright result in background multiple importance after recent changes. 2013-01-10 12:35:09 +00:00
Brecht Van Lommel
8cf374d401 Cycles: different fix for perlin noise generating nan values, now check for
the result to be finite afterwards which is a bit faster and works for OSL
too without needing to slow down OSL itself.
2013-01-09 22:06:03 +00:00
Brecht Van Lommel
ad10cbf04a Cycles: multiple importance sampling for lamps, which helps reduce noise for
big lamps and sharp glossy reflections. This was already supported for mesh
lights and the background, so lamps should do it too.

This is not for free and it's a bit slower than I hoped even though there is
no extra BVH ray intersection. I'll try to optimize it more later.

* Area lights look a bit different now, they had the wrong shape before.
* Also fixes a sampling issue in the non-progressive integrator.
* Only enabled for the CPU, will test on the GPU later.
* An option to disable this will be added for situations where it does not help.

Same time comparison before/after:
http://www.pasteall.org/pic/show.php?id=43313
http://www.pasteall.org/pic/show.php?id=43314
2013-01-09 21:09:20 +00:00
Ton Roosendaal
96b44c622c Mac HiDPI support:
With the good help from googling, here's code that compiles for
10.6 natively. Will check on 10.7 and 10.8 right after commit.
2013-01-09 11:25:16 +00:00
Sergey Sharybin
f5317b5f0c Style cleanup in OCIO area
Also fixed typo in function name.
2013-01-08 20:55:07 +00:00
Ton Roosendaal
74d85d2882 Macbook HiDPI support: reshuffled code to make it compile for 10.6 and work
in 10.7 and later. OS X Gurus might check though :)
2013-01-08 17:27:11 +00:00
Sergey Sharybin
fd35b0aa66 Fix for recent tile_order feature not working properly with persistent data 2013-01-08 16:56:04 +00:00
Campbell Barton
08358a60b0 style cleanup 2013-01-08 01:48:14 +00:00
Thomas Dinges
41c588256b Cycles / Tile Rendering:
* Added new option to chose the tile order.
In addition to the "Center" method, 4 new methods are available now, like Top -> Bottom and Right -> Left. 

Thanks to Sergey for code review and some tweaks!
2013-01-07 19:55:49 +00:00
Mike Erwin
eca21a2532 fix for bugs 30300, 31107: pen pressure with multiple open windows on MS Windows 2013-01-07 01:23:09 +00:00
Ton Roosendaal
0fd4a102e0 With some help in irc (thanks erwin, markus!) and some googling, here's code
that compiles for OSX 10.6 for new momentumPhase usage.

Jens Verwiebe can give final blessings, I'm just copypasting stuff and test it :)
2013-01-06 12:49:32 +00:00
Jason Wilkins
0ea3c285ea device_network.cpp is completely elided when WITH_NETWORK is not defined, so do not include it in the build in that case 2013-01-06 07:10:22 +00:00
Ton Roosendaal
c6a0818642 Removal of old code trying to detect trackpads.
This was causing error in previous commit "wheel only worked after using trackpad once".
2013-01-05 18:23:05 +00:00
Ton Roosendaal
8dfe7620fb New version of code to detect whether a wheel is involved, or a trackpad.
It was compiled with "deploy target 10.6" tested on macbook with 10.8.
More tests follow quick.
2013-01-05 17:13:07 +00:00
Stuart Broadfoot
ec33cacc62 Added vertex color attributes (currently limited to one) and UVs included for triangle mesh hair.
I have also included a small speedup for the intersection test.
2013-01-04 12:44:38 +00:00
Sergey Sharybin
25d9fa95f9 Silent "no previous prototype" warning, which was treating as error here 2013-01-04 08:01:35 +00:00
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
c2839bfe76 add option WITH_SYSTEM_BULLET to link against the bullet installation found on the system.
Note: this doesn't work yet for everything with latest stable bullet (2.81), need to look into why and likely apply some patches upstream.
However I managed to link blender by disabling some features, likely it can be made to work without too much trouble.
2013-01-03 00:23:52 +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
c0a697807a Add try/catch around i18n locale setter code, just in case... 2012-12-31 12:12:50 +00:00
Bastien Montagne
b3aa368c8f Usual UI messages-related fixes... 2012-12-30 23:21:33 +00:00
Ton Roosendaal
fde101c50c Revert change from Jens, wrong pointer check in the code.
That change made all scrollwheel events be handled as if it was a swipe gesture.
Old style mouse wheel didn't work anymore.

This version should work for everyone, but we need more mac testers :)
2012-12-30 10:38:56 +00:00
Jens Verwiebe
eae167998a OSX: fix magic mouse swipes compiling on with MAC_OS_X_VERSION_MIN_REQUIRED by checking address not value 2012-12-29 19:51:44 +00:00
Ton Roosendaal
7684f2e5ac Mac OS X 10.7 supports new trackpad (and mighty mouse) events with nice seamless
scrolling and inertia.

Now Blender uses this - if you have 10.7. Otherwise it just falls back on the
old code.

Try it, makes a huge difference :)

Next todo: how to configure this well, so you can have trackpad (or mighty mouse)
zoom as default in 3d views.
2012-12-29 11:00:45 +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
Ton Roosendaal
01fe30f50b Hrm... replacing
MAC_OS_X_VERSION_MAX_ALLOWED
with
MAC_OS_X_VERSION_MIN_REQUIRED
2012-12-28 19:26:25 +00:00
Ton Roosendaal
4e24bcf6c9 Testing commit for OS X trackpad and scroll events.
Now:
- code is wrapped for OS X releases (10.6 and 10.7)
- It now detects scrollwheel (old mouse) and gesture strokes (mighty mouse or trackpad).

If you have 10.6, things will work as for release. 

Next todo for tomorrow: make trackpad work actually smooth and not with steps.
Will also try to figure out the device type, to handle mighty mouse differently.
2012-12-28 19:10:21 +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
Ton Roosendaal
357b02f65f Reversion of previous fix for Mac OS X scrollwheel,
it appears I used 10.7+ options, fails for 10.6.

Back to drawing board!
2012-12-28 16:11:04 +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
Ton Roosendaal
9f9e35c82a Bugfix #33681
Blender didn't detect properly whether event came from a mouse-wheel or
from a trackpad in OS X.

Now you can both, and both are handled independently.

Removed back hack from 2 years ago - which disabled mouse wheel for laptops.
2012-12-28 12:48:45 +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