5
$\begingroup$

I am trying to simulate a camera calibration procedure using Blender and for this reason I am trying to generate images of a checkerboard pattern to use in the calibration algorithm. After rendering I noticed two problems (as you can see in the attached image):

  • The straight lines are "pixelated"
  • The angles of the squares in the pattern are not touching

Complete view:

Complete view

The problem:

Zoomed view

I am rendering with cycles at 1600x1200 resolution, the lens used is a perspective lens. The checkerboard is generated using the materials checkerboard option and roughness is set to 0.

$\endgroup$
  • $\begingroup$ How many samples are you using? with an emission shader, I got this result at around the 2nd sample, but after 5 samples the noise artefacts were gone. $\endgroup$ – TLousky Feb 7 '17 at 13:26
  • $\begingroup$ Do you mean the sampling in the global scene settings? if yes I am using 10 samples. I am using a Diffuse BSDF shader with a light source behind my cameras (more faithful simulation perhaps?). An Emission shader gave some artifacts but less than the diffuse shader. I then reduced the number of samples to 1 and it gave a perfect result (weird?). does this have any draw backs? $\endgroup$ – Mahdi Chamseddine Feb 7 '17 at 13:38
  • $\begingroup$ If you just want to test for reading the chessboard and not anything optical or light related, then the more perfect the result, the better I would assume (?). The thing with rendering engines like cycles, is that they perform all kinds of optimization, denoising and filtering processes with each sample - which improve complex scenes and give better results while reducing rendering times. This could go contrary to what you're trying to achieve, which is simply to render out a perfect chessboard. A single sample doesn't give the engine time to adaptively filter out the result. $\endgroup$ – TLousky Feb 7 '17 at 13:43
  • $\begingroup$ Thank you for your help, this makes sense. I think in this case that the high frequency of the edges/corners is somehow washed out by the filtering algorithms and thus showing a "smoother" and thus pixelated gradient which is not desired in my case. $\endgroup$ – Mahdi Chamseddine Feb 7 '17 at 13:50
  • $\begingroup$ You should model the chessboard (nxn squares in the same model object), use two materials set alternatively to each square. This will avoid the approximation as it will follow the vertex model (so no checker texture optimizations). $\endgroup$ – lemon Feb 7 '17 at 14:07
6
$\begingroup$

As suggested in the comments, this is an artifact from anti-aliasing.

In the Film section of the Render tab in the Properties panel, set the Width of the Pixel Filter all the way down (0.01). That in essence turns off the anti-aliasing.
anti-aliasing setting


If you are using a shadeless material (Emission shader) so noise is not a problem, then there is another way to remove the anti-aliasing.
Set the samples to one.
With only one sample there are not enough samples for the anti-aliasing algorithms to work, because there is only one.

|improve this answer|||||
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.