http://www.miikahweb.com/feed.php MiikaHweb - Blender Commits By Lukasstockner97 http://www.miikahweb.com/ MiikaHweb - Blender Commits By Lukasstockner97 fi Fri, 23 Apr 21 11:24:43 +0000 MiikaHweb RSS contact at miikahweb.com <![CDATA[[2f6d62b] master: Cycles: Implement Dwivedi guiding for path-traced subsurface...]]> http://www.miikahweb.com/en/blender/git-logs/commit/2f6d62bf88621c9a33aa01fae6548d89d0eaccd9 2f6d62b
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Implement Dwivedi guiding for path-traced subsurface scattering

Cycles has supported path-traced subsurface scattering for a while, but while it's
more accurate than other approaches, the increase in noise makes it an expensive option.

To improve this, this patch implements Dwivedi guiding, a technique that is based on
zero-variance random walk theory from particle physics and helps to produce shorter
random walks with more consistent throughput.

The idea behind this is that in non-white materials, each scattering event inside the
medium reduces the path throughput. Therefore, the darker the material is, the lower the
contribution of paths that travel far from the origin is.
In order to reduce variance, Dwivedi guiding uses modified direction and distance sampling
functions that favor paths which go back towards the medium interface.
By carefully selecting these sampling distributions, variance can be greatly reduced, and
as a neat side effect shorter paths are produced, which speeds up the process.

One limitation of just blindly applying this is that the guiding is derived from the
assumption of a medium that covers an infinite half-space. Therefore, at corners or thin
geometry where this does not hold, the algorithm might lead to fireflies.
To avoid this, the implementation here uses MIS to combine the classic and guided sampling.
Since each of those works on one of the three color channels, the final estimator combines
six sampling techniques. This results in some unintuitive math, but I tried to structure
it in a way that makes some sense.

Another improvement is that in areas where the other side of the mesh is close (e.g. ears),
the algorithm has a chance to switch to guiding towards the other side. This chance is based
on how deep the random walk is inside the object, and once again MIS is applied to the
decision, giving a total of nine techniques.

Combining all this, the noise of path-traced subsurface scattering is reduced significantly.
In my testing with the Rain character model and a simple lighting setup, the path-traced
SSS is now actually less noisy than the Christensen-Burley approximation at same render time
while of course still being significantly more realistic.

Differential Revision: https://developer.blender.org/D9932

----------------------------------------
1 Path Changed]]>
Sun, 14 Feb 2021 16:07:19 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/2f6d62bf88621c9a33aa01fae6548d89d0eaccd9Lukas Stockner
<![CDATA[[0f2ae61] master: Use mmap() IO for reading uncompressed .blends]]> http://www.miikahweb.com/en/blender/git-logs/commit/0f2ae614a17a7c231b2a6e129633a99d9d1f12e3 0f2ae61
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Use mmap() IO for reading uncompressed .blends

Instead of submitting tons of tiny IO syscalls, we can speed things up
significantly by `mmap`ing the .blend file into virtual memory and directly
accessing it.

In my local testing, this speeds up loading the Dweebs file with all its
linked files from 19sec to 10sec (on Linux).

As far as I can see, this should be supported on Linux, OSX and BSD.
For Windows, a second code path uses `CreateFileMapping` and
`MapViewOfFile` to achieve the same result.

Reviewed By: mont29, brecht

Differential Revision: https://developer.blender.org/D8246

----------------------------------------
13 Paths Changed]]>
Thu, 14 Jan 2021 21:03:29 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/0f2ae614a17a7c231b2a6e129633a99d9d1f12e3Lukas Stockner
<![CDATA[[688e5c6] master: Fix T82351: Cycles: Tile stealing glitches with adaptive sampling...]]> http://www.miikahweb.com/en/blender/git-logs/commit/688e5c6d3895a8f6b5aec06977c9dcb4b00e0a76 688e5c6
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Fix T82351: Cycles: Tile stealing glitches with adaptive sampling

In my testing this works, but it requires me to remove the min(start_sample...) part in the
adaptive sampling kernel, and I assume there's a reason why it was there?

Reviewed By: brecht

Maniphest Tasks: T82351

Differential Revision: https://developer.blender.org/D9445

----------------------------------------
8 Paths Changed]]>
Mon, 11 Jan 2021 20:04:49 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/688e5c6d3895a8f6b5aec06977c9dcb4b00e0a76Lukas Stockner
<![CDATA[[b70f4a2] master: Fix T84496: Cycles: Tile stealing does not work with NLM]]> http://www.miikahweb.com/en/blender/git-logs/commit/b70f4a265a22ceb2c31dd54002a318d0f949e294 b70f4a2
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Fix T84496: Cycles: Tile stealing does not work with NLM

Reviewed By: brecht

Maniphest Tasks: T84496

Differential Revision: https://developer.blender.org/D10066

