Commit Graph

187 Commits

Author SHA1 Message Date
e02b23b81a Render API: shader script node for custom shaders.
* Shader script node added, which stores either a link to a text datablock or
  file on disk, and has functions to add and remove sockets.
* Callback RenderEngine.update_script_node(self, node) added for render engines
  to compile the shader and update the node with new sockets.

Thanks to Thomas, Lukas and Dalai for the implementation.
2012-11-03 14:32:26 +00:00
f213ae0b19 style cleanup 2012-11-01 09:54:00 +00:00
8a2c30ac57 RNA C++ API improvements
Added support of such features, as:

- Ability to call RNA functions using C++ classes
  For example RenderEngine.tag_update

- Property setters (for scalars and arrays)
  Used Qt/jQuery-like getters/setters style, meaning Class.prop() is a getter,
  Class.prop(value) is a setter.

Still to come:

Collection functions are not currently registering inside a property
Meaning BlendData.meshes wouldn't be a subclass of BlendDataMeshes result
you'll need to explicitly create BlendDataMeshes for now instead of doing
BlendData.meshes.remove()
2012-10-22 17:34:16 +00:00
a99b377167 More UI messages fixes and tweaks, and BKE_report<->BKE_reportf. 2012-10-20 10:28:34 +00:00
397d316ab1 Fix render engine API compatibility breakage in end_result, this parameter
should have been optional.
2012-10-07 00:30:31 +00:00
fb8ffefd1d Revert a small part of r50813, so that we can build (actually, link) with Cycles!
Note: this is marked as hack/todo in cycles code, so it needs a proper fix, but at least it works, for now... ;)
2012-09-22 17:00:02 +00:00
6c1da4d022 code cleanup: make many functions static 2012-09-22 14:07:55 +00:00
068cceab6c fix for some errors reported by http://clang.blenderheads.org/trunk/ in r50384.
- when renderlayers could not be found in save_render_result_tile() blender would crash.
- RE_engine_end_result() / rna end_result() didn't set result argument as required.
... also some style cleanup.
2012-09-04 18:27:47 +00:00
adea12cb01 Cycles: merge of changes from tomato branch.
Regular rendering now works tiled, and supports save buffers to save memory
during render and cache render results.

Brick texture node by Thomas.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Brick_Texture

Image texture Blended Box Mapping.
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes/Textures#Image_Texture
http://mango.blender.org/production/blended_box/

Various bug fixes by Sergey and Campbell.
* Fix for reading freed memory in some node setups.
* Fix incorrect memory read when synchronizing mesh motion.
* Fix crash appearing when direct light usage is different on different layers.
* Fix for vector pass gives wrong result in some circumstances.
* Fix for wrong resolution used for rendering Render Layer node.
* Option to cancel rendering when doing initial synchronization.
* No more texture limit when using CPU render.
* Many fixes for new tiled rendering.
2012-09-04 13:29:07 +00:00
aaafa0c2fe code cleanup: move file string defines into BLI_path_utils.h, BKE_utildefines is now unused but keep incase we want to add defines there later. 2012-09-03 22:04:14 +00:00
a9f6e54384 style cleanup: mostly whitespace in rna 2012-05-12 11:01:29 +00:00
6fed4fdd5e Style cleanup (mostly line length, also no final point in tips...). 2012-04-15 13:41:07 +00:00
b219b5294b Fix #30376: cycles ignores camera override from sequencer. 2012-04-13 17:42:03 +00:00
ed43b652ee Code style edits (mostly spliting long lines, and removing trailing spaces).
Note about long lines: I did not touch to two pieces of code (because I don’t see any way to keep a nicely formated, compact code, with shorter lines):
* The node types definitions into rna_nodetree_types.h
* The vgroup name functions into rna_particle.c
2012-03-18 09:27:36 +00:00
0114d78c33 Code cleanup in rna files (huge, higly automated with py script).
Addresses:
* C++ comments.
* Spaces after if/for/while/switch statements.
* Spaces around assignment operators.
2012-03-05 23:30:41 +00:00
f99343d3b8 Cycles: Render Passes
Currently supported passes:
* Combined, Z, Normal, Object Index, Material Index, Emission, Environment,
  Diffuse/Glossy/Transmission x Direct/Indirect/Color

