Commit Graph

974 Commits

Author SHA1 Message Date
Brecht Van Lommel
34707c19f2 Fix 34764: cycles issue rendering instanced mesh with NaN coordinates. 2013-04-09 20:48:53 +00:00
Brecht Van Lommel
e802efb7af Fix #34740: cycles rendering issue mixing glossy/glass BSDF's with zero or very
low roughness and same index of refraction.

Problem was bad float precision due to low roughness, which caused the pdf for
the different closures to not match properly.
2013-04-09 15:24:20 +00:00
Brecht Van Lommel
7cb4d78b52 Fix #34921: cycles rendered a specific scene with a small high poly object
contained in a large low poly object very slow, due to failure case of fast
multithread BVH binning. Tweaked parameter now to avoid this.
2013-04-08 20:04:03 +00:00
Thomas Dinges
68fc443194 Cycles UI:
* Revert ui.py changes from r55868, I merged that over manually with tweaks in r55858.
2013-04-07 08:42:08 +00:00
Tamito Kajiyama
4c42f5c8a9 Missing updates in the doc/ and intern/ folders during the merger in revision 55847. 2013-04-07 06:56:49 +00:00
Campbell Barton
63d523336f freestyle lineset tag attribute was defined but not used, also some code cleanup. 2013-04-07 01:38:03 +00:00
Thomas Dinges
9c117ba54e Properties Editor / Render Layers:
* Cycles Render layers UI was broken after freestyle merge (changes were not merged). Did manual edits now with some tweaks.
* Some layout fixes for Mask Layer.
2013-04-06 23:05:32 +00:00
Gaia Clary
92b6365e21 fix: #34871 Cycles/CUDA/sm_35: Build problems probably due to issues with float3 operators (on windows?) 2013-04-06 11:52:40 +00:00
Brecht Van Lommel
cf3ec257a2 Fix #34880: cycles motion blur render issue with some compilers. Actually is a bigger
problem where accessing float4 members with [] stops working due to optimizer, will
check that later.
2013-04-05 23:03:10 +00:00
Brecht Van Lommel
7404c1a553 Fix another part of #34877: cycles progress status text not showing correct with
per render layer samples in addition to the progress bar.

Also fixed job progress bar not working at all on high DPI / retina, was so small
the actual progress was not visible.
2013-04-05 17:57:26 +00:00
Thomas Dinges
5e0cdd6473 Code cleanup / Cycles / Object Attributes:
* Change some long "else if" conditions into switch case.
2013-04-05 17:03:59 +00:00
Sergey Sharybin
394a45a645 Fix #34877: The render status feedback (progress bar) does not take into account specific Renderlayer samples 2013-04-05 16:59:19 +00:00
Brecht Van Lommel
3863e72c73 Fix #34679: cycles image texture alpha fringes. New rule is now that color output
will not give straight RGB values if the alpha output is used, so that mixing with
a transparent BSDF gives the correct result.
2013-04-05 16:43:53 +00:00
Brecht Van Lommel
54363910bc Attempt to fix #34871: random CUDA 3.5 compile failure due to recent change. 2013-04-04 23:52:33 +00:00
Brecht Van Lommel
c77f46d2dd Fix #34601: cycles OSL crash when using preview render and viewport render at
the same time, due to shared texture cache system.
2013-04-04 23:48:07 +00:00
Brecht Van Lommel
4c8e70d049 Fix #34700: orthographic camera DOF was still not working correct. 2013-04-03 17:32:30 +00:00
Brecht Van Lommel
743552ff2a Fix #34852: multilayer SSS material rendering different in progressive and
non-progressive integrator.
2013-04-03 16:12:13 +00:00
Brecht Van Lommel
5c74e6dae2 Cycles: small code cleanup + fix SSS closure mixed with other closures doing
a bit too much work.
2013-04-02 16:37:28 +00:00
Brecht Van Lommel
be1a5a2328 Fix 34831: SSS issue with non-progressive render, due to error in closure merging code. 2013-04-02 15:53:24 +00:00
Brecht Van Lommel
952f03150f Fix #34832: SSS render freeze with object instances. 2013-04-02 14:19:05 +00:00
Brecht Van Lommel
5ac6e1ae84 Fix #34833: crash using SSS node on windows, invalid memory access when building lookup table. 2013-04-02 13:34:50 +00:00
Brecht Van Lommel
de9dffc61e Cycles: initial subsurface multiple scattering support. It's not working as
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
2013-04-01 20:26:52 +00:00
Brecht Van Lommel
40b05d364e Cycles: code refactoring to add generic lookup table memory. 2013-04-01 20:26:43 +00:00
Thomas Dinges
2c58e96685 Cycles / Shader Graph optimization:
* Unnecessary shader inputs inside the Mix Shader are now ignored, in case the factor is 0.0 / 1.0 and not connected. 
This way we save some render time for complex node graphs. 

