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
2019-05-16Cycles/Eeeve: unify film transparent settingJeroen Bakker
For existing files, it will use the setting from Cycles or Eevee depending on the render engine in the scene. Differential Revision: https://developer.blender.org/D4874
2019-05-16Cycles: Fix missing viewport updates after recent changesSergey Sharybin
We can not access ensured-to-be-evaluated dependency graph from the render API: some of it is running from within evaluation which makes it possible for engines to access list of evaluated IDs. Solved by passing dependency graph to viewport functions, similar to the final render functions.
2019-05-16Tweak API to support adding evaluated meshes to main databaseSergey Sharybin
One of the usecases is to create mesh from an object is a manner similar to how Apply Modifiers does it, and have it in the bmain so it can be referenced by other objects. This usecase is something what went unnoticed in the previous API changes, so here is a followup. Summary of changes: * bpy.meshes.new_from_object() behaves almost the same as before this change. The difference now is that it now ensures all referenced data-blocks are original (for example, materials referenced by the mesh). * object.to_mesh() now creates free-standing Mesh data-block which is outside of any bmain. The object owns it, which guarantees the memory never leaks. It is possible to force free memory by calling object.to_mesh_clear(). Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4875
2019-05-16Cycles: Don't advertise BVH8 being supported on 32bit platformsSergey Sharybin
The kernel does not use AVX2 vectorization, and trying to use BVH8 was leading to an empty scenes. Fixes T64624: Ctest : Win32 + AVX2 fails virtually all cycles tests
2019-05-16Dependency graph API changesSergey Sharybin
Main goal here is to make it obvious and predictable about what is going on. Summary of changes. - Access to dependency graph is now only possible to a fully evaluated graph. This is now done via context.evaluated_depsgraph_get(). The call will ensure both relations and datablocks are updated. This way we don't allow access to some known bad state of the graph, and also making explicit that getting update dependency graph is not cheap. - Access to evaluated ID is now possible via id.evaluated_get(). It was already possible to get evaluated ID via dependency graph, but that was a bit confusing why access to original is done via ID and to evaluated via depsgraph. If datablock is not covered by dependency graph it will be returned as-is. - Similarly, request for original from an ID which is not evaluated will return ID as-is. - Removed scene.update(). This is very expensive to update all the view layers. - Added depsgraph.update(). Now when temporary changes to objects are to be done, this is to happen on original object and then dependency graph is to be updated. - Changed object.to_mesh() to behave the following way: * When is used for original object modifiers are ignored. For meshes this acts similar to mesh-copy, not very useful but allows to keep code paths similar (i.e. for exporter which has Apply Modifiers option it's only matter choosing between original and evaluated object, the to_mesh() part can stay the same). For curves this gives a mesh which is constructed from displist without taking own modifiers and modifiers of bevel/taper objects into account. For metaballs this gives empty mesh. Polygonization of metaball is not possible from a single object. * When is used for evaluated object modifiers are always applied. In fact, no evaluation is happening, the mesh is either copied as-is, or constructed from current state of curve cache. Arguments to apply modifiers and calculate original coordinates (ORCO, aka undeformed coordinates) are removed. The ORCO is to be calculated as part of dependency graph evaluation. File used to regression-test (a packed Python script into .blend): {F7033464} Patch to make addons tests to pass: {F7033466} NOTE: I've included changes to FBX exporter, and those are addressing report T63689. NOTE: All the enabled-by-default addons are to be ported still, but first want to have agreement on this part of changes. NOTE: Also need to work on documentation for Python API, but, again, better be done after having agreement on this work. Reviewers: brecht, campbellbarton, mont29 Differential Revision: https://developer.blender.org/D4834
2019-05-15Lights: change sun light size to be specified as angleTim Stullich
This is the angular diameter as seen from earth, which is between 0.526° and 0.545° in reality. Sharing the size with other light types did not make much sense and meant the unit was unclear. Differential Revision: https://developer.blender.org/D4819
2019-05-15Fix T64618: Cycles crash with point density texture on WindowsBrecht Van Lommel
A better solution would be to not use the callback mechanism anymore for cases like this where the dependency graph will free volume data, but that would be a bigger refactor.
2019-05-14Fix Cycles build error after recent changesBrecht Van Lommel
We need to do aligned alloc of the services instead of globals now since the concurrent map moved there.
2019-05-14Fix T64515, T60434: crash in OSL and preview render after recent changesBrecht Van Lommel
The refactoring of texture handles did not take into account that render services are shared between multiple render session. Now the texture to handle map is also shared between render sessions.
2019-05-14Fix T64578: Cycles clamps HDR colors for 16bit integer image with colorspaceBrecht Van Lommel
2019-05-14Fix T63802: textured lights not working with OSLBrecht Van Lommel
2019-05-14Fix T64561: wrong colorspace for Cycles displacement nodesBrecht Van Lommel
2019-05-13Cycles/Eevee: add Emission and Alpha inputs to Principled BSDFBrecht Van Lommel
This makes it easier to set up materials with emission and transparency. Importers/exporters and add-ons are recommended to now use these rather than creating separate transparent BSDF and emission nodes.
2019-05-13Cycles/Eevee: unify light strength and colorBrecht Van Lommel
Cycles lights now use strength and color properties of the light outside of the shading nodes, just like Eevee. The shading nodes then act as a multiplier on this, and become optional unless textures, fallof or other effects are desired. Backwards compatibility is not exact, as we can't be sure which renderer the .blend was designed for or even if it was designed for a single one. If the render engine in the active scene is set to Cycles, lights are converted to ensure overall light strength remains the same, and removing unnecessary shader node setups that only included a single emission node. If the engine is set to Eevee, we increase strength to remove the automatic 100x multiplier that was there to match Cycles. Differential Revision: https://developer.blender.org/D4588
2019-05-13Cycles/Eevee: unified and improved texture image color space handlingBrecht Van Lommel
Cycles now uses the color space on the image datablock, and uses OpenColorIO to convert to scene linear as needed. Byte images do not take extra memory, they are compressed in scene linear + sRGB transfer function which in common cases is a no-op. Eevee and workbench were changed to work similar. Float images are stored as scene linear. Byte images are compressed as scene linear + sRGB and stored in a GL_SRGB8_ALPHA8 texture. From the GLSL shader side this means they are read as scene linear, simplifying the code and taking advantage of hardware support. Further, OpenGL image textures are now all stored with premultiplied alpha. Eevee texture sampling looks a little different now because interpolation happens premultiplied and in scene linear space. Overlays and grease pencil work in sRGB space so those now have an extra conversion to sRGB after reading from image textures. This is not particularly elegant but as long as engines use different conventions, one or the other needs to do conversion. This change breaks compatibility for cases where multiple image texture nodes were using the same image with different color space node settings. However it gives more predictable behavior for baking and texture painting if save, load and image editing operations have a single color space to handle. Differential Revision: https://developer.blender.org/D4807
2019-05-11Cycles: add function to clear resumable chunkBrecht Van Lommel
2019-05-07Fix deadlock in recent Cycles colorspace changesBrecht Van Lommel
This code is not used yet so didn't affect anyone.
2019-05-06Color management: add functions to detect scene linear and sRGB color spacesBrecht Van Lommel
Same as the ones in Cycles, but intended for GPU textures.
2019-05-06Cleanup: clang-formatCampbell Barton
2019-05-04Cycles: Fix NULL instead of falseSergey Sharybin
Not really noticeable for users, since the compiled code is the same, but semantically this is incorrect.
2019-05-03Fix Cycles crash when trying to load image that does not existBrecht Van Lommel
It was crashing due to array out of bounds access. This is not a great fix, but brings back behavior the same as before now. Perhaps images that failed to load should be stored separately somewhere.
2019-05-03Fix Cycles assert on exit after recent changesBrecht Van Lommel
2019-05-03Fix compiler warning/error after recent changesBrecht Van Lommel
2019-05-03Cycles: support loading images from arbitrary OpenColorIO color spaceLukas Stockner
These are the internal changes to Cycles, for Blender integration there are no functional changes in this commit. Images are converted to scene linear color space on file load, and on reading from the OpenImageIO texture cache. 8-bit images are compressed with the sRGB transfer function to avoid precision loss while keeping memory usages low. This also means that for common cases of 8-bit sRGB images no conversion happens at all on image loading. Initial patch by Lukas, completed by Brecht. Differential Revision: https://developer.blender.org/D3491
2019-05-03Cycles: add colorspace manager class and utilities based on OpenColorIOLukas Stockner
This is the groundwork for supporting loading image textures with arbitrary color spaces through OpenColorIO. Initial patch by Lukas, completed by Brecht. Differential Revision: https://developer.blender.org/D3491
2019-05-03Cleanup: refactor Cycles OSL texture handlingBrecht Van Lommel
This adds our own OSL texture handle, that has info for OIIO textures or our own custom texture types. A filename to handle hash map is used for lookups. This is efficient because it happens at OSL compile time, because the optimizer can figure out constant strings and replace them with texture handles.
2019-05-03Cleanup: refactor passing of OSL kernel globals for upcoming changesBrecht Van Lommel
2019-05-02UI: Open 'Passes' panel by default in Cycles.Pablo Vazquez
This panel is arguably the most important in the ViewLayer properties, so the concept of "1 panel open per context" doesn't work. Especially since the first panel (View Layer) contains only two settings. This also registers the Passes panels before filter/override so it's sorted in the same way as EEVEE.
2019-05-01Cleanup: comments (long lines) in cyclesCampbell Barton
2019-04-29Cleanup: spellingCampbell Barton
2019-04-25Merge branch 'blender2.7'Brecht Van Lommel
2019-04-25Fix for Cycles UV adaptive subdivision after float2 changes.Alex Fuller
Differential Revision: https://developer.blender.org/D4717
2019-04-25Cycles: tweak preferences text when no compatible GPUs are foundBrecht Van Lommel
Try to make it more clear that this only affects Cycles, many users seem to miss the panel title.
2019-04-24Cycles: remove hair minimum width support.Brecht Van Lommel
This never really worked as it was supposed to. The main goal of this is to turn noise from sampling tiny hairs into multiple layers of transparency that do not need to be sampled stochastically. However the implementation of this worked by randomly discarding hair intersections in BVH traversal, which defeats the purpose. If it ever comes back, it's best implemented outside the kernel as a preprocess that changes hair radius before BVH building. This would also make it work with Embree, where it's not supported now. But it's not so clear anymore that with many AA samples and GPU rendering this feature is as helpful as it once was for CPU raytracers with few AA samples. The benefit of removing this feature is improved hair ray tracing performance, tested on NVIDIA Titan Xp: bmw27: +0.37% classroom: +0.26% fishy_cat: -7.36% koro: -12.98% pabellon: -0.12% Differential Revision: https://developer.blender.org/D4532
2019-04-24Cycles: move shader node versioning code to CBrecht Van Lommel
Shader nodes are now shared with Eevee, so makes more sense to have it in the core and not be Cycles specific. Fix T62415: issues with append/link of old Cycles settings.
2019-04-23Fix T63796: Cycles OSL shader with closure not working in final render.Brecht Van Lommel
2019-04-21Fix T62408: Cycles viewport adaptive subdivision hangs after updatesBrecht Van Lommel
Backporting fix from the master branch.
2019-04-21Fix T63415: no Cycles displacement update when updating OSL codeBrecht Van Lommel
2019-04-19CMake: fix Cycles linking with OpenCLCampbell Barton
2019-04-19Cleanup: correct misleading classmethod argCampbell Barton
2019-04-17ClangFormat: format '#if 0' code in intern/Campbell Barton
2019-04-17ClangFormat: manually format sobol.cppCampbell Barton
Disabled because it uses a lot of memory and is mostly data.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-17ClangFormat: disable for most of sobol.cppCampbell Barton
2019-04-16CMake: fix building WITH_CYCLES_LOGGING=ONCampbell Barton
2019-04-16CMake: remove BLENDER_SORTED_LIBSCampbell Barton
Use CMake's target_link_libraries instead of manually maintaining library dependencies in a single list. In practice adding new libraries often ended up being guess-work, now each library lists the libraries it uses. This was used for the game player executable so libraries could optionally link to stubs. If we need this functionality it can be done using target-properties as described in T46725.
2019-04-16CMake: add library deps to CMakeLists.txtCampbell Barton
Tested to work on Linux and macOS. This will be enabled once all platforms are verified. See D4684
2019-04-16CMake: cleanup, arg rename, add definitions lastCampbell Barton
2019-04-16Fix T63346: Cycles OSL shader with closure not working in final render.Brecht Van Lommel
2019-04-14CMake: prepare for BLENDER_SORTED_LIBS removalCampbell Barton
No functional change, this adds LIB definition and args to cmake files. Without this it's difficult to migrate away from 'BLENDER_SORTED_LIBS' since there are many platforms/configurations that could break when changing linking order. Manually add and enable WITHOUT_SORTED_LIBS to try building without sorted libs (currently fails since all variables are empty). This check will eventually be removed. See T46725.