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
2017-06-22Eevee: Interface and unitsDalai Felinto
We should use PROP_DISTANCE whenever appropriate. Also rename "Data Draw Size" > "Size" in the UI for the lightprobes.
2017-06-22Light Probes: interface changes, and renamesDalai Felinto
Although we are calling all of them light probes, there are a lot of differences between them. This commit does the following: * Prevent user from changing the probe type once added * Unify "sphere" and "cube" probes into reflection cubemap (as before you can switch between them from the probe UI) To be done ========== * Don't show add probe menus unless we are on Eevee * Light probes panels should not be visible in Clay. Light probe objects should not be visible in Clay viewport (nor on Cycles). Notes ===== * We need icons for the different light probes, and for lightprobes as a whole (we are using RADIO for now).
2017-06-22Indicate to users when manual conversion of Eevee materials is neededDalai Felinto
We now shows a report error when user opens a file that need fixing. It's fine(ish) to not do doversion. It's not fine to not communicate that.
2017-06-22Manipulator: target property definitionsCampbell Barton
Changes from custom-manipulator branch. - use property type definitions. - add property free callback. - move properties into the wmManipulator struct (over alloc). - use array length from property types instead of arg passing.
2017-06-22Fix T51863: CompositorNodeSwitchView have the wrong rna APIDalai Felinto
Although the original report was about the docs, the real issue was in the API. My original commit started from a copy-paste from the Switch Node. However I don't use custom1 for thew Switch View node. The docs is slightly incomplete since it would be nice to mention the views here. Or maybe even expose them via Python. But honestly they are generated depending on the scene multi-view settings.
2017-06-22Eevee: Ambient Occlusion: Enable Multibounce approximation and Change ↵Clément Foucault
influence factor. Making the influence a power for easy tuning. Works like a contrast knob.
2017-06-22Eevee: Ambient Occlusion: Initial implementation.Clément Foucault
Implement GTAO (Ground Truth Ambient Occlusion) which is a special case of Horizon Based Ambient Occlusion that is more physically accurate. Also add a bent normal option to sample indirect irradiance (diffuse lighting) with the least occluded direction.
2017-06-22Eevee: Improve material variation managment.Clément Foucault
- Unify variations between default shaders and material shader. - Only create default shader passes if needed. Downside is that we have a big array of passes and shading grp in the vedata ... And it will double in size each time a new variation flag is added.
2017-06-22Eevee: Ambient Occlusion: Add UI properties.Clément Foucault
2017-06-22Eevee: Minmax Depth Pyramid.Clément Foucault
This commit introduce the computation of a depth pyramid containing min and max depth values of the original depth buffer. This is useful for Clustered Light Culling but also for raytracing on the depth buffer (SSR). It's also usefull to have to fetch higher mips in order to improve texture cache usage. As of now, 1st mip (highest res) is half the resolution of the depth buffer, but everything is already done to be able to make a fullres copy of the depth buffer in the 1st mip instead of downsampling. Also, the texture used is RG_32F which is a too much but enough to cover the 24bits of the depth buffer. Reducing the texture size would make things quite faster.
2017-06-22GPUFramebuffer: Add recursive downsampling function.Clément Foucault
This special case function enables rendering to a miplevel while using the miplevels above as texture input. This is needed for some algorithm (i.e. creating a min-max depth pyramid texture).
2017-06-22GPUTexture: Support for nearest sampling with mipmaps.Clément Foucault
2017-06-21Fix T51862: principled shader GLSL artifacts in ortho mode.Brecht Van Lommel
2017-06-21Fix T51849: change Cycles clearcoat gloss to roughness.Brecht Van Lommel
This is compatible with UE4 and more consistent with specular and transmission roughness, even if it deviates from the original Disney BRDF.
2017-06-21Merge remote-tracking branch 'origin/master' into blender2.8Dalai Felinto
2017-06-21Fix T51856: `BKE_mesh_new_from_object()` would often generate default 'Mesh' ↵Bastien Montagne
named datablock. This is annoying especially for exporters who do use mesh name, since it broke any relation with actual Mesh naming in original Blend file. Unfortunately, we cannot avoid the extra .xxx digits. ;)
2017-06-21Manipulator: edit_properties -> target_propertiesCampbell Barton
Naming was too confusing between properties of a manipulator and properties it edits.
2017-06-21Manipulator: Move types into their own directoryCampbell Barton
2017-06-21Manipulators: move settings to ID propertiesCampbell Barton
This makes manipulator access closer to operators, and allows Python access. This adds RNA for manipulators, but not Python registration yet. - Split draw style into 2x settings: `draw_style` (enum) & `draw_options` (enum-flag) - Rename wmManipulator.properties -> properties_edit, Use wmManipulator.properties for ID-properties. Note that this area of the API will need further work since manipulators now have 2 kinds of properties & API's to access them.
2017-06-21PyAPI: add intern stringsCampbell Barton
Avoid string conversion on each use.
2017-06-21RNA: avoid many calls to 'RNA_struct_is_a'Campbell Barton
Quicker to find the ID-subtype then use direct pointer comparisons. Also modify `ID_code_to_RNA_type` so missing ID-codes raise a warning (handy when adding new ID types).
2017-06-20Introduce functions/options to indicate the type of renderDalai Felinto
We should be able to differentiate between OpenGL render (viewport render), offline render (F12), and view render (viewport draw). This allows for us preventing offline render to skip mode drawings, grid, ... Even OpenGL render can benefit from this forcing a higher quality anti-alias and sampling than the viewport drawing. I'm not sure if it's clever to keep the memset(0x00) outside the render loop function as it is in this patch. An alternative is to just pass the render "type" as a flag to the render function, and set DST.options inside it. (I may change this tomorrow, I will wait to hear from Campbell on that).
2017-06-20Fix: Icon alignment for scaled pie buttons with no textraa
2017-06-20Clean node names and organize menus for eeveeLuca Rood
This makes the node menus aware of the Cycles/Eevee distinction, and only show the relevant nodes for the current engine. Names have also been changed to accomodate for the new output node system.
2017-06-20Implement Eevee output node systemLuca Rood
This makes Eevee consistent with Cycles, by having a single output node, and multiple shader nodes that connect to it. Note that node systems for Eevee saved before this will be missing the output node, and thus will show an invalid material. This is easily resolved by connecting the shader output to a new output node.
2017-06-20Fix collada build after gawain rename/refactorDalai Felinto
Collada files should not have been touched. Bug introduced on: c31f24c63b875e8c9a7cacd2733d3e8614eff74d
2017-06-20Fix (unreported) missing Image usercount increase when copying UVProject ↵Bastien Montagne
modifier.
2017-06-19Manipulators: store operator type instead of idCampbell Barton
Avoids lookups on each access.
2017-06-19Fix warning in view3d_draw.Clément Foucault
2017-06-19Depsgraph: Fix crash with mouse select in edit mode with Copy-on-Write enabledSergey Sharybin
2017-06-19Fix (unreported) bad copying code of Surface Deform modifier.Bastien Montagne
2017-06-19Fix compiler warnings from own recent rB0d5c7e5e36b9.Bastien Montagne
2017-06-19Fix (unreported) bad copying of Ocean modifier.Bastien Montagne
Was needlessly complicated code, forgot to copy a value (foam_fade), and was utterly leaking memory!
2017-06-19Depsgraph: Synchronize selection from original scene to copied-on-write oneSergey Sharybin
This makes it possible to select objects in the viewport. Selection in edit mode is still tricky, mainly because currently such update would require tagging batch as updated, which is not possible with using just and original object because it will never have batch. Possible solution here would be to introduce some "batch" or "render" component to depsgraph ID node for objects, so we can tag batch for update via depsgraph tagging API.
2017-06-19Depsgraph: Initial groundwork for copy-on-write supportSergey Sharybin
< Dependency graph Copy-on-Write > -------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || This is an initial commit of Copy-on-write support added to dependency graph. Main priority for now: get playback (Alt-A) and all operators (selection, transform etc) to work with the new concept of clear separation between evaluated data coming from dependency graph and original data coming from .blend file (and stored in bmain). = How does this work? = The idea is to support Copy-on-Write on the ID level. This means, we duplicate the whole ID before we cann it's evaluaiton function. This is currently done in the following way: - At the depsgraph construction time we create "shallow" copy of the ID datablock, just so we know it's pointer in memory and can use for function bindings. - At the evaluaiton time, the copy of ID get's "expanded" (needs a better name internally, so it does not conflict with expanding datablocks during library linking), which means the content of the datablock is being copied over and all IDs are getting remapped to the copied ones. Currently we do the whole copy, in the future we will support some tricks here to prevent duplicating geometry arrays (verts, edges, loops, faces and polys) when we don't need that. - Evaluation functions are operating on copied datablocks and never touching original datablock. - There are some cases when we need to know non-ID pointers for function bindings. This mainly applies to scene collections and armatures. The idea of dealing with this is to "expand" copy-on-write datablock at the dependency graph build time. This might introduce some slowdown to the dependency graph construction time, but allows us to have minimal changes in the code and avoid any hash look-up from evaluation function (one of the ideas to avoid using pointers as function bindings is to pass name of layer or a bone to the evaluation function and look up actual data based on that name). Currently there is a special function in depsgraph which does such a synchronization, in the future we might want to make it more generic. At some point we need to synchronize copy-on-write version of datablock with the original version. This happens, i.e., when we change active object or change selection. We don't want any actual evaluation of update flush happening for such thins, so now we have a special update tag: DEG_id_tag_update((id, DEG_TAG_COPY_ON_WRITE) - For the render engines we now have special call for the dependency graph to give evaluated datablock for the given original one. This isn't fully ideal but allows to have Cycles viewport render. This is definitely a subject for further investigation / improvement. This call will tag copy-on-write component tagged for update without causing updates to be flushed to any other objects, causing chain reaction of updates. This tag is handy when selection in the scene changes. This basically summarizes ideas underneath this commit. The code should be reasonably documented. Here is a demo of dependency graph with all copy-on-write stuff in it: https://developer.blender.org/F635468 = What to expect to (not) work? = - Only meshes are properly-ish aware of copy-on-write currently, Non-mesh geometry will probably crash or will not work at all. - Armatures will need similar depsgraph built-time expansion of the copied datablock. - There are some extra tags / relations added, to keep things demo-able but which are slowing things down for evaluation. - Edit mode works for until click selection is used (due to the selection code using EditDerivedMesh created ad-hoc). - Lots of tools will lack tagging synchronization of copied datablock for sync with original ID. = How to move forward? = There is some tedious work related on going over all the tools, checking whether they need to work with original or final evaluated object and make the required changes. Additionally, there need synchronization tag done in fair amount of tools and operators as well. For example, currently it's not possible to change render engine without re-opening the file or forcing dependency graph for re-build via python console. There is also now some thoughts required about copying evaluated properties between objects or from collection to a new object. Perhaps easiest way would be to move base flag flush to Object ID node and tag new objects for update instead of doing manual copy. here is some WIP patch which moves such evaluaiton / flush: https://developer.blender.org/F635479 Lots of TODOs in the code, with possible optimization. = How to test? = This is a feature under heavy development, so obviously it is disabled by default. The only reason it goes to 2.8 branch is to avoid possible merge hell. In order to enable this feature use WITH_DEPSGRAPH_COPY_ON_WRITE CMake configuration option.
2017-06-19Fix (unreported) bad copying code in Mesh Deform modifier.Bastien Montagne
2017-06-19Fix (unreported) Dynamic Paint modifier not increasing ID usercount in copy ↵Bastien Montagne
function. *Sigh* One more example of why we should keep ID management handling in as few places as possible! It's impossible to keep more than a few places in sync regarding which ID pointer is refcounted etc.
2017-06-19Fix (unreported) memory leak in Fluid modifier copying.Bastien Montagne
Also generally simplify/sanitize this copy code.
2017-06-19Gawain API naming refactorCampbell Barton
Use consistent prefix for gawain API names as well as some abbreviations to avoid over-long names, see: D2678
2017-06-19Cleanup: quiet warningsCampbell Barton
2017-06-19Manipulator: use ui-scale for widgetsCampbell Barton
2017-06-19Eevee: Add data display for planar reflection.Clément Foucault
Maybe not very useful but it's here for feature parity with the other probes. The fragment shader clipping is here because I'm lazy and don't want to creating a proper quad Batch.
2017-06-19Eevee: Fix Planar Probe offset changing influence calculation.Clément Foucault
2017-06-19Planar Probe: Add UI, 3d view Display and change defaults.Clément Foucault
2017-06-19Eevee: Initial implementation of planar reflections.Clément Foucault
Still pretty barebone: No roughness support, No normal distortion support.
2017-06-19Eevee: Add special shader for depth prespass.Clément Foucault
This way we can extend it to output more data (like motion vectors). Add a variation that uses clip distances.
2017-06-19DrwManager: Remove the need for buffers to be available.Clément Foucault
This way we can just avoid binding a texture by setting it's ref to NULL.
2017-06-19DrwManager: Remove unnecessary ifs.Clément Foucault
2017-06-19Probe: Add planar type.Clément Foucault
2017-06-19DrwManager: Add support for Custom Clipping PlanesClément Foucault