Example: http://www.pasteall.org/pic/show.php?id=48226
Check the Mix Shader at the end: In this case, Cycles will now avoid the complete huge shader tree, and only calculate the Diffuse Shader.
Rendertime decreased from 1:50 min to 1:20 min on CPU. GPU rendering benefits as well from this. 

This only affects SVM, OSL was already doing these optimizations.
2013-03-31 01:18:10 +00:00
Campbell Barton
1777a69818 misc minor edits.
- pass string size to BLI_timestr() to avoid possible buffer overrun.
- quiet warning for mingw.
- include guards for windows utf conversion funcs.
- fix for mistage in edge-angle-selection check.
- some style cleanup.
2013-03-29 06:25:22 +00:00
Campbell Barton
8e3d590b76 code cleanup: python/pep8 and double-promotion warnings. 2013-03-28 19:33:14 +00:00
Campbell Barton
d15d78a33a style cleanup: osl and NULL pointer use, also correct sequencer gap operator id's 2013-03-27 20:27:07 +00:00
Thomas Dinges
535253cad0 Cycles / SunSky:
* Use already calculated theta^2 for theta^3 calculation.
2013-03-27 19:44:25 +00:00
Thomas Dinges
bf2c46f5bd Code cleanup / Cycles:
* Remove unused variable from noise_wave().
2013-03-27 19:08:29 +00:00
Thomas Dinges
c4ae6f2c36 Fix for [#34747] Rendering invisible tiles
* reset_session() was not taking render percentage into account in case persistent_data was enabled.
* also deprecate old "maximsize" DNA variable.
2013-03-24 10:52:20 +00:00
Lukas Toenne
e2baf49d79 Fix for cycles group node bug, reported on IRC: Group nodes input proxies did not get their correct default value set. Forgot to add this during r55440 ... 2013-03-23 16:45:38 +00:00
Thomas Dinges
349c5ecc95 Cycles:
* Avoid an unnecessary condition in light.cpp, (totarea > 0.0f) is always true inside the "if(kintegrator->use_direct_light)" branch.
2013-03-23 10:11:29 +00:00
Thomas Dinges
5cbc000f05 Cycles:
* Move OpenGL settings out of the film panel into its own. 

Imho these should go completely elsewhere, but better separated than mixed with Cycles settings.
2013-03-23 07:09:04 +00:00
Campbell Barton
dd0e2da784 code cleanup: use booleans and const's for operator vars. 2013-03-22 04:40:45 +00:00
Brecht Van Lommel
5dbe5fc496 Fix #34700: cycles depth of field now works with orthographic cameras too. 2013-03-21 02:38:11 +00:00
Lukas Toenne
1c3b3321e7 Fix for #34708 and #34709, cycles group nodes were not working well with 0 or 2+ group input/output nodes.
The issue here was that the proxy nodes created for connecting extern group node sockets to the internal nodes were generated by the input/output nodes themselves.

0 input/output nodes: there would be no proxy that external group node sockets can map to
2+ input/output nodes: additional nodes would overwrite entries from previous nodes, so that only one of the input/output nodes would be used.

Solution is to always generate exactly 1 proxy node for every group socket in advance, regardless of whether it is used internally. Internal node sockets can then all map to this proxy node.

In the case out output nodes there should only ever be one active node, otherwise the connection to the proxy would be ambiguous. For this purpose the NODE_DO_OUTPUT flag has been exposed to RNA, so that cycles can check it and only use the active output.
2013-03-20 13:17:35 +00:00
Sergey Sharybin
6cdce15c3b Hopefully blender will compile with strict flags again. 2013-03-18 19:27:31 +00:00
Lukas Toenne
4638e5f99a Merge of the PyNodes branch (aka "custom nodes") into trunk.
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements.

=== Dynamic node type registration ===
Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes.

Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2].

