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
diff options
context:
space:
mode:
authorLukas Stockner <lukas.stockner@freenet.de>2019-02-06 14:57:10 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-02-11 15:32:54 +0300
commitc10f5d15c25cbc5ee319835c90d5d2a4dda53497 (patch)
tree053fb40f47cdab5b42ed7f4ab40421c6317e8324 /intern/cycles/util
parent382fe85e293e3d00bd7e494bd270cd32bec8ecb6 (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!
Diffstat (limited to 'intern/cycles/util')
-rw-r--r--intern/cycles/util/util_system.cpp20
-rw-r--r--intern/cycles/util/util_system.h3
2 files changed, 23 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()) {
diff --git a/intern/cycles/util/util_system.h b/intern/cycles/util/util_system.h
index 0c001f11f0e..1e7cf1d9f2a 100644
--- a/intern/cycles/util/util_system.h
+++ b/intern/cycles/util/util_system.h
@@ -27,6 +27,9 @@ bool system_cpu_ensure_initialized();
/* Get total number of threads in all NUMA nodes / CPU groups. */
int system_cpu_thread_count();
+/* Get width in characters of the current console output. */
+int system_console_width();
+
/* Get number of available nodes.
*
* This is in fact an index of last node plus one and it's not guaranteed