So I wrote this lil' python script to obtain the camera matrix (intrinsics times extrinsics) from my scene and its active camera. It's been working great, under the following settings.

Render resolution: x = 1000; y = 1000

Sensor size: width = 50; height = 50

Pixel aspect ratio (PAR): x / y = 1

Today, I used my script under a new setting,

Render resolution: x = 1920; y = 1080

Sensor size: width = 50; height = 18

PAR: x / y = 1

and my camera matrix projects a point (which appears inside the camera as per the viewport, i.e., the "numpad0 view") to a negative y pixel value -- outside the frame!

I thought about it, and it makes sense. The (imaginary) physical sensor is shorter in height (18) than in width (50), and I am (unreasonably) demanding unproportional resolutions and a PAR of 1. Inevitably, some of the 1080 pixels in the y direction fall outside of the physical sensor!


  1. Is my analysis above correct?
  2. If so, why does Blender still show me the complete rendering (instead of the partial photo truncated in the y direction), even if I'm being unreasonable?
  3. An even higher-level question: why aren't these three quantities---resolution, pixel aspect ratio, and sensor size---coupled in Blender? If a ridiculous user like myself is demanding

Render resolution: x = 1920; y = 1080

PAR: x / y = 1

shouldn't the sensor size be constrained to a fixed, computable value already?


Your Answer

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

Browse other questions tagged or ask your own question.