=== Node group improvements ===
Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3].

The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there.

[1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes
[2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender
[3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2013-03-18 16:34:57 +00:00
Thomas Dinges
50c28740d4 Cycles / CUDA:
* Simplify Computing Capability Check, only check for major.
2013-03-17 14:32:50 +00:00
Thomas Dinges
5bea78301d Fix for [#34654] Cycles hair particle system modifier obeys viewport visibility as well
* Now Show Render and Show Viewport flags work independently and correct.
2013-03-16 08:49:39 +00:00
Sergey Sharybin
9d896f8f84 Border rendering now works for all scenes used in compositor,
before this only active scene would be rendered with border.

When do_render_fields_blur_3d() is finished, it'll modify
render's display rect so it'll correspond bordered render
result placed on black backgrund. Actual border is stored
nowhere, which makes it only way to re-calculate disprect
for all other renders used in compo based on source. Not
so big deal actually.

Also needed to modify Cycles a bit, because before this
patch it used border settings from scene being rendered.
Now made it so render data is passing to external engines.

Using a property inside RenderEngine structure for this.
Not best ever design for passing render data, but this
would prevent API breakage. So now external engines could
access engine.render to access active rendering settings.

Reviewed by Brecht, thanks!
2013-03-14 07:38:37 +00:00
Thomas Dinges
56538ea685 Cycles / OSL:
* More small improvements: return immediately, and use "else if".
2013-03-10 00:42:47 +00:00
Thomas Dinges
5ac628fb47 Cycles / OSL:
* Avoid some conditional branches for the Noise texture and return immediately.
2013-03-10 00:11:52 +00:00
Brecht Van Lommel
e80b0db58c Fix #34508: particle emitter show/hide option did not work correct after
recent bugfix.
2013-03-03 15:07:18 +00:00
Brecht Van Lommel
69f746d04c Fix #34480: cycles hair render in dupligroup did hide the emitter properly in some cases. 2013-03-01 14:55:30 +00:00
Brecht Van Lommel
41935d10c9 Fix related to #34481: show units for camera aperature radius. 2013-03-01 14:06:20 +00:00
Bastien Montagne
1039135965 More UI messages fixes... 2013-02-28 15:31:20 +00:00
Brecht Van Lommel
0f91a283d4 Fix #34421: cycles viewport render stuck with no objects in the scene. 2013-02-26 17:06:05 +00:00
Thomas Dinges
51f22e639e Code cleanup:
* Cycles: Removed leftover include of "kernel_qbvh.h", which was removed in r51352.
2013-02-21 21:05:31 +00:00
Thomas Dinges
d4c97029ef Cycles GPU Rendering:
* Make Cycles aware of sm_35 (Tesla K20, GeForce GTX TITAN).

The CUDA Toolkit 5.0 is needed for that and this is not officially used yet, but people with access to such cards can start testing. (just build sm_35 kernels).
2013-02-21 17:16:32 +00:00