Commit Graph

6295 Commits

Author SHA1 Message Date
Ton Roosendaal
24321d4891 Solving ancient Blender window sizing issue;
- Removed grid-snapping for area coordinates on scaling windows. 
  That caused the areas to shrink or expand, and eventually corrupt screen layouts.

- Added simple but efficient life resize for OSX. I need to know why this is so much
  code for Windows... I suggest Windows to just copy same method; dispatch the queue,
  and just let the event system draw.
2013-05-25 14:08:56 +00:00
Thomas Dinges
9bf7a2a8c4 Cycles / Wireframe node:
* Make sure we have valid geometry data, fixes a crash with Lamp objects.

Reported by lichtwerk in IRC, thanks!
2013-05-25 13:34:21 +00:00
Thomas Dinges
99b325cebf Cycles / Toon BSDF:
* 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
2013-05-23 17:45:20 +00:00
Daniel Genrich
6a290d8e2a Smoke: Remove accidental leftover code from gSoC Smoke + my Smoke code merge.
Thanks to Miika for pointing this issue out and fixing it.
2013-05-21 19:52:22 +00:00
Miika Hamalainen
2345f0ee99 Fix: Smoke simulations of very high resolutions often produced weird results, as if smoke was colliding in an invisible wall.
This was caused by a "hack" Daniel Genrich introduced in his moving obstacles commit in r46050. I suppose it was originally added to prevent issues with too fast moving obstacles, but now it ended up limiting maximum velocity of higher resolution simulations.

Here is an comparision of 184 resolution simulation (simulation area limited by adaptive domain):
https://www.miikah.org/blender/smoke_with_pressure_limit_hack.png
https://www.miikah.org/blender/smoke_without_pressure_limit_hack.png


I now reverted that hack until a better solution is found. Daniel, can you check this out? Pressure was limited to maximum of dt * dx (= dt / res) which doesn't make sense to limit pressure based on grid resolution. Maybe better to limit with a constant factor instead?
2013-05-21 19:20:48 +00:00
Miika Hamalainen
f276f7f2ef Fix: Smoke simulator produced slightly different results on every run if openmp was enabled.
This was a typical threading issue. Move that particular function out of the parallel block.
2013-05-21 18:57:19 +00:00
Thomas Dinges
6b7d2ed8b6 Code cleanup / Cycles:
* Use M_2PI_F in more places and do multiplication instead of division in gradient texture.
2013-05-21 13:22:11 +00:00
Thomas Dinges
54bb3077e1 Code cleanup / Cycles:
* Re-use already defined Westin closure class.
2013-05-21 13:15:27 +00:00
Brecht Van Lommel
b11dc51974 Fix compiler warnings with westin OSL code. 2013-05-21 10:13:47 +00:00
Brecht Van Lommel
bc0e3ffc0c Fix build error after removing return value from MEM_freeN. 2013-05-21 10:13:42 +00:00
Campbell Barton
cd6b27f2b5 remove return value from MEM_freeN, it wasn't used anywhere and was cast to a different function signature. (which evidently works but error prone). 2013-05-21 07:37:59 +00:00
Campbell Barton
6de829cb7a code cleanup: split scons includes onto multiple lines, reduce chance of include conflicts later on. 2013-05-20 18:42:28 +00:00
Miika Hamalainen
53fd499d28 Fix: smoke noise tile was saved in Blender executable directory, which is often write protected on modern systems.
This caused high resolution smoke to always regenerate new tile when domain was reinitialized, slowing down especially adaptive domain simulations. Now noise tile is saved in Blender temp directory instead.
2013-05-20 17:48:16 +00:00
Thomas Dinges
3758193c18 Cycles / Wireframe node:
* 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
2013-05-20 15:58:37 +00:00
Thomas Dinges
38dc85f296 Math Node:
* Added a Modulo operation to the math node, available in Compositor, Shader and Texture Nodes.
2013-05-20 14:38:47 +00:00
Thomas Dinges
289ca57e7a Code Cleanup / Cycles:
* Remove an unused parameter from Checker texture and correct a typo in license header.
2013-05-20 00:26:48 +00:00
Campbell Barton
6adec303db revert (ifdef) r54745. which enbabled alpha in the GL buffer.
looks to be the cause of bug [#35415]

we can make this optional.
2013-05-19 11:39:22 +00:00
Thomas Dinges
d12a5d8d63 Cycles:
* Fix OSL compilation for scene_intersect(), when __Hair__ was disabled.
2013-05-18 22:40:21 +00:00
Thomas Dinges
eaf493d323 Cycles / OSL:
* 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).
2013-05-18 14:36:03 +00:00
Brecht Van Lommel
423ffa6043 Painting / Sculpting: more tweaks to pressure sensitivity
* Also do pressure interpolation for brush size and spacing.
* Do smoothing of pressure when smooth stroke and sample average is enabled.
* Revert the OS X specific pressure change to pressure ^ 2.5, for low pressure
  values like 0.05 it makes the pressure 100x lower, which is problematic. If
  we need to adjust the pressure curve it should be done for all platforms.

