diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2019-02-06 14:57:10 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-02-11 15:39:08 +0300 |
commit | e379a9ba918dbf27e81fd289e98314197109b54c (patch) | |
tree | 053fb40f47cdab5b42ed7f4ab40421c6317e8324 /intern/cycles/util/util_system.cpp | |
parent | 382fe85e293e3d00bd7e494bd270cd32bec8ecb6 (diff) |
Cycles: add animation denoising Python operator.
This adds a cycles.denoise_animation operator, which denoises an animation
sequence or individual file. Renders must be saved as multilayer EXR files
with denoising data passes.
By default file path and frame range come from the current scene, and EXR
files are denoised in-place. Alternatively, a different input and/or output
file path can be provided.
Denoising settings come from the current view layer. Renders can be denoised
again with different settings, as the original noisy image is preserved along
with other passes and metadata.
There is no user interface yet for this feature, that comes later.
Code by Lukas with modifications by Brecht. This feature was originally
developed for Tangent Animation, thanks for the support!
Differential Revision: https://developer.blender.org/D3889
Diffstat (limited to 'intern/cycles/util/util_system.cpp')
-rw-r--r-- | intern/cycles/util/util_system.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/intern/cycles/util/util_system.cpp b/intern/cycles/util/util_system.cpp index a22bd25ce77..6255596cd06 100644 --- a/intern/cycles/util/util_system.cpp +++ b/intern/cycles/util/util_system.cpp @@ -32,6 +32,7 @@ # include <sys/types.h> #else # include <unistd.h> +# include <sys/ioctl.h> #endif CCL_NAMESPACE_BEGIN @@ -113,6 +114,25 @@ bool system_cpu_run_thread_on_node(int node) return numaAPI_RunThreadOnNode(node); } +int system_console_width() +{ + int columns = 0; + +#ifdef _WIN32 + CONSOLE_SCREEN_BUFFER_INFO csbi; + if(GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi)) { + columns = csbi.dwSize.X; + } +#else + struct winsize w; + if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0) { + columns = w.ws_col; + } +#endif + + return (columns > 0) ? columns : 80; +} + int system_cpu_num_active_group_processors() { if(!system_cpu_ensure_initialized()) { |