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
path: root/intern
AgeCommit message (Collapse)Author
2017-07-04Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/makesdna/DNA_particle_types.h
2017-07-03Merge branch 'master' into blender2.8Alexander Romanov
2017-07-03Fix T51950: Abnormally long Cycles OpenCL GPU render times with certain ↵Lukas Stockner
panoramic camera settings The problem here was that when a "invalid" path is generated by the panoramic camera, it was tagged as RAY_TO_REGENERATE with the intention of generating a new path in kernel_buffer_update. However, since that state was not handled in kernel_queue_enqueue, kernel_buffer_update did not process the path which resulted in an infinite loop.
2017-07-03Cycles: Add missing split kernel to CPUDeviceLukas Stockner
2017-07-03Merge branch 'master' into blender2.8Dalai Felinto
2017-07-03Fix missing return error introduced by last commitLuca Rood
End of non-void function was being reached since f5535fcb83fd7c1374697923b43565c9e303d225
2017-07-03Fi T51023: MixRGB constant folding not effective with clamp option.Brecht Van Lommel
2017-07-03Fix T51855: Cycles emssive objects with NaN transform break lighting.Brecht Van Lommel
2017-07-02Fix T51759: fluid simulation particles not remoevd when colliding with ↵Lucas Veber
outflow objects. Reviewed By: brecht Differential Revision: https://developer.blender.org/D2719
2017-07-02Fix T51956: color noise with principled sss, radius 0 and branched path.Brecht Van Lommel
2017-07-02Fix principled BSDF incorrectly missing subsurface component with base color ↵Brecht Van Lommel
black.
2017-06-30Better fix for isfinite problem - works in older gcc's too.Howard Trickey
Previous fix relying on __cplusplus value didn't fix for older gcc's on linux, but this fix does.
2017-06-30Fix compile error after recent 9c2bbfb6 commit.Howard Trickey
Older C++ compilers use finite instead of isfinite.
2017-06-30Fix T51721: OpenGL Detection is broken on WindowsDalai Felinto
Now computers that support OpenGl3.3 (but not 4.5) can run Blender 2.8. For any given HDC, you may only call SetPixelFormat *ONCE* any future calls for the same HDC will fail. And computers that would support only OpenGL 3.3 wouldn't have a change to get a valid OpenGL context because the pixelformat was already set while trying to probe the supported contexts. We fix this by splitting the final context creation from the query of supported OpenGL versions. Patch by Ray Molenkamp (bzzt_ploink/LazyDodo) with code style fixes and comments by me.
2017-06-30Merge branch 'master' into blender2.8Campbell Barton
2017-06-30Cycles: Use float constants instead of doubleMai Lavelle
2017-06-30Cycles: Disable baking in mega kernel when not in use to improve build timesMai Lavelle
2017-06-30Fix T50887: Holes in fluid mesh on WindowsCampbell Barton
D2556 by @chrisr
2017-06-29Missing from last commitCampbell Barton
2017-06-29Gawain: add method of stepping over data directlyCampbell Barton
This avoids using GWN_vertbuf_attr_set which needs to calculate the offset and perform a memcpy every call. Exposing the data directly allows us to avoid a memcpy in some cases and means we can write to the vertex buffer's memory directly.
2017-06-29Gawain: Use common prefix for packed normalCampbell Barton
2017-06-29Merge branch 'master' into blender2.8Bastien Montagne
Conflicts: source/blender/editors/space_outliner/outliner_select.c
2017-06-28Fix T51909: Cycles: Uninitialized closure normals for the Hair BSDFLukas Stockner
As the title says, the normal wasn't set for the Hair BSDF because it wasn't needed before. However, the denoiser uses it to store the feature passes, so it needs to be set now.
2017-06-27mikktspace: minor optimizationCampbell Barton
Add a safe version of normalize since all uses of normalize did zero length checks, move this into a function. Also avoid unnecessary conversion. Gives minor speedup here (approx 3-5%).
2017-06-26Merge branch 'master' into blender2.8Campbell Barton
2017-06-22Cycles: Fix excessive sampling weight of glossy Principled BSDF componentsLukas Stockner
If there was any specularity in the Principled BSDF, it would get a sampling weight of one regardless of its actual impact. This commit makes Cycles estimate the contribution of the component and adjust the weighting accordingly, which greatly improves the noise characteristics of the Principled BSDF in many cases. Note that this commit might slightly change the brightness of areas when using MultiGGX and high roughnesses, but the new brightness is more accurate and closer to the result of Branched Path Tracing. See T51836 for details. Differential Revision: https://developer.blender.org/D2677
2017-06-22Fix T51836: Cycles: Fix incorrect PDF approximations of the MultiGGX closuresLukas Stockner
The PDF of the MultiGGX sampling is approximated by the singlescattering GGX term as well as a scaled diffuse term that makes up for the energy in the multiscattering component that's missed by GGX. However, there were two problems with the glossy terms: The diffuse term missed a normalization factor, and the singlescattering term was not properly scaled down based on the albedo estimate. The glass term was completely wrong and has been rewritten. It uses the fresnel factor to weight reflection vs. refraction and uses the glossy MultiGGX model for reflection. For refraction, the correct singlescattering term is now used, and a new albedo approximation is used that was derived by evaluating GGX albedo for roughnesses from 0 to 1 and IORs from 1 to 3 and fitting numerical approximations to it. The resulting model has a mean relative error of 9e-5, but could probably be simplified without losing noticable accuracy in the final render. The improved PDFs help with glossy highlights (due to better light sampling vs. closure sampling MIS) and fix the situation described in T51836 where mixing MultiGGX with other closures (as it happens in e.g. the Principled BSDF) causes incorrect darkening.
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-19Fixup for gawan renameDalai Felinto
inten/opencolorio and *.cc were ignored. Build error introduced on b4d053efc75424fca4b413ac1bc7a7e826fac629.
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-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-19Merge branch 'master' into blender2.8Campbell Barton
2017-06-19Cleanup: doxygen commentsCampbell Barton
Also remove duplicate & mismatching comments from grease-pencil header. Keep comments close to implementation to avoid getting out of sync.
2017-06-17Merge branch 'master' into blender2.8Campbell Barton
2017-06-17Guarded allocator: Fix type in macro definitionSergey Sharybin
The crash did not happen yet because we always had proper vmemh defined in the parent scope. Patch by Ivan Ivanov (aka obiwanus), thanks! Differential Revision: https://developer.blender.org/D2715
2017-06-16Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-16Cycles: Fix race condition happening in progress utilitySergey Sharybin
This is not enough to mutex-guard modification code of integer values, since this operation is NOT atomic. This is not even safe for a single byte data types. For now guarded the getter functions, similar to other functions in this module. Ideally we want to switch modification to an atomic operations, so we wouldn't need any locks in the getters.
2017-06-14Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-14Cycles: Fix typo in commentSergey Sharybin
2017-06-13Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-13Fix T51791: Point Density doesn't work on GPUHristo Gueorguiev
2017-06-13Cycles: Cleanup, indentationSergey Sharybin
2017-06-13Cycles: Fix compilation error of OpenCL mega kernelSergey Sharybin
Was some mismatch in address space. Seems to be caused by recent additions. Additionally, moved decoupled ray marching functions under ifdef, so they don't try to use malloc() functions. Thanks Mai for testing the patch!
2017-06-13CMake: add missing includesCampbell Barton
2017-06-12Merge branch 'master' into blender2.8Sergey Sharybin
2017-06-12Cleanup: indentation, long linesCampbell Barton
2017-06-12Cycles: adjust supported driver version for AMD GPUsHristo Gueorguiev
On Windows 17.Q1 and 17.Q2 return driver version 2236.10.
2017-06-11Cycles Denoising: Add more failsafes for invalid pixelsLukas Stockner
Now, when there is no usable neighboring pixel for denoising, the noisy value is preserved instead of producing a NaN. Also, negative results are clamped to zero. Note that there are just workarounds that don't fix the underlying problems, but these issues are very rare and I'm not sure if it's even possible to fix the underlying problems without introducing a significant slowdown or quality decrease in other situations. Because of that and since 2.79 is happening very soon, I just went for these workarounds for now.
2017-06-10Cycles: Selectively include denoising in kernelSergey Sharybin
2017-06-10Cycles: Pass all buffers to each kernel call for OpenCLMai Lavelle
Technically not passing all buffers used by a kernel is undefined behavior. We haven't had any issues with this so far on AMD or Nvidia, but it's known to be a problem with Intel and we received a report from AMD that this is a problem on newer hardware, so we need to make this change at some point. Unfortunately there a cost to being correct, about 5% for the benchmark scenes. For low sample counts it's even worse, I've seen up to 50% slowdown. For the latter case I think adjusting tile updating logic can help, but not sure what that would look like yet (it would be just a few lines change however).