Still weak:

* Pressure of first touch on tablet is difficult to control, usually it's low
  which makes the stroke start out small or soft, but other times not. Finer
  event capturing at ghost level would help, along with pressure changes without
  mouse movement, but this may also need different paint stroke logic.
* Brush radius is rounded to integers, this gives noticeable stepping.
* Brush falloff is not antialiased, gives noticeable aliasing for small brush
  sizes which was always a problem, but is more common with size pressure control.
2013-05-18 11:25:24 +00:00
Thomas Dinges
75e36650e3 Code cleanup / Cycles:
* Simplify shaperadius() function a bit to avoid castings.
* Style cleanup 1.f -> 1.0f, to follow rest of Cycles code.
2013-05-18 11:04:29 +00:00
Bastien Montagne
9d567dd366 This commit addresses the somewhat weak handling of stackless textures in Blender with default (BI) renderer. To do so, it's defining an "other" texture context, and when in this one, it switches to using the "new shading" texture handling already known with Cycles engine.
So now, in the new "other" tex context, you can (depending on active data) have direct access to modifiers', force's or brushes' textures...

I also refactored a bit how texture contexts are handled (once again, we had some quite similar code in both space_buttons and RNA sources). This should also solve some harmless glitches like "no texture context selected in UI" sometimes when you remove data related to current texture (see e.g. after removing the material from default cube, in startup scene).

This usage of two different systems for textures, and the handling of switches between them, has been a bit tricky to get working right, but it is OK now I think. I also had to add a bool flag to buttons space, SB_TEX_USER_LIMITED (use_limited_texture_context in RNA), which indicates "new shading" texture code whether it has to ignore materials, lamps etc. (BI) or not (Cycles).

Btw, pinned textures from modifiers/force/etc. were also broken (showing nothing), now it should work too.

