Skip to main content
23 votes
Accepted

How are mipmap levels computed in Metal?

Mip selection is pretty well standardized across devices today—with the exception of some of the nitty-gritty details of anisotropic filtering, which is still up to the individual GPU manufacturers to ...
Nathan Reed's user avatar
  • 25.2k
19 votes
Accepted

Why use a tent filter in path tracing?

The theoretical ideal antialiasing filter for discretely sampled data is a sinc filter, because it perfectly removes all frequencies higher than the Nyquist frequency, while leaving alone all the ...
Nathan Reed's user avatar
  • 25.2k
12 votes
Accepted

Help me grasp Anisotropic Filtering (AF)

To understand the nature of anisotropic filtering, you need to have a firm understanding of what texture mapping really means. The term "texture mapping" means to assign positions on an object to ...
Nicol Bolas's user avatar
  • 9,932
7 votes
Accepted

Path tracer - multi layered materials and importance sampling

Wenzel Jakob et al presented a framework for layered Materials at SIGGRAPH 2014. Section 6.2 explains importance sampling. If you prefer code over equations, the method is implemented in the Mitsuba ...
Stefan Werner's user avatar
5 votes

Help me grasp Anisotropic Filtering (AF)

A few points that you probably already know, but that I just want to put out there for others reading this. Filtering in this case refers to low-pass filtering like you might get from a Gaussian Blur ...
user1118321's user avatar
  • 3,441
5 votes

Why use a tent filter in path tracing?

I just looked at Wikipedia articles about Bilinear interpolation. A tent filter is a kind of Bilinear interpolation. A Bilinear interpolation interpolates on 2 dimensions. It first linearly ...
bram0101's user avatar
  • 1,605
4 votes
Accepted

Pixel dispersion (dissolving) algorithms

A very simple low memory approach If you really want to use as little memory as possible, it can be done with not much more memory than that required to store a single image (the first frame) ...
trichoplax is on Codidact now's user avatar
4 votes

What does filter mean in glint rendering and texture mapping?

Filtering refers to image processing operations that generate a new image by applying a filter kernel to an existing image. This is used for many purposes, but one of the most common is to resample ...
Nathan Reed's user avatar
  • 25.2k
4 votes
Accepted

Ray tracing - partial derivatives for texture lookup

Yes, ray differentials are the way to go. The Paper by Igehy introduces them for the use case of filtered texture lookups. When generating the primary rays, you initialise the differentials to reflect ...
Stefan Werner's user avatar
4 votes
Accepted

Kaiser windowed sinc filter for mip mapping

I was curious so I tried it. I used the Kaiser Window from Wikipedia: $\frac{I_0\left(\alpha\sqrt{1-x^2}\right)}{I_0\left(\alpha\right)}$ This page has a slightly different formulation using $\pi\...
Olivier's user avatar
  • 1,585
4 votes
Accepted

Texture units parameters in OpenGL

Your understanding of the behavior of texture units and state is confused. That's to be expected: OpenGL's pre-DSA API is not making it easy to understand this. As far as core profile OpenGL is ...
Nicol Bolas's user avatar
  • 9,932
3 votes
Accepted

Is there a quicker way to draw a symmetric, scale-invariant (declining color) gradient around an ellipse?

You can exactly find the distance to a 2D ellipse using the signed distance function of an ellipse. Here is one by iq on shadertoy: https://www.shadertoy.com/view/4sS3zz Then a scale invariant way of ...
Reynolds's user avatar
  • 1,283
3 votes
Accepted

Unexpected results from Mitchell-Netravali

Mitchell–Netravali has negative lobes, which are generally not recommended for small sample counts from what I understand; you tend to end up with both the positive and negative areas undersampled. ...
Nathan Reed's user avatar
  • 25.2k
3 votes
Accepted

Plotting pbrt-v3 Gaussian filter

You probably want to set sigma to be a fraction of the radius, rather than a fixed value. Sigma controls the actual shape of the filter, while radius just controls how far out the filter gets cut off (...
Nathan Reed's user avatar
  • 25.2k
2 votes

Pixel dispersion (dissolving) algorithms

You could do this entirely within an OpenGL/WebGL fragment shader: Attach the image you wish to emerge as a texture/sampler2D. Attach uniforms for the current time, as well as the time you want the ...
Jack's user avatar
  • 341
2 votes

Does film filter introduce bias in path tracing?

This is an answer to your comment rather than the title of your question. It can be considered as a partial answer. The bias in path tracers are introduced by the estimators. For example, think of the ...
Kaan E.'s user avatar
  • 446
2 votes
Accepted

How does the GPU know whether to magnify/minify?

Minification vs magnification is an extension of mipmap selection. When you calculate the desired mip level, it can come out to be less than 0 (or in general, less than the sampler's configured ...
Nathan Reed's user avatar
  • 25.2k
2 votes
Accepted

How do I normalize all pixel values such that all pixel values are 'pulled towards' the mean?

Here are both images "cleaned" using simple luminance thresholding like I suggested in the comments. There was nothing special done to these images, a simple "is the luminance below ...
pmw1234's user avatar
  • 3,354
1 vote
Accepted

Why don't high-res shadow maps produce aliasing artifacts due to minification?

Turns out minification aliasing is a real problem, just as with regular (color) textures. Following are a couple of papers demonstrating the artifacts and presenting solutions (basically low-pass ...
Daniel's user avatar
  • 121
1 vote
Accepted

Texture prefiltering for Linearly Transformed Cosines

I achieved similar result to theirs. First, the target texture for mip generation is base texture size + two margins, each equals 0.125 of base size. Then during generation of base mip level, there ...
mdkdy's user avatar
  • 2,179
1 vote

Properties of the image reconstruction filter in rendering

I am replying to the last edit of the question. You can show that $\|h_j * f \|^2_2 \leq \|h_j\|^2_1\|f\|^2_2$ from Young's theorem. Provided that $\|h_j\|_1 \leq 1$ you have: $\|h_j * f \|^2_2 \leq ...
lightxbulb's user avatar
  • 2,226
1 vote

What is a common approach to smooth structures in textures?

I don't have enough rep to add a comment so... You could use a post process based anti-aliasing technique like FXAA or SMAA. Also, if performance is not a priority, you could go for SSAA. Another ...
Nacho's user avatar
  • 110
1 vote

Suggested image preprocessing before applying threshold

In your case, I don't think a pre-processing is necessary. You may find the Hough transform useful in your case. Since your image is big, it can be difficult to have a straight line due to the noise ...
AlexM's user avatar
  • 31

Only top scored, non community-wiki answers of a minimum length are eligible