Commit: 1926b15e3bb8234c51f3919fac01645038ea2471
Author: Lukas Stockner
Date:   Tue Aug 9 02:45:32 2016 +0200
Branches: soc-2016-cycles_denoising
https://developer.blender.org/rB1926b15e3bb8234c51f3919fac01645038ea2471

Cycles: Remove a few useless temporary files

===================================================================

D       intern/cycles/kernel/kernel_filter.h.orig
D       intern/cycles/kernel/kernel_filter.h.rej
D       intern/cycles/kernel/kernel_filter_old.h
D       intern/cycles/kernel/kernel_path.h.orig
D       intern/cycles/kernel/kernel_path_branched.h.orig
D       intern/cycles/render/buffers.cpp.orig
D       intern/cycles/render/buffers.h.orig
D       intern/cycles/render/film.cpp.orig
D       intern/cycles/render/film.h.orig
D       intern/cycles/render/integrator.cpp.orig

===================================================================

diff --git a/intern/cycles/kernel/kernel_filter.h.orig 
b/intern/cycles/kernel/kernel_filter.h.orig
deleted file mode 100644
index 7209431..0000000
--- a/intern/cycles/kernel/kernel_filter.h.orig
+++ /dev/null
@@ -1,506 +0,0 @@
-/*
- * Copyright 2011-2016 Blender Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "util_math_matrix.h"
-
-CCL_NAMESPACE_BEGIN
-
-#define FOR_PIXEL_WINDOW for(int py = low.y; py < high.y; py++) { \
-                             int ytile = (py < tile_y[1])? 0: ((py < 
tile_y[2])? 1: 2); \
-                                 for(int px = low.x; px < high.x; px++) { \
-                                     int xtile = (px < tile_x[1])? 0: ((px < 
tile_x[2])? 1: 2); \
-                                     int tile = ytile*3+xtile; \
-                                     buffer = buffers[tile] + (offset[tile] + 
py*stride[tile] + px)*kernel_data.film.pass_stride + 
kernel_data.film.pass_denoising;
-
-#define END_FOR_PIXEL_WINDOW }}
-
-#define FEATURE_PASSES 7 /* Normals, Albedo, Depth */
-
-ccl_device_inline void filter_get_features(int x, int y, float *buffer, float 
sample, float *features, float *mean)
-{
-       float sample_scale = 1.0f/sample;
-       features[0] = buffer[0] * sample_scale;
-       features[1] = buffer[1] * sample_scale;
-       features[2] = buffer[2] * sample_scale;
-       features[3] = buffer[6] * sample_scale;
-       features[4] = buffer[7] * sample_scale;
-       features[5] = buffer[8] * sample_scale;
-       features[6] = buffer[12] * sample_scale;
-       features[7] = x;
-       features[8] = y;
-       if(mean) {
-               for(int i = 0; i < DENOISE_FEATURES; i++)
-                       features[i] -= mean[i];
-       }
-#ifdef DENOISE_SECOND_ORDER_SCREEN
-       features[9] = features[7]*features[7];
-       features[10] = features[8]*features[8];
-       features[11] = features[7]*features[8];
-#endif
-}
-
-ccl_device_inline void filter_get_feature_variance(int x, int y, float 
*buffer, float sample, float *features, float *scale)
-{
-       float sample_scale = 1.0f/sample;
-       float sample_scale_var = 1.0f/(sample - 1.0f);
-       features[0] = saturate(buffer[3] * sample_scale_var) * sample_scale;
-       features[1] = saturate(buffer[4] * sample_scale_var) * sample_scale;
-       features[2] = saturate(buffer[5] * sample_scale_var) * sample_scale;
-       features[3] = saturate(buffer[9] * sample_scale_var) * sample_scale;
-       features[4] = saturate(buffer[10] * sample_scale_var) * sample_scale;
-       features[5] = saturate(buffer[11] * sample_scale_var) * sample_scale;
-       features[6] = saturate(buffer[13] * sample_scale_var) * sample_scale;
-       features[7] = 0.0f;
-       features[8] = 0.0f;
-#ifdef DENOISE_SECOND_ORDER_SCREEN
-       features[9] = 0.0f;
-       features[10] = 0.0f;
-       features[11] = 0.0f;
-#endif
-       for(int i = 0; i < DENOISE_FEATURES; i++)
-               features[i] *= scale[i]*scale[i];
-}
-
-ccl_device_inline float3 filter_get_pixel_color(float *buffer, float sample)
-{
-       float sample_scale = 1.0f/sample;
-       return make_float3(buffer[14], buffer[15], buffer[16]) * sample_scale;
-}
-
-ccl_device_inline float filter_get_pixel_variance(float *buffer, float sample)
-{
-       float sample_scale_var = 1.0f/(sample * (sample - 1.0f));
-       return average(make_float3(buffer[17], buffer[18], buffer[19])) * 
sample_scale_var;
-}
-
-ccl_device_inline float filter_fill_design_row(float *features, int rank, 
float *design_row, float *feature_transform, float *bandwidth_factor)
-{
-       design_row[0] = 1.0f;
-       float weight = 1.0f;
-       for(int d = 0; d < rank; d++) {
-               float x = math_dot(features, feature_transform + 
d*DENOISE_FEATURES, DENOISE_FEATURES);
-               float x2 = x*x;
-               if(bandwidth_factor) x2 *= 
bandwidth_factor[d]*bandwidth_factor[d];
-               if(x2 < 1.0f) {
-                       /* Pixels are weighted by Epanechnikov kernels. */
-                       weight *= 0.75f * (1.0f - x2);
-               }
-               else {
-                       weight = 0.0f;
-                       break;
-               }
-               design_row[1+d] = x;
-               if(!bandwidth_factor) design_row[1+rank+d] = x2;
-       }
-       return weight;
-}
-
-ccl_device_inline bool filter_firefly_rejection(float3 pixel_color, float 
pixel_variance, float3 center_color, float sqrt_center_variance)
-{
-       float color_diff = average(fabs(pixel_color - center_color));
-       float variance = sqrt_center_variance + sqrtf(pixel_variance) + 0.005f;
-       return (color_diff > 3.0f*variance);
-}
-
-/* Since the filtering may be performed across tile edged, all the neighboring 
tiles have to be passed along as well.
- * tile_x/y contain the x/y positions of the tile grid, 4 entries each:
- * - Start of the lower/left neighbor
- * - Start of the own tile
- * - Start of the upper/right neighbor
- * - Start of the next upper/right neighbor (not accessed)
- * buffers contains the nine buffer pointers (y-major ordering, starting with 
the lower left tile), offset and stride the respective parameters of the tile.
- */
-ccl_device void kernel_filter_estimate_params(KernelGlobals *kg, int sample, 
float **buffers, int x, int y, int *tile_x, int *tile_y, int *offset, int 
*stride, FilterStorage *storage, int4 filter_rect)
-{
-       storage += (y-filter_rect.y)*(filter_rect.z-filter_rect.x) + 
(x-filter_rect.x);
-
-       /* Temporary storage, used in different steps of the algorithm. */
-       float tempmatrix[(2*DENOISE_FEATURES+1)*(2*DENOISE_FEATURES+1)], 
tempvector[2*DENOISE_FEATURES+1];
-       float *buffer, features[DENOISE_FEATURES];
-
-       /* === Get center pixel color and variance. === */
-       float *center_buffer = buffers[4] + (offset[4] + y*stride[4] + 
x)*kernel_data.film.pass_stride + kernel_data.film.pass_denoising;
-       float3 center_color    = make_float3(center_buffer[14], 
center_buffer[15], center_buffer[16]) / sample;
-       float sqrt_center_variance = 
sqrtf(average(make_float3(center_buffer[17], center_buffer[18], 
center_buffer[19])) / (sample * (sample - 1.0f)));
-
-
-
-
-       /* === Calculate denoising window. === */
-       int2 low  = make_int2(max(tile_x[0], x - 
kernel_data.integrator.half_window),
-                             max(tile_y[0], y - 
kernel_data.integrator.half_window));
-       int2 high = make_int2(min(tile_x[3], x + 
kernel_data.integrator.half_window + 1),
-                             min(tile_y[3], y + 
kernel_data.integrator.half_window + 1));
-
-
-
-
-       /* === Shift feature passes to have mean 0. === */
-       float feature_means[DENOISE_FEATURES] = {0.0f};
-       FOR_PIXEL_WINDOW {
-               filter_get_features(px, py, buffer, sample, features, NULL);
-               for(int i = 0; i < FEATURE_PASSES; i++)
-                       feature_means[i] += features[i];
-       } END_FOR_PIXEL_WINDOW
-
-       float pixel_scale = 1.0f / ((high.y - low.y) * (high.x - low.x));
-       for(int i = 0; i < FEATURE_PASSES; i++)
-               feature_means[i] *= pixel_scale;
-       feature_means[7] = x;
-       feature_means[8] = y;
-
-       /* === Scale the shifted feature passes to a range of [-1; 1], will be 
baked into the transform later. === */
-       float *feature_scale = tempvector;
-       math_vector_zero(feature_scale, DENOISE_FEATURES);
-
-       FOR_PIXEL_WINDOW {
-               filter_get_features(px, py, buffer, sample, features, 
feature_means);
-               for(int i = 0; i < FEATURE_PASSES; i++)
-                       feature_scale[i] = max(feature_scale[i], 
fabsf(features[i]));
-       } END_FOR_PIXEL_WINDOW
-
-       for(int i = 0; i < FEATURE_PASSES; i++)
-               feature_scale[i] = 1.0f / max(feature_scale[i], 0.01f);
-       feature_scale[7] = feature_scale[8] = 1.0f / 
kernel_data.integrator.half_window;
-#ifdef DENOISE_SECOND_ORDER_SCREEN
-       feature_scale[9] = feature_scale[10] = feature_scale[11] = 1.0f / 
(kernel_data.integrator.half_window*kernel_data.integrator.half_window);
-#endif
-
-
-
-
-       /* === Generate the feature transformation. ===
-        * This transformation maps the DENOISE_FEATURES-dimentional feature 
space to a reduced feature (r-feature) space
-        * which generally has fewer dimensions. This mainly helps to prevent 
overfitting. */
-       float *feature_matrix = tempmatrix, *perturbation_matrix = tempmatrix + 
DENOISE_FEATURES*DENOISE_FEATURES;
-       math_matrix_zero_lower(feature_matrix, DENOISE_FEATURES);
-       math_matrix_zero_lower(perturbation_matrix, DENOISE_FEATURES);
-       FOR_PIXEL_WINDOW {
-               filter_get_features(px, py, buffer, sample, features, 
feature_means);
-               for(int i = 0; i < FEATURE_PASSES; i++)
-                       features[i] *= feature_scale[i];
-               math_add_gramian(feature_matrix, DENOISE_FEATURES, features, 
1.0f);
-
-               filter_get_feature_variance(px, py, buffer, sample, features, 
feature_scale);
-               math_add_gramian(perturbation_matrix, DENOISE_FEATURES, 
features, 1.0f);
-       } END_FOR_PIXEL_WINDOW
-       math_lower_tri_to_full(feature_matrix, DENOISE_FEATURES);
-
-       float *feature_transform = &storage->transform[0], *singular = 
tempvector + DENOISE_FEATURES;
-       int rank = svd(feature_matrix, feature_transform, singular, 
DENOISE_FEATURES);
-
-       float *eigenvector_guess = tempvector + DENOISE_FEATURES;
-       for(int i = 0; i < DENOISE_FEATURES; i++)
-               eigenvector_guess[i] = 1.0f;
-       float singular_threshold = 0.01f + 2.0f * 
sqrtf(math_largest_eigenvalue(perturbation_matrix, DENOISE_FEATURES, 
eigenvector_guess, tempvector + 2*DENOISE_FEATURES));
-       if (x%100== 0 && y%100 == 0) {
-               for(int r = 0; r < DENOISE_FEATURES; r++) {
-                       int c;
-                       for(c = 0; c <= r; c++) printf("%f ", (double) 
perturbation_matrix[r*DENOISE_FEATURES+c]);
-                       for(; c < DENOISE_FEATURES; c++) printf("%f ", (double) 
perturbation_matrix[c*DENOISE_FEATURES+r]);
-                       printf("\n");
-               }
-               printf("Singular val: %f\n", (double) (0.5f*(singular_threshold 
- 0.01f)));
-       }
-
-       rank = 0;
-       for(int i = 0; i < DENOISE_FEATURES; i++, rank++) {
-               float s = sqrtf(singular[i]);
-               if(i >= 2 && s < singular_threshold)
-                       break;
-               /* Bake the feature scaling into the transformation matrix. */
-               for(int j = 0; j < DENOISE_FEATURES; j++)
-                       feature_transform[rank*DENOISE_FEATURES + j] *= 
feature_scale[j];
-       }
-
-#ifdef WITH_CYCLES_DEBUG_FILTER
-       storage->feature_matrix_norm = 0.0f;//feature_matrix_norm;
-       storage->singular_threshold = singular_threshold;
-       for(int i = 0; i < DENOISE_FEATURES; i++

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to