Real-time noise reduction in unity3d game--research and implementation of Square Enix document

Source: Internet
Author: User
Tags pow

See the technical documentation for SE for a decision on noise reduction,
This test scenario:


The paper mentions the main filtering methods in 3, and the last method has three ways
Conventional geometry-aware? Ltering,distribution-aware filtering,specular lobe-aware Filtering and Upsampling
According to the formula to do some of their own noise removal method does not know whether it is correct, although the effect = =;

Blogger's Steps:
1. Find noise (including noise and details on the map)
2. Calculate the interference of Specular,diffuse
3. Here are a number of methods: A. Use a different pixel instead of noise B. Sampling around the average (which causes ambiguity) ....

conventional geometry-aware? lteringbased on the most basic Gaussian filtering,

This method needs to calculate the depth depth and normal, which can be obtained by obtaining _cameradepthtexture and _cameranormalstexture, in detail, click


W is equivalent to judging the correctness of the filter, because the edges of the object may be mistaken for noise, resulting in rough or blurred edges.

W Weight formula

float wk = Gaussian (getdepth (i_)-Getdepth (j), _sigma_z);


Si is the location of the screen space point in pixel I
G is a Gaussian function



σ is the standard deviation of the Gaussian distribution


Inlinefloat Gaussian (float x, float y) {return _a * exp (((Pow (((() (((() ((() ((() ((() (((X-_x0), 2)/(2 * _sigma_x *_sigma_x)) + ((Pow ((Y-_y0) , 2))/(2 * _sigma_y *_sigma_y)));}



calculate the W result graph


The edges are clearly visible because they are judged by depth and normal, so there is no noise, and the details of diffuse are included, through w we can reduce the noise on the edge

The sample then compares the grayscale, and if the current point is too different from the sample point to be noise, the more sampling points are accurate, but there are limits.

The effect of W can be clearly found



The results are as follows (images can be viewed in larger view)

Enlarge results




Distribution-aware FilteringNoise detection and sharpening for easy identification of noise



T2 for Custom parameters
CI for smooth distribution

The B function is any smoothing kernel
Like what:
Gaussian filter Gaussian? ltering
anisotropic filtering anisotropic? ltering
Total variational minimization Variation minimization
Adjacent filter neighborhood? ltering
Nl-means algorithm
Wait a minute
Here bloggers use Gaussian filtering





W results as follows

The result is not open noise, but this method of W is contains noise, so can not use W to determine cut off,
Here the W is its first function, that is, to determine the noise, but the method of the input parameter β, can be adjusted to the high light portion and the shadow portion of the filtering degree (can be seen in the figure of the parameter specular is completely black, when the highlights are not filtered, the difference between the sampling points is 0), So this method does not require cut off

The results are as follows



compared to the previous method of image details (see Lena) Fidelity, high-gloss and other details lost almost 0


Implementing results in SE documents





specular Lobe-aware Filtering and upsamplingto improve the correctness of the filter, coupled with the determination of the highlight, eliminating the edge of the highlight of the false judgment


float ai = v * MAX (dot (N, Lightdir), 0);




The results of W are as follows

Added to the high light and dark parts of the judgment, making the high-gloss part of the noise reduction effect is good



The best way to do this in three different ways


The results are as follows




implementing results in SE documents




three methods of effect comparison



Code has been uploaded to GitHub

------by wolf96 http://blog.csdn.net/wolf96




Real-time noise reduction in unity3d game--research and implementation of Square Enix document

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.