----------------------------------------
1 Path Changed]]>
Mon, 11 Jan 2021 20:04:49 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/b70f4a265a22ceb2c31dd54002a318d0f949e294Lukas Stockner
<![CDATA[[8491e4a] master: Fix unreported: Cycles CLI device override doesn't set peer...]]> http://www.miikahweb.com/en/blender/git-logs/commit/8491e4ab8636a90120f94bede047d591c3ca21cc 8491e4a
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Fix unreported: Cycles CLI device override doesn't set peer memory usage flag

Reviewed By: brecht

Differential Revision: https://developer.blender.org/D9929

----------------------------------------
1 Path Changed]]>
Fri, 25 Dec 2020 22:13:03 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/8491e4ab8636a90120f94bede047d591c3ca21ccLukas Stockner
<![CDATA[[64faa59] master: Cycles: Fix debug compilation after tile stealing commit]]> http://www.miikahweb.com/en/blender/git-logs/commit/64faa59846f20fbcdcdd8047aa86319b82243ccd 64faa59
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Fix debug compilation after tile stealing commit

----------------------------------------
1 Path Changed]]>
Sat, 31 Oct 2020 13:04:30 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/64faa59846f20fbcdcdd8047aa86319b82243ccdLukas Stockner
<![CDATA[[517ff40] master: Cycles: Implement tile stealing to improve CPU+GPU rendering...]]> http://www.miikahweb.com/en/blender/git-logs/commit/517ff40b124bc9d1324ccf7561a59ac51bf86602 517ff40
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Implement tile stealing to improve CPU+GPU rendering performance

While Cycles already supports using both CPU and GPU at the same time, there
currently is a large problem with it: Since the CPU grabs one tile per thread,
at the end of the render the GPU runs out of new work but the CPU still needs
quite some time to finish its current times.

Having smaller tiles helps somewhat, but especially OpenCL rendering tends to
lose performance with smaller tiles.

Therefore, this commit adds support for tile stealing: When a GPU device runs
out of new tiles, it can signal the CPU to release one of its tiles.
This way, at the end of the render, the GPU quickly finishes the remaining
tiles instead of having to wait for the CPU.

Thanks to AMD for sponsoring this work!

Differential Revision: https://developer.blender.org/D9324

----------------------------------------
7 Paths Changed]]>
Sat, 31 Oct 2020 00:57:39 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/517ff40b124bc9d1324ccf7561a59ac51bf86602Lukas Stockner
<![CDATA[[523414d] master: Cleanup: clang-format]]> http://www.miikahweb.com/en/blender/git-logs/commit/523414dda2bf81b69b1c04e1145ac21758fa4268 523414d
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cleanup: clang-format

----------------------------------------
5 Paths Changed]]>
Sat, 31 Oct 2020 00:57:39 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/523414dda2bf81b69b1c04e1145ac21758fa4268Lukas Stockner
<![CDATA[[350ed86] master: Cleanup: clang-format]]> http://www.miikahweb.com/en/blender/git-logs/commit/350ed861f149142784fc184086e92664b72a10ef 350ed86
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cleanup: clang-format

----------------------------------------
1 Path Changed]]>
Fri, 02 Oct 2020 17:31:55 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/350ed861f149142784fc184086e92664b72a10efLukas Stockner
<![CDATA[[cfa101c2] master: Cycles: Add command line option for overriding the compute...]]> http://www.miikahweb.com/en/blender/git-logs/commit/cfa101c22871c3d115f854e23f8b656b1c58a304 cfa101c2
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Add command line option for overriding the compute device

The current way of setting the compute device makes sense for local
use, but for headless rendering it it a massive pain to get Cycles
to use the correct device, usually involving entire Python scripts.

Therefore, this patch adds a simple command-line option to Blender
for specifying the type of device that should be used. If the option
is present, the settings in the user preferences and the scene are
ignored, and instead all devices matching the specified type are used.

Differential Revision: https://developer.blender.org/D9086

----------------------------------------
7 Paths Changed]]>
Fri, 02 Oct 2020 17:26:35 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/cfa101c22871c3d115f854e23f8b656b1c58a304Lukas Stockner
<![CDATA[[acd4687] master: Merge branch 'blender-v2.90-release']]> http://www.miikahweb.com/en/blender/git-logs/commit/acd46870630a4c968d5eebde2b1b34cf22cc3c77 acd4687
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Merge branch 'blender-v2.90-release'

----------------------------------------
0 Paths Changed]]>
Mon, 10 Aug 2020 21:16:25 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/acd46870630a4c968d5eebde2b1b34cf22cc3c77Lukas Stockner
<![CDATA[[bc5d144] master: Fix T77298: Can't bake texture with multiple objects]]> http://www.miikahweb.com/en/blender/git-logs/commit/bc5d144855d540d6ea663b0bb13607b692b6b5f0 bc5d144
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Fix T77298: Can't bake texture with multiple objects

The problem here is that the baking code uses tiles to exchange pixel data with
the renderer since a recent-ish refactor, but the code that sent data to the
renderer did not initialize the bake result pixels.

Therefore, when the baking process for the second object started, Cycles
received empty tiles and sent them back as-is if the second object did not
cover them.

By initializing the tiles with the result of the previous bakes, we avoid this
problem.

----------------------------------------
1 Path Changed]]>
Mon, 10 Aug 2020 20:54:01 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/bc5d144855d540d6ea663b0bb13607b692b6b5f0Lukas Stockner
<![CDATA[[7198e9d] master: Fix unreported crash in gpu_free_unused_buffers]]> http://www.miikahweb.com/en/blender/git-logs/commit/7198e9d10e2c9841f6ab35bdb5570ea1c7ebab30 7198e9d
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Fix unreported crash in gpu_free_unused_buffers