Thanks to Brecht for reviewing.
2013-05-17 07:10:10 +00:00
Thomas Dinges
616bc9d68f Code cleanup / Cycles:
* Put render resolution x/y into a function.
2013-05-16 21:53:21 +00:00
Thomas Dinges
8e487bebd3 Cycles / BSSRDF:
* Avoid one max() call for the bssrdf radius, the if condition already checks for values < BSSRDF_MIN_RADIUS.
2013-05-16 18:39:45 +00:00
Campbell Barton
f334df5624 code cleanup: double promotion warnings. 2013-05-16 17:20:56 +00:00
Thomas Dinges
34ba69d576 * This is embarrassing... 2013-05-16 15:59:05 +00:00
Thomas Dinges
4475de5bd8 Cycles:
* Revert part of r56832, if code gets more complicated, it's better to keep it more logical here.
2013-05-16 15:47:09 +00:00
Thomas Dinges
9b59e2b95a Code cleanup / Cycles:
* Some simplification of closure code (Velvet and Toon).
2013-05-15 20:38:17 +00:00
Brecht Van Lommel
693f687ebf Fix cycles CUDA error with world multiple importance sampling, after recent OpenCL fixes. 2013-05-15 19:02:30 +00:00
Thomas Dinges
11707119de Cycles:
* Code cleanup, remove unused "resolution" variable from the DeviceTask class, was never used.
2013-05-14 21:18:20 +00:00
Thomas Dinges
1f3bf34ccd Cycles :
* Use is_zero(a) rather than dot(a, a) == 0, saves some calculations.
2013-05-14 18:31:55 +00:00
Brecht Van Lommel
cd3283f573 Cycles CUDA: in case of cryptic error messages in the console, refer to wiki
documentation for possible solutions.
2013-05-13 21:36:48 +00:00
Brecht Van Lommel
213408d4c9 Fix #35340: 3D manipulator not working right after undoing with cmd+Z on OS X.
Another issue with the recent Ghost changes here. For some reason key up events
are not coming through when the command key is pressed. I can't figure out why,
for now just always handle them, still fixes the original bug.
2013-05-13 21:19:30 +00:00
Jürgen Herrmann
3d3a4e8eec Patch [#35234]:
Fix GetWindowsLon and SetWindowsLong issues with VS2012 and Windows 8.
Remove unneeded #ifdef block for GWL_WNDPROC and GWL_USERDATA
2013-05-13 20:27:05 +00:00
Thomas Dinges
d76b758f23 Cycles:
* Fix compile error, when building with __KERNEL_SSE__
2013-05-13 15:31:59 +00:00
Brecht Van Lommel
5c2355d364 Fix ctrl+(shift)+tab shortcut key not working on OS X after recent bugfix to
interact better with system shortcuts.

This is a special shortcut for switching between views and does not get
delivered directly to our view when we pass it through the application key
event handling path. We only have a single OpenGL view, so there's no need to
pass it on to the application, instead just interpret it directly.
2013-05-12 22:15:05 +00:00
Thomas Dinges
d46480377c Cycles / Orthographic Camera:
* Avoid one unneeded division by 1.0f and save one variable assignment.
2013-05-12 17:14:01 +00:00
Thomas Dinges
7636aeffe1 Cycles / Math:
* Add M_2PI_F and M_4PI_F constants and use them inside the codebase.
2013-05-12 14:13:29 +00:00
Campbell Barton
7b707fff56 correct assert for driver evaluation,
also add asserts for listbase functions when the list is NULL, and use noreturn attribute for jpeg_error.
2013-05-12 05:54:33 +00:00
Brecht Van Lommel
f35a9328e0 Fix for previous fix, not sure it will cause issues in practice but better be
sure to avoid invalid memory access.
2013-05-11 12:21:33 +00:00
Brecht Van Lommel
a919b0e4c3 Fix #35265: on OS X, pressing system shortcuts such as cmd+M or cmd+` would both
insert text in the text editor and do the associated operation like minimizing the
window or switching windows.

The code was always doing both without trying to ensure only one is done. Now we
integrate a bit better with the event handling and pass the event to NSApp, which
then decides to handle the event itself or pass it on to the window, from where
we then send it back to be handled.
2013-05-11 10:15:27 +00:00
Brecht Van Lommel
561cf26c2f Fix #35306: cycles normal mapping not working with flat shading. 2013-05-11 09:31:58 +00:00
Thomas Dinges
4ae201e105 Cycles / Closures:
* Avoid some unnecessary re-declarations of closure data and simplify *_setup() functions a bit.
2013-05-10 22:41:24 +00:00
Brecht Van Lommel
eaa6479ae3 Cycles: bump node changes to add a Distance input that controls the overall displacement
distance, and an Invert option to invert the bump effect.
2013-05-10 16:57:17 +00:00
Brecht Van Lommel
8e9b6daa8e Fix for recent bugfix with anisotropic node crash, could do invalid memory access. 2013-05-10 15:10:54 +00:00
Brecht Van Lommel
31e39e9b0e Cycles: add Use Surfaces and Use Hair option to render layers, to disable rendering
of hair and surfaces, similar to blender internal options.
2013-05-10 13:34:49 +00:00
Thomas Dinges
96a11219f6 Code cleanup / Cycles:
* Change some more if / else if conditions to switch / case. 
* Avoid an unneeded variable casting in phong_ramp closure.
2013-05-10 12:51:30 +00:00
Brecht Van Lommel
34d7392297 Fix #35282: cycles color ramp set to constant interpolation did not work well. 2013-05-10 11:44:24 +00:00
Brecht Van Lommel
e46551246c Fix #35272: cycles GPU crash with anisotropic shader in group node.
Problem was that due to group proxy node the anisotropic node did not detect
early enough that it needs generated texture coordinate data to generate the
tangent. Now the proxy nodes are removed earlier.
2013-05-10 11:31:57 +00:00
Thomas Dinges
522eeaa6a0 Cycles / OpenCL:
* Remove old comment for sm_13 cards and really check for OpenCL 1.1.
2013-05-09 16:16:41 +00:00