Not supported yet:
* UV, Vector, Mist

Only enabled for CPU devices at the moment, will do GPU tweaks tommorrow,
also for environment importance sampling.

Documentation:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Passes
2012-01-25 17:23:52 +00:00
dca15b215d Cycles: svn merge -r41613:41627 ^/trunk/blender 2011-11-07 17:13:32 +00:00
ac52c79cb1 RenderEngine/Nodes: system to check for shading nodes compatibility
* Scene.use_shading_nodes property to check if RenderEngine is using new shading
  nodes system, and RenderEngine.bl_use_shading_nodes to set this.
* Add mechanism for tagging nodes as being compatible with the old/new system.
2011-11-02 19:24:30 +00:00
97a0ae3e1b RenderEngine api: support for viewport rendering, details here:
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/RenderEngineAPI

* This adds a Rendered draw type in the 3D view, only available when
  the render engine implements the view_draw callback.
* 3D view now stores a pointer to a RenderEngine.

* view_draw() callback will do OpenGL drawing instead of the viewport.
* view_update() callback is called after depsgraph updates.
2011-11-02 18:20:53 +00:00
02fae3440c Cycles: RenderEngine api code tweaks, also ensuring it's backwards compatible. 2011-11-02 15:15:45 +00:00
e07389ccb8 RenderEngine: steps towards implementation of this proposal:
http://wiki.blender.org/index.php/Dev:2.6/Source/Render/RenderEngineAPI

* RenderEngine is now a persistent python object that exists and retains
  properties as long as a frame is being rendered. This is mostly useful now
  that more than one callback will be added.
* Added update() callback that should ideally be used to export the scene,
  leaving only the rendering to the render() callback. This is not required to
  be used at this point, but separating this will make things more thread safe
  later on.
* Added tag_redraw() and tag_update() functions that will be used for viewport
  rendering.
* Internal change: status text is now retained after update_status calls.
2011-11-02 14:33:14 +00:00
79a389ee37 RenderEngine: add .is_animation and .is_preview properties to detect if it's
an animation or preview render that is being done.
2011-11-02 13:36:28 +00:00
4cd1e6337e Cycles: svn merge -r41225:41232 ^/trunk/blender 2011-10-24 22:32:00 +00:00
4a04f72069 remove $Id: tags after discussion on the mailign list: http://markmail.org/message/fp7ozcywxum3ar7n 2011-10-23 17:52:20 +00:00
29f279e43d Render API: add update_progress() function to update progress bar progress from
external render engines.

Also refactoring to move some render engine registration stuff out of RNA and
into render module.
2011-10-22 17:01:54 +00:00
1bdf652b89 Code refactoring: move external engine functions into own file. 2011-10-22 16:24:28 +00:00
10af15b85b Cycles: svn merge -r40934:41157 ^/trunk/blender 2011-10-21 20:13:12 +00:00
0e66576f02 replace RNA function string lookups with direct assignments, currently the lookup returns the same pointer every time. some of these functions - panel/operator poll for eg, are called many times per redraw so while not a bottleneck its unnecessary. 2011-10-19 22:40:03 +00:00
d293d74942 Cycles: more tweaks to get old/new shading systems working better together, for
now also made non-material/world/lamp stuff use old texture datablocks, no time
to get this fully working now. Still some python tweaks to do to ensure the right
panels show.
2011-10-15 20:43:45 +00:00
85818c8209 Cycles: add python render engine option to use new shading nodes or not, instead
of hardcoded check for cycles. Also some other minor code cleaning tweaks.
2011-10-11 17:19:55 +00:00
4f33d65ba1 Cycles: svn merge -r40411:40934 ^/trunk/blender 2011-10-11 14:30:53 +00:00
646a397297 add a collection function slot for assignment (not used yet). 2011-10-01 15:40:32 +00:00
c589dec2ea add missing define for last commit and tag bl_label & bl_descriptions for translating too 2011-09-21 14:10:26 +00:00
153e4cad4b Cycles: svn merge -r40266:40358 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-09-19 14:20:15 +00:00
1794767171 /blender/makesrna: Removed final points in UI strings and messages.
Plus a few splits of very long lines…
2011-09-19 13:23:58 +00:00
c40492205b Cycles:
* Remove RE_DO_RENDERED again, check for view_draw callback is sufficient.
2011-09-12 11:59:13 +00:00
bf4f793b55 Cycles Render API:
* Show Rendered Viewport Shading only when the engine supports it.
Only enabled for Cycles now.
* Added RenderEngine flag RE_DO_RENDERED, which is an optional flag.
Exposed as bl_use_rendered in Python.

ToDo: When you are in Rendered mode and change to a engine which does not support it, the enum doesn't set properly to OB_SOLID.
2011-09-11 23:44:20 +00:00
c7fce6be2e Cycles: svn merge -r39132:39457 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-08-16 18:59:45 +00:00
ec26abd2db Cycles: svn merge -r37957:39132 https://svn.blender.org/svnroot/bf-blender/trunk/blender 2011-08-07 13:21:04 +00:00
830fe8af84 Updated the indent, sorry! 2011-07-04 19:22:37 +00:00
c4491f558b Current situation
A mesh can consist out of multiple material. Take a character with clothing's. the skin can be a different material as the different clothing's. During compositing it is a common use-case to only do a part of the composit on only a specific material. Currently this can not be done.

In blender movies this feature is known to be implemented, but until now it never got integrated into trunk.
Proposal

With material index the Blender internal renderer will be capable of creating a buffer containing the material indexes of the first pixel-hit. This will be implemented in the same manner as the object index.

In the compositor the ID Mask node can be used to extract the information out of the Render pass.
Impact
User interface

On the properties-space the next changes will be done

    Scene⇒Render layer⇒Passes⇒Material index will be added
    Material⇒Options⇒Pass index will be added

DNA

    Material struct will get an new field called “index”. this will be a short-type.
    Material struct the field pad will be removed.
    A new Render-layer pass will be added (bit 1«18)

RNA

    Material RNA is updated (based on “pass index” from object)
    Render layer RNA is updated (based on IndexOB)

Blender internal renderer

The Blender internal renderer will process the render pass as a copy of the Object index.
Blender compositor

The render layer input will get a new output socket called “IndexMA”
Usage

An example on how to use material index can be found at:

https://svn.blender.org/svnroot/bf-blender/trunk/lib/tests/compositing/composite_materialindex.blend

This is also example of a commit message longer than the commit itself :)
2011-07-04 18:14:41 +00:00
8ddd2db648 RenderEngine API: add self.report() error reporting function for render engines,
works the same as for operators. Also includes some refactoring of render error
reporting code to use ReportList.
2011-06-28 16:25:07 +00:00
6a128eee7b Cycles: svn merge -r36777:37040 https://svn.blender.org/svnroot/bf-blender/trunk/blender/ 2011-05-31 09:51:46 +00:00
348f947d80 tag unused rna args. 2011-05-31 02:14:25 +00:00
88d9d89c97 Cycles: svn merge -r36495:36747 https://svn.blender.org/svnroot/bf-blender/trunk/blender/ 2011-05-18 13:56:20 +00:00
66f51ba5d1 RNA: make mechanism used by operators to keep python instance alive more generic, to be used by render engine later. 2011-05-18 11:21:10 +00:00
178ba76b09 RNA: pass Main rather than Context to register/unregister callbacks. 2011-05-18 10:56:26 +00:00
0365e38c06 Render API: RenderEngine.update_progress function to set progress percentage. 2011-05-17 15:39:40 +00:00
0a1223c87e Render API: add self.report() function for RenderEngine, for reporting warnings and errors. 2011-05-17 15:20:12 +00:00
8da594c861 Render API: first step in updating RenderEngine to work according to:
http://wiki.blender.org/index.php/Dev:2.5/Source/Render/RenderEngineAPI
2011-05-17 14:26:45 +00:00