Page 4 of 4

Re: Concise Way to Describe Curved Surfaces

Posted: Thu Jul 30, 2015 1:38 pm
by AndrewAPrice
That phone you showed is a Samsung Galaxy S6 edge. I have one :) The curved edge is a novelty to impress you friends with. When the screen is sitting face down (which automatically puts it into silent mode), you can see the screen edges glow when you get a call. Then at night time, you can put it into Clock Mode that keeps the backlight very low and shows the time on the very edge of the phone, so you can see it from the side. Things you can easily live without. But, I was given the choice between the flat model and the edge, so I decided to be adventurous and get the edge.

I was thinking of some kind of spline. However, for compensating for curvature using a traditional 3D projection matrix, I think you might just need a simple angle,

where -360 degrees would mean a cylinder display:

Image

and 360 degrees would mean a screen that wraps all the way around:
Image

You might also do the same thing vertically..

But, I know a traditional projection matrix can't handle a field of view of 180 degrees or greater, unless you get into ray tracing, software rasterizing, or stitching multiple renderings together.

But what if you get into more interesting display types:
Image

How do you compensate for that? Bezier surfaces?
Image

I think you might be stuck with ray tracing to compensate for this because you'll have to individually calculate the angle of every pixel. It also depends on what angle the viewer is located that you're trying to compensate for. Try to imagine a cylinder screen displaying a landscape, how would the projection work?

What if your screen is not rectangular?
Image
Image
Image