Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2015-10-08Cycles: Fix for point density always using render settings for modifiersSergey Sharybin
2015-09-21Render: Free persistent image storage when loading new fileSergey Sharybin
2015-07-27Replace MFace with looptri for dynamicpaintCampbell Barton
D1429 by @lichtwerk, with edits
2015-07-25Compositor: Fixes for the debug passSergey Sharybin
This commit fixes issues with wrong socket type being added to the Cycles debug pass compositor operation, which lead to crashes with non-value pass types. This commit also reverts socket renaming thing because while it's was behaving ok on runtime file reload might have loose the links which is annoying.
2015-07-24Deduplicate some logic around debug passesSergey Sharybin
2015-07-18Point density: Add utility function to sample density outside of render pipelineSergey Sharybin
Not currently used, it's a preparation for the further work. Should not be functional changes.
2015-07-14Particle Info node support for GLSL mode and the internal render.Alexander Romanov
With this patch "Particle Info" node from Cycles works in GLSL and BI Alexander (Blend4Web Team) Reviewers: psy-fi Note: moved particle info to object render instance instead of shadeinput during review - Antony. Differential Revision: https://developer.blender.org/D1313
2015-06-12Cycles: Add debug pass which shows number of instance pushes during camera ↵Sergey Sharybin
ray intersection TODO: We might want to refactor debug passes into PASS_DEBUG and some debug_type (similar to Blender's side passes) to avoid issue of running out of bits.
2015-06-11Cycles: Add debug pass showing average number of ray bounces per pixelSergey Sharybin
Quite straightforward implementation, but still needs some work for the split kernel. Includes both regular and split kernel implementation for that. The pass is not exposed to the interface yet because it's currently not really easy to have same pass listed in the menu multiple times.
2015-05-18Multi-View: small cleranup/refactor with RE_pass_find_by_type and ↵Dalai Felinto
RE_RenderLayerGetPass
2015-05-06Shader node: support native render capabilitiesCampbell Barton
D1188 by @a.romanov
2015-04-29Multi-View cleanup: using RenderResult->rect* only for temporary RenderResultsDalai Felinto
Originally I wanted to get rid of RenderResult->rect* entirely, but it's convenient to have for temporary structs. This patch makes sure they are used only when really needed, which should help clearing the code out. (they are needed when using RE_AcquireResultImage() - which produces a RenderResult with no RenderView) Reviewers: sergey Differential Revision: https://developer.blender.org/D1270
2015-04-29Multi-View: new util functions RE_RenderViewGetById() and ↵Dalai Felinto
RE_RenderViewGetByName() Both functions try to find a valid RenderView and if they can't they fallback to the first RenderView of the RenderResult
2015-04-27Fix T44512: Cycles fails normal bake /w scale flipCampbell Barton
2015-04-21Stamp refactoring:Antony Riakiotakis
Write those on render result during rendering, so we can cleanly write a render result image after rendering.
2015-04-17Bake-API: reduce memory footprint when baking more than one object (Fix T41092)Dalai Felinto
Combine all the highpoly pixel arrays into a single array with a lookup object_id for each of the highpoly objects. Note: This changes the Bake API, external engines should refer to the bake_api.c for the latest API. Many thanks for Sergey Sharybin for the complete review, changes suggestion and feedback. (you rock!) Reviewers: sergey Subscribers: pildanovak, marcclintdion, monio, metalliandy, brecht Maniphest Tasks: T41092 Differential Revision: https://developer.blender.org/D772
2015-04-17Fix T44336: Unable to select cycles-specific passes in UV/image editorDalai Felinto
This approach gets rid of iuser->pass for good. Also, I'm commenting out the pass increase/decrease. This was broken since multiview. I will fix it later (before 2.75), but I didn't want to get this patch mangled with that fix. Thanks Sergey Sharybin for the review and feedbacks. Reviewers: sergey Differential Revision: https://developer.blender.org/D1232
2015-04-09Fix regression after multiview, basically we appended the wrong framesAntony Riakiotakis
to movie file. We have to resort to use crappy workarounds with preview arguments again since preview range is only for OpenGL preview.
2015-04-06Multi-View and Stereo 3DDalai Felinto
Official Documentation: http://www.blender.org/manual/render/workflows/multiview.html Implemented Features ==================== Builtin Stereo Camera * Convergence Mode * Interocular Distance * Convergence Distance * Pivot Mode Viewport * Cameras * Plane * Volume Compositor * View Switch Node * Image Node Multi-View OpenEXR support Sequencer * Image/Movie Strips 'Use Multiview' UV/Image Editor * Option to see Multi-View images in Stereo-3D or its individual images * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images I/O * Save/Open Multi-View (OpenEXR, Stereo3D, individual views) images Scene Render Views * Ability to have an arbitrary number of views in the scene Missing Bits ============ First rule of Multi-View bug report: If something is not working as it should *when Views is off* this is a severe bug, do mention this in the report. Second rule is, if something works *when Views is off* but doesn't (or crashes) when *Views is on*, this is a important bug. Do mention this in the report. Everything else is likely small todos, and may wait until we are sure none of the above is happening. Apart from that there are those known issues: * Compositor Image Node poorly working for Multi-View OpenEXR (this was working prefectly before the 'Use Multi-View' functionality) * Selecting camera from Multi-View when looking from camera is problematic * Animation Playback (ctrl+F11) doesn't support stereo formats * Wrong filepath when trying to play back animated scene * Viewport Rendering doesn't support Multi-View * Overscan Rendering * Fullscreen display modes need to warn the user * Object copy should be aware of views suffix Acknowledgments =============== * Francesco Siddi for the help with the original feature specs and design * Brecht Van Lommel for the original review of the code and design early on * Blender Foundation for the Development Fund to support the project wrap up Final patch reviewers: * Antony Riakiotakis (psy-fi) * Campbell Barton (ideasman42) * Julian Eisel (Severin) * Sergey Sharybin (nazgul) * Thomas Dinged (dingto) Code contributors of the original branch in github: * Alexey Akishin * Gabriel Caraballo
2015-03-28Cleanup: redundant struct declarationsCampbell Barton
2015-03-24Code cleanup: r_ prefix vs. _r suffixSergey Sharybin
2015-03-20Avoid per-draw allocation when drawing currently rendering tilesSergey Sharybin
2015-01-27Fix T43427: Particle system children sometimes not generated on reloadSergey Sharybin
The issue was caused by the conflict between preview render which would set R_NO_IMAGE_LOAD flag on the renderer and texture samplers called outside of the render pipeline trying to use this flag. Now the sampler functions accepts extra argument so render pipeline can still skip image load, but calls outside of the pipeline will nicely load all the images. Not cleanest change in the world but good enough to unlock gooseberry team, and assuming we already had pool passed all over the place it should be all fine. Will need to reshuffle arguments into SamplerOptions structure later.
2014-12-05Render API: Add RenderEngine.error_set() functionSergey Sharybin
This function sets an error message which would be displayed after rendering is over and info space lost the link to the engine.
2014-10-09Fix T42139, vertical noise stripe patterns in noise texture.Antony Riakiotakis
Two fixes here (only the second one is strictly needed to fix the issue, but both make the system better). First is introduction of a random generator array for use with threaded systems where each thread needs to access its own number generator. The random texture now uses this so it should not be influenced by other random generator reseedings of the main random generator like it did before. Second, I reshuffled the texture code to resample the upper bits of the random number first. According to Numerical Recipes, this is where the most variance can be found, so by sampling those we avoid correlation issues. Also, multiplying here is not ideal because if a pair of bits are zero, then the whole result will also be zero. Overall this is much more random (tm) than before, however result will also be brighter, since we now have less black spots. Tweaking the brightness/contrast should somewhat fix that, generally having the same result as before is not possible anyway if we are to really fix this. Also, seems like exposing procedural depth might be nice here since it influences the precision of the texture lookup.
2014-10-07Allow render engine to declare whether it's capable of the texture rendering ↵Sergey Sharybin
or not If render engine has bl_use_texture_preview set to truth blender wouldn't fallback to the blender internal rendering for previews.
2014-10-04Cycles: Add support for debug passesSergey Sharybin
Currently only summed number of traversal steps and intersections used by the camera ray intersection pass is implemented, but in the future we will support more debug passes which would help checking what things makes the scene slow. Example of such extra passes could be number of bounces, time spent on the shader tree evaluation and so. Implementation from the Cycles side is pretty much straightforward, could only mention here that it's a build-time option disabled by default. From the blender side it's implemented as a PASS_DEBUG with several subtypes possible. This way we don't need to create an extra DNA pass type for each of the debug passes, saving us a bits. Reviewers: campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D813
2014-08-19Fix T41457: Viewport resolution divider does freestyle for every resolutionSergey Sharybin
Now freestyle would be rendered for the final resolution only, making it so viewport navigation is really interactive.
2014-08-12Proof-of-concept implementation of Freestyle support for Cycles.Tamito Kajiyama
2014-07-31Bake-API: use size_t instead of width, heightDalai Felinto
(original patch by Sergey Sharybin) Note: RNA API can't use size_t at the moment. Once it does this patch can be tweaked a bit to fully benefit from size_t larger dimensions. (right now num_pixels is passed as int) Reviewed By: sergey, campbellbarton Differential Revision: https://developer.blender.org/D688
2014-07-04Fix T40843: Cycles does not support viewport render overrideSergey Sharybin
2014-06-20Implement resolution divider in the Blender InternalSergey Sharybin
Currently resolution divider is not exposed to the interface yet, and i'm not even sure it needs to be exposed because it's somewhat weird configuration. Need to check how often artists are changing start resolution in Cycles. Pretty much straightforward implementation with the only weak part: render result is getting re-allocated and upscaled when current resolution is finished. Not sure how to make it faster actually. Maybe it's just a matter of making upscale fast enough. Needed to fix some possible memory leak happening in Freestyle when canceling rendering on a special stage -- it was missing temp bmain free, Reviewers: campbellbarton, dingto CC: sebastian_k, fsiddi, venomgfx Differential Revision: https://developer.blender.org/D609
2014-06-17Bake-API: allow custom UV to be bakedDalai Felinto
Note: the custom UV option is only available when calling the operator via a script. It's currently not exposed in the UI since it's intended to be used by scripters To test it: bpy.ops.object.bake(type='UV', use_clear=True, uv_layer='MyNewUV') Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D546
2014-06-13Bake-API: handle objects with no faces (fix T40601)Dalai Felinto
Also it has a better error handling for the BVHTree creation Fix for 2.71
2014-06-11Bake-API: new approach for cageDalai Felinto
There is a new option to select whether you want to use cage or not. When not using cage the results will be more similar with Blender Internal, where the inwards rays (trying to hit the highpoly objects) don't always come from smooth normals. So if the active object has sharp edges and an EdgeSplit modifier you get bad corners. This is useful, however, to bake to planes without the need of adding extra loops around the edges. When cage is "on" the user can decide on setting a cage extrusion or to pick a Custom Cage object. The cage extrusion option works in a duplicated copy of the active object with EdgeSplit modifiers removed to inforce smooth normals. The custom cage option takes an object with the same number of faces as the active object (and the same face ordering). The custom cage now controls the direction and the origin of the rays casted to the highpoly objects. The direction is a ray from the point in the cage mesh to the equivalent point to the base mesh. That means the face normals are entirely ignored when using a cage object. For developers: When using an object cage the ray is calculated from the cage mesh to the base mesh. It uses the barycentric coordinate from the base mesh UV, so we expect both meshes to have the same primitive ids (which won't be the case if the cage gets edited in a destructive way). That fixes T40023 (giving the expected result when 'use_cage' is false). Thanks for Andy Davies (metalliandy) for the consulting with normal baking workflow and extensive testing. His 'stress-test' file will be added later to our svn tests folder. (The file itself is not public yet since he still has to add testing notes to it). Many thanks for the reviewers. More on cages: http://wiki.polycount.com/NormalMap/#Working_with_Cages Reviewers: campbellbarton, sergey CC: adriano, metalliandy, brecht, malkavian Differential Revision: https://developer.blender.org/D547
2014-05-30Bake-API: Support for batch bakingDalai Felinto
When "Selected to Active" is not on, we bake all the selected objects. This is the same behaviour we have for Blender Internal. Dev note: I moved most of the validation tests to outside the bake() routine so the function can be called in loop. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D560
2014-05-29Proper fix T40156 Cycles Baking and applyRotation issuesDalai Felinto
This should be the final fix for the applyrotation issue. It baffles me that the fix involves discarding the scale transformations for the normals but it works so I'm happy with it. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D554
2014-05-21Bake API: partial fix T40156 (applyRotation issues)Dalai Felinto
This fixes most of the cases, the only situation not addressed is when the highpoly object(s) has non-uniform scale. mul_transposed_mat3_m4_v3() should take care of non-uniform scales so I'm a bit confused on why it doesn't work. The lowpoly object can have any transformation, the only issue is if the highpoly object has non-uniform scale. Test file of the remaining issue: https://developer.blender.org/file/info/PHID-FILE-tpw2xgddyzxtpg3e7xzs/ Reference reading: http://www.unknownroad.com/rtfm/graphics/rt_normals.html
2014-05-21Fix T39711: cycles particle motion blur affected by viewport draw method.Brecht Van Lommel
2014-05-03Bake API - bpy.ops.object.bake()Dalai Felinto
New operator that can calls a bake function to the current render engine when available. This commit provides no feature for the users, but allows external engines to be accessed by the operator and be integrated with the baking api. The API itself is simple. Blender sends a populated array of BakePixels to the renderer, and gets back an array of floats with the result. The Blender Internal (and multires) system is still running independent, but we eventually will pipe it through the API as well. Cycles baking will come next as a separated commit Python Operator: ---------------- The operator can be called with some arguments, or a user interface can be created for it. In that case the arguments can be ommited and the interface can expose the settings from bpy.context.scene.render.bake bpy.ops.object.bake(type='COMBINED', filepath="", width=512, height=512, margin=16, use_selected_to_active=False, cage_extrusion=0, cage="", normal_space='TANGENT', normal_r='POS_X', normal_g='POS_Y', normal_b='POS_Z', save_mode='INTERNAL', use_clear=False, use_split_materials=False, use_automatic_name=False) Note: external save mode is currently disabled. Supported Features: ------------------ * Margin - Baked result is extended this many pixels beyond the border of each UV "island," to soften seams in the texture. * Selected to Active - bake shading on the surface of selected object to the active object. The rays are cast from the lowpoly object inwards towards the highpoly object. If the highpoly object is not entirely involved by the lowpoly object, you can tweak the rays start point with Cage Extrusion. For even more control of the cage you can use a Cage object. * Cage Extrusion - distance to use for the inward ray cast when using selected to active * Custom Cage - object to use as cage (instead of the lowpoly object). * Normal swizzle - change the axis that gets mapped to RGB * Normal space - save as tangent or object normal spaces Supported Passes: ----------------- Any pass that is supported by Blender renderlayer system. Though it's up to the external engine to provide a valid enum with its supported passes. Normal passes get a special treatment since we post-process them to converted and "swizzled" Development Notes for External Engines: --------------------------------------- (read them in bake_api.c) * For a complete implementation example look at the Cycles Bake commit (next). Review: D421 Reviewed by: Campbell Barton, Brecht van Lommel, Sergey Sharybin, Thomas Dinge Normal map pipeline "consulting" by Andy Davies (metalliandy) Original design by Brecht van Lommel. The entire commit history can be found on the branch: bake-cycles
2014-05-02Fix T39985: crash while rendering a scene with compositing nodes using ↵Sergey Sharybin
another scene The issue was caused by the wrong scene used to acquire render result for. Now made it so render pipeline reports currently rendering scene to the job via special callback. This also solves missing tile highlight issue when rendering multiple scenes in the compositor.
2014-04-23Blender Internal: Add material property "Cast" which can disable both ray ↵IRIE Shinsuke
and buffer shadows. Also refactor: - Material property UI related to shadows - Preparation of OR-ed mode flags (ma->mode_l) of render materials Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D313
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-26Fix T38831: blender internal enabling shadow pass changes material node diffuse.Brecht Van Lommel
It would include/exclude shadow depending on the pass being disabled/enabled, but that should have no influence on the combined render result. Now it always includes shadow.
2014-02-26Nicer solution to T38846: Split off the render layer forcing from theLukas Tönne
validity check for render operator. This way scene DNA can stay read-only there, cleaner and we don't have to pass an awkward bool pointer around.
2014-02-26Fix T38846: Render layer checkbox is not refreshed.Lukas Tönne
The render operator invoke checks render layers, which can force the render layer to be activated. This requires a notifier, which has to be done in the operator itself (can't do this inside pipeline code).
2014-02-04Code cleanup: declarations for removed functionsCampbell Barton
2014-02-03Code cleanup: use bools where possibleCampbell Barton
2014-01-29Option to lock the interface while renderingSergey Sharybin
Added function called WM_set_locked_interface which does two things: - Prevents event queue from being handled, so no operators (see below) or values are even possible to run or change. This prevents any kind of "destructive" action performed from user while rendering. - Locks interface refresh for regions which does have lock set to truth in their template. Currently it's just a 3D viewport, but in the future more regions could be considered unsafe, or we could want to lock different parts of interface when doing different jobs. This is needed because 3D viewport could be using or changing the same data as renderer currently uses, leading to threading conflict. Notifiers are still allowed to handle, so render progress is seen on the screen, but would need to doublecheck on this, in terms some notifiers could be changing the data. For now interface locking happens for render job only in case "Lock Interface" checkbox is enabled. Other tools like backing would also benefit of this option. It is possible to mark operator as safe to be used in locked interface mode by adding OPTYPE_ALLOW_LOCKED bit to operator template flags. This bit is completely handled by wm_evem_system, not with operator run routines, so it's still possible to run operators from drivers and handlers. Currently allowed image editor navigation and zooming. Reviewers: brecht, campbellbarton Reviewed By: campbellbarton Differential Revision: https://developer.blender.org/D142
2014-01-25Fix T38353: some EXR files from other applications not loading correctly.Brecht Van Lommel
* EXR layers with names like 'Z' without any pass name were not loaded at all and would break the Combined pass as well. * EXR pass names longer than 16 characters where writing past the end of the array and getting invalid names.