As far as I can see, this problem was introduced with the gpu_free_unused_buffers() changes in rB97b597c.

The code checks the returned pointer to stop looping, but the last iteration will return the last GPUTexture and set the queue to NULL, meaning that the next pop() will crash.

Differential Revision: https://developer.blender.org/D8468

----------------------------------------
1 Path Changed]]>
Wed, 05 Aug 2020 00:35:23 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7198e9d10e2c9841f6ab35bdb5570ea1c7ebab30Lukas Stockner
<![CDATA[[6dabfac] master: Sky: Code style and formatting fixes]]> http://www.miikahweb.com/en/blender/git-logs/commit/6dabfacb381627752737abfd52053da2191249ec 6dabfac
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Sky: Code style and formatting fixes

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
3 Paths Changed]]>
Mon, 13 Jul 2020 01:08:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6dabfacb381627752737abfd52053da2191249ecLukas Stockner
<![CDATA[[6a3c91f] master: Cycles: Clamp Sky Texture altitude to avoid numerical issues]]> http://www.miikahweb.com/en/blender/git-logs/commit/6a3c91f7adc8005fc19c58a4e8a219ae22eab4c0 6a3c91f
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Clamp Sky Texture altitude to avoid numerical issues

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
1 Path Changed]]>
Mon, 13 Jul 2020 01:08:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/6a3c91f7adc8005fc19c58a4e8a219ae22eab4c0Lukas Stockner
<![CDATA[[7aacf2e] master: Cycles: Account for Sky Texture mapping in the sun sampling...]]> http://www.miikahweb.com/en/blender/git-logs/commit/7aacf2e119b82fa3190eb717cb99430e1dfd3b39 7aacf2e
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Account for Sky Texture mapping in the sun sampling code

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
1 Path Changed]]>
Mon, 13 Jul 2020 01:08:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/7aacf2e119b82fa3190eb717cb99430e1dfd3b39Lukas Stockner
<![CDATA[[192bd26] master: Cycles: Change precomputed Sky Texture mapping to prioritize...]]> http://www.miikahweb.com/en/blender/git-logs/commit/192bd2605f2580ee221d2e304fe2dfea573753d5 192bd26
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Change precomputed Sky Texture mapping to prioritize the horizon

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
3 Paths Changed]]>
Mon, 13 Jul 2020 01:08:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/192bd2605f2580ee221d2e304fe2dfea573753d5Lukas Stockner
<![CDATA[[41e6f9b] master: Cycles: Add control for sun intensity in Sky Texture and change...]]> http://www.miikahweb.com/en/blender/git-logs/commit/41e6f9bd437cb5f23dd6a8ad41c6142b0520f65d 41e6f9b
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Add control for sun intensity in Sky Texture and change altitude to km

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
12 Paths Changed]]>
Mon, 13 Jul 2020 01:08:11 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/41e6f9bd437cb5f23dd6a8ad41c6142b0520f65dLukas Stockner
<![CDATA[[e2736af] master: Cycles: Add versioning code for the new Sky Texture model]]> http://www.miikahweb.com/en/blender/git-logs/commit/e2736afdbefde486bc051627dbedeaa28cdb972e e2736af
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Add versioning code for the new Sky Texture model

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
1 Path Changed]]>
Mon, 13 Jul 2020 01:08:07 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/e2736afdbefde486bc051627dbedeaa28cdb972eLukas Stockner
<![CDATA[[77cd818] master: Cycles: Remove Vector input on Sky texture when using the included...]]> http://www.miikahweb.com/en/blender/git-logs/commit/77cd8182f865022320d0e48b31b599bad033dab5 77cd818
Branches : master
Author : Lukas Stockner (lukasstockner97)
----------------------------------------
Cycles: Remove Vector input on Sky texture when using the included sun

When using the sun, we need to sun sampling logic to avoid excessive
sampling map resolution, but that logic assumes that the Vector input
comes from the view direction.
That is the case in the vast majority of cases anyways, so the easiest
solution is to just remove the input for that case.

Differential Revision: https://developer.blender.org/D8091

----------------------------------------
2 Paths Changed]]>
Mon, 13 Jul 2020 00:00:38 +0000 http://www.miikahweb.com/en/blender/git-logs/commit/77cd8182f865022320d0e48b31b599bad033dab5Lukas Stockner