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
2022-01-21Fix T93711: Cycles diffuse/glossy baking does not write alphaBrecht Van Lommel
With the change to use render passes internally the alpha channel got lost. Add support for these render passes to output an alpha channel for baking.
2022-01-20Fix T94457: random result using sky texture in light objectBrecht Van Lommel
Still not well defined, but should not longer use uninitialized values that gave different results between CPU/GPU and subsequent renders.
2022-01-20Fix T94698: artifacts in light passes with mixed volumes and surfacesBrecht Van Lommel
2022-01-20Cleanup: Remove OpenCL workaround in volume_sample_channel().Thomas Dinges
2022-01-17Cleanup: refactor BVH2 in preparation of self intersection skipBrecht Van Lommel
Move some logic out of triangle intersection functions and into BVH traversal, so we can share logic between primitives. Ref D12954
2022-01-13Fix T94737: Cycles wrong normal map normal with OSLBrecht Van Lommel
Ensure valid reflection was moved elsewhere, should not be done in the node anymore.
2022-01-13Fix T94050, T94570, T94527: Cycles Bevel and AO nodes not working with MetalBrecht Van Lommel
Workaround what may be a compiler bug, solution found by Michael Jones.
2022-01-13Fix T94758: wrong denoising albedo with BSSRDF retro reflectionBrecht Van Lommel
2022-01-10Cleanup: typos in comments, remove libnumaapi referenceCampbell Barton
2022-01-07Fix wrong shadow terminator geometry offset with deformation motion blurOlivier Maury
Differential Revision: https://developer.blender.org/D13759
2022-01-07Fix wrong shadow terminator geometry offset for instancesOlivier Maury
Must take into account SD_OBJECT_TRANSFORM_APPLIED to determine if the normal was already in world space. Differential Revision: https://developer.blender.org/D13639
2022-01-07Cycles: Fix Metal buildMichael Jones
This patch fixes a couple of new Metal kernel compilation errors: 1) a kernel parameter count overflow, and 2) missing address space qualifiers. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13763
2022-01-05Cycles: Add OptiX temporal denoising supportPatrick Mours
Enables the `bpy.ops.cycles.denoise_animation()` operator again and modifies it to support temporal denoising with OptiX. This requires renders that were done with both the "Vector" and "Denoising Data" passes. Differential Revision: https://developer.blender.org/D11442
2022-01-03Cleanup: Silence "integer conversion resulted in a change of sign" warning ↵Patrick Mours
in Cycles kernel code Occured because "PATH_RAY_SHADOW_CATCHER_BACKGROUND" is expressed as an unsigned integer, because too large for a signed integer, but the "PathRayFlag" enum type defaulted to a signed integer still.
2021-12-20Fix T94251: Cycles wrong pointcloud normal for instanced objectsBrecht Van Lommel
Refactor code a bit also so we need to do fewer matrix transforms for shader data setup of points and curves.
2021-12-20Fix Cycles OptiX crash with 3D curves after point cloud changesBrecht Van Lommel
Includes refactoring to reduce the number of bits taken by primitive types, so they more easily fit in the OptiX limit.
2021-12-17Fix T94142, T94182: Cycles metal broken after pointcloud changesMichael
Missing ccl_private form an older patch. Differential Revision: https://developer.blender.org/D13612
2021-12-17Cleanup: spelling in commentsCampbell Barton
2021-12-16Cycles: pointcloud renderingBrecht Van Lommel
This add support for rendering of the point cloud object in Blender, as a native geometry type in Cycles that is more memory and time efficient than instancing sphere meshes. This can be useful for rendering sand, water splashes, particles, motion graphics, etc. Points are currently always rendered as spheres, with backface culling. More shapes are likely to be added later, but this is the most important one and can be customized with shaders. For CPU rendering the Embree primitive is used, for GPU there is our own intersection code. Motion blur is suppored. Volumes inside points are not currently supported. Implemented with help from: * Kévin Dietrich: Alembic procedural integration * Patrick Mourse: OptiX integration * Josh Whelchel: update for cycles-x changes Ref T92573 Differential Revision: https://developer.blender.org/D9887
2021-12-14Fix Cycles compilation with CUDA / Optix after recent Map Range additions.Thomas Dinges
2021-12-14Nodes: Add vector support to Map Range nodeCharlie Jolly
This replaces lost functionality from the old GN Attribute Map Range node. This also adds vector support to the shader version of the node. Notes: This breaks forward compatibility as this node now uses data storage. Reviewed By: HooglyBoogly, brecht Differential Revision: https://developer.blender.org/D12760
2021-12-14Fix T94022: Both options GPU/CPU checked under preferences cause viewport ↵Michael Jones
render crash. (ARM/Metal) This fixes crash T94022 when selecting live viewport render with both GPU & CPU devices selected. It is caused by incorrect `KernelBVHLayout` assignment. Similar to `BVH_LAYOUT_MULTI_OPTIX` for Optix, this patch adds a `BVH_LAYOUT_MULTI_METAL` to correctly redirect to the correct Metal BVH layout type. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13561
2021-12-10Fix T92036: `Magic Texture` in Volumetric World Shaders render differently ↵William Leeson
with the CPU and GPU When rendering volume surfaces in unbounded worlds the volume stepping can produce large values. If used with a magic texture node the values can results in a Inf float which when used in a sin or cos produces a NaN. To fix this the input values are mapped into the periodic range of the sin and cos functions (-2*PI 2*PI) this stops the possibility of a Inf occurring and thus the NaN. It also improves the accuracy and smoothness of the result due to loss of precision when large values are summed with smaller ones effectively removing the parts of the smaller number (i.e. those in the -2PI to 2PI range) that result in variation of the output of sin and cos. Reviewed By: brecht Maniphest Tasks: T92036 Differential Revision: https://developer.blender.org/D12821
2021-12-09Fix T93874: Cycles crash with fast GI approximationBrecht Van Lommel
2021-12-08Cleanup: clang-formatAaron Carlisle
2021-12-07Cycles: add Fisheye Lens Polynomial camera modelHåkan Ardö
This allows real world cameras to be modeled by specifying the coordinates of a 4th degree polynomial that relates a pixels distance (in mm) from the optical center on the sensor to the angle (in radians) of the world ray that is projected onto that pixel. This is available as part of the panoramic lens type, however it can also be used to model lens distortions in projective cameras for example. Differential Revision: https://developer.blender.org/D12691
2021-12-07Fix T93418: Cycles shadow terminator Geometry Offset artifacts with translucencyMikhail Matrosov
Differential Revision: https://developer.blender.org/D13468
2021-12-07Cycles: Metal host-side codeMichael Jones
This patch adds the Metal host-side code: - Add all core host-side Metal backend files (device_impl, queue, etc) - Add MetalRT BVH setup files - Integrate with Cycles device enumeration code - Revive `path_source_replace_includes` in util/path (required for MSL compilation) This patch also includes a couple of small kernel-side fixes: - Add an implementation of `lgammaf` for Metal [Nemes, Gergő (2010), "New asymptotic expansion for the Gamma function", Archiv der Mathematik](https://users.renyi.hu/~gergonemes/) - include "work_stealing.h" inside the Metal context class because it accesses state now Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D13423
2021-12-01Cleanup: compiler warningBrecht Van Lommel
2021-12-01Cycles: fix bugs in point and spot light multiple importance samplingSebastian Herholz
* Spot lights are now handled as disks aligned with the direction of the spotlight instead of view aligned disks. * Point light is now handled separately from the spot light, to fix a case where multiple lights are intersected in a row. Before the origin of the ray was the previously intersected light and not the origin of the initial ray traced from the last surface/volume interaction. This makes both strategies in multiple importance sampling converge to the same result. It changes the render results in some scenes, for example the junkshop scene where there are large point lights overlapping scene geometry and each other. Differential Revision: https://developer.blender.org/D13233
2021-11-30Cleanup: clang-format, trailing spaceCampbell Barton
2021-11-30Cleanup: capitalize NOTE tagCampbell Barton
2021-11-30Cleanup: spelling in comments & stringsCampbell Barton
2021-11-29Fix Cycles OptiX doing a bit too much work for almost opaque curve shadowsBrecht Van Lommel
Found in D13353, likely has no significant impact in performance.
2021-11-29Cycles: MetalRT support (kernel side)Michael Jones
This patch adds MetalRT support to Cycles kernel code. It is mostly additive in nature or confined to Metal-specific code, however there are a few areas where this interacts with other code: - MetalRT closely follows the Optix implementation, and in some cases (notably handling of transforms) it makes sense to extend Optix special-casing to MetalRT. For these generalisations we now have `__KERNEL_GPU_RAYTRACING__` instead of `__KERNEL_OPTIX__`. - MetalRT doesn't support primitive offsetting (as with `primitiveIndexOffset` in Optix), so we define and populate a new kernel texture, `__object_prim_offset`, containing per-object primitive / curve-segment offsets. This is referenced and applied in MetalRT intersection handlers. - Two new BVH layout enum values have been added: `BVH_LAYOUT_METAL` and `BVH_LAYOUT_MULTI_METAL_EMBREE` for XPU mode). Some host-side enum case handling has been updated where it is trivial to do so. Ref T92212 Reviewed By: brecht Maniphest Tasks: T92212 Differential Revision: https://developer.blender.org/D13353
2021-11-26Cycles: Fix film convert address space mismatch on MetalMichael Jones
This patch fixes an address space mismatch in the film convert kernels on Metal. The `film_get_pass_pixel_...` functions take a `ccl_private` result pointer, but the film convert kernels pass a `ccl_global` memory pointer. Specialising the pass-fetch functions with templates results in compilation errors on Visual Studio, so instead this patch just adds an intermediate local on Metal. Reviewed By: brecht Differential Revision: https://developer.blender.org/D13350
2021-11-25Merge remote-tracking branch 'origin/blender-v3.0-release'Sergey Sharybin
2021-11-25Fix T93155: Approximate shadow catcher displayed wrong on CPU and GPUSergey Sharybin
Was happening during rendering, causing visual artifacts when doing CPU+GPU rendering, and giving different in-progress results on different devices. The root of the issue comes to the fact that math used in the approximate shadow catcher calculation might have resulted in negative alpha channel, and negative values for display are handled differently on CPU and GPU. Such difference in handling is caused by an approximate conversion used on the CPU for the performance reasons. This change makes it so no negative alpha is generated by the approximate shadow catcher. Not sure if we need some explicit clamping somewhere to deal with possible negative values coming from somewhere else. The shadow catcher cornell box tests are to be updated for the new code, but the new result seems to be more accurate. Differential Revision: https://developer.blender.org/D13354
2021-11-25Merge branch 'blender-v3.0-release' to bring in D13042:William Leeson
Fix performance decrease with Scrambling Distance on
2021-11-25Fix performance decrease with Scrambling Distance onAlaska
With the current code in master, scrambling distance is enabled on non-hardware accelerated ray tracing devices see a measurable performance decrease when compared scrambling distance on vs off. From testing, this performance decrease comes from the large tile sizes scheduled in `tile.cpp`. This patch attempts to address the performance decrease by using different algorithms to calculate the tile size for devices with hardware accelerated ray traversal and devices without. Large tile sizes for hardware accelerated devices and small tile sizes for others. Most of this code is based on proposals from @brecht and @leesonw Reviewed By: brecht, leesonw Differential Revision: https://developer.blender.org/D13042
2021-11-24Cycles: Add support for building with OptiX 7.4 SDK and use built-in ↵Patrick Mours
catmull-rom curve type Some enum names were changed/removed in OptiX 7.4, so some changes are necessary to make things compile still. In addition, OptiX 7.4 also adds built-in support for catmull-rom curves, so it is no longer necessary to convert the catmull-rom data to cubic bsplines first, and has endcaps disabled by default now, so can remove the special handling via any-hit programs that filtered them out before. Differential Revision: https://developer.blender.org/D13351
2021-11-23Merge branch 'blender-v3.0-release'Sergey Sharybin
2021-11-23Cycles: Fix possible access to non-initialized light sample in volumeSergey Sharybin
Happened in barbershop file where number of bounces to the light was reached. Differential Revision: https://developer.blender.org/D13336
2021-11-22Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-22Fix T93283: Cycles render error with CUDA CPU + GPU after recent optimizationBrecht Van Lommel
BVH2 triangle intersection was broken on the GPU since packed floats can't be loaded directly into SSE. The better long term solution for performance would be to build a BVH2 for GPU and Embree for CPU, similar to what we do for OptiX.
2021-11-22Fix part of T93278: transparent glass option not working with environment passBrecht Van Lommel
2021-11-19Merge branch 'blender-v3.0-release'Brecht Van Lommel
2021-11-19Fix T93046: Cycles world volume rendering very slow in OptiX with some scenesBrecht Van Lommel
With very long ray distance, OptiX ends up traversing many BVH nodes due to a feature that improves precision. However this causes very slow rendering. We now avoid generating such long rays by rejecting the few samples that have long ray distances and very low probability of being generated. This should not meaningfully affect render results. Thanks to Sergey and Patrick for the investigation.
2021-11-19Cleanup: fix typos in comments and docsBrecht Van Lommel
Contributed by luzpaz. Differential Revision: https://developer.blender.org/D10447
2021-11-18Merge branch 'blender-v3.0-release'Brecht Van Lommel