forked from blender/blender
0
0
Fork 0
The official Blender project repository.
Go to file
Sergey Sharybin 02b5c04b2b Fix intersection distance offset in Cycles
The intersection distance offset in Cycles could have returned
a denormal floating point value for the input values of 0 (and
for the denormal input value).

This could lead to a situation when ray is unable to be advanced
when it hits an edge between two triangles: the intersection will
keep bouncing between two adjacent triangles. This is because the
ray->tmin is compared inclusively, and 0 >= <denormal zero>.

The solution is to return the smallest possible normalized floating
point value from the intersection_t_offset if the input is zero
or a denormal value (which is covered by the same t == 0 check).

This fix is hard to measure on the user level. The old code did
not cause any infinite traversal loop because of the way how the
integration is organized (some kernels offset ray.P, others check
for the number of bounces). It is possible that this fixes some
corner cases of noise: i.e. if some shadow rays falsefully were
considered occluded due to reached maximum number of bounces.

The actual problematic case was discovered during working on a
prototype which had an in-lined intersection loop with the ray
tmin offset.

Pull Request: blender/blender#107364
2023-04-26 11:36:37 +02:00
.gitea Gitea: update bug report template for security policy 2023-04-11 12:14:01 +02:00
.github Docs: change Git URLs to point projects.blender.org instead of git.blender.org 2023-02-07 14:23:05 +01:00
build_files HIP: hipew and build system updates for new APIs, including HIP-RT 2023-04-25 20:19:43 +02:00
doc Docs: note that renaming data-blocks sorted them which impacts iteration 2023-04-21 20:36:29 +10:00
extern HIP: hipew and build system updates for new APIs, including HIP-RT 2023-04-25 20:19:43 +02:00
intern Fix intersection distance offset in Cycles 2023-04-26 11:36:37 +02:00
locale I18n: Updated translation files from SVN trunk (r6467). 2023-04-17 12:00:22 +02:00
release Fix snap package failing to launch on some systems after core20 update 2023-04-25 15:50:26 +02:00
scripts Keymap: cancel 3D viewport operations using Escape 2023-04-26 16:14:07 +10:00
source Cleanup: remove redundant casts 2023-04-26 19:03:21 +10:00
tests macOS/GTests: simplify blender_test library linking 2023-04-19 09:05:43 +05:30
tools Cleanup: spelling in comments 2023-04-26 16:14:07 +10:00
.clang-format Clang-Format: Allow empty functions to be single-line 2023-03-29 16:50:54 +02:00
.clang-tidy Clang-tidy: Ignore variable name length and .c/.cc include warnings 2022-05-06 15:26:54 +02:00
.editorconfig pyproject: add configuration for autopep8 2022-04-22 10:13:39 +10:00
.git-blame-ignore-revs Cleanup: git-blame-ignore-revs: Update policy & commits 2021-01-29 13:20:32 +05:30
.gitignore Ignore build files for VS and VS Code 2023-03-07 17:38:34 +01:00
CMakeLists.txt Cycles: add HIP RT device, for AMD hardware ray tracing on Windows 2023-04-25 20:19:43 +02:00
COPYING == docs == 2010-10-13 14:44:22 +00:00
GNUmakefile Build: remove smatch, sparse & splint checking scripts 2023-04-21 23:32:55 +10:00
README.md Update references to the new projects platform and main branch 2023-02-07 14:18:19 +01:00
make.bat make.bat: adjust for recent submodule changes 2023-03-16 17:51:12 -06:00
pyproject.toml pyproject: remove tools/pyproject.toml 2023-03-01 22:18:28 +11:00

README.md

Blender

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.

Blender screenshot

Project Pages

Development

License

Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.

See blender.org/about/license for details.