1
$\begingroup$

When a 3D scene is rendered to a 2D display, the image is distorted near the edges of the display.

If a 3D scene is rendered onto a hemispherical display, will there still be warping?

$\endgroup$

2 Answers 2

2
$\begingroup$

There will be no distortion as long as you project the scene properly onto your virtual camera.

In traditional raster graphics the scene is projected onto a plane.

Projection

This makes it so that two equal solid angles to the camera can take up vastly different amounts of space on the screen.

Distortion

Thus, the distortion does not come from the screen itself but from the projection used. Now, if you render your scene using a hemisphere projection, you should have no warping whatsoever. However, rendering using such projection might prove to be non trivial or straight up imposible using common methods (an exception to this is ray-tracing/marching/casting where all you need to change is how you generate your camera rays).

An alternative is to render various views (one facing the front, one facing upwards, etc) rendered in the classic flat projection and then "stitch" those together by mapping them to the screen somehow.

Here is a github repository of such a thing: https://github.com/shaunlebron/blinky

TL;DR : The display has little to do with how distorted an image appears. It is the projection used by the software that creates warping. Therefore, Even when using a curved display, the image will still appear distorted, unless this is compensated for in software.

$\endgroup$
2
  • $\begingroup$ I see. So, one way to make a scene not appear distorted on a hemisphere is to render the scene with a fish-eye camera at 180 degrees? $\endgroup$ Jul 22, 2018 at 5:16
  • $\begingroup$ Indeed, that would be a way to eliminate distortion. $\endgroup$ Jul 22, 2018 at 23:03
1
$\begingroup$

Assuming each pixel is the same size then each pixel would cover the same viewing angle whether it is in the centre or towards the edge. So no, there would be no distortion.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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