5 ms·
Most comments here point out that this may be just a fish-eye camera model with some fancy sales language around it. This was my initial thought as well, howeve
by rsp1984 6y ago
Most comments here point out that this may be just a fish-eye camera model with some fancy sales language around it. This was my initial thought as well, however, it should be pointed out that changing from linear to fish-eye doesn't cause any changes in scene occlusion. It's just moving pixels on a 2D plane. The technique described however does change occlusion.
Based on the examples on the page, here's how I think it actually works: The projection center is not a single point in space but rather varies along the optical axis depending on the position of the 3D vertex as seen from the camera. More specifically: For each vertex a preliminary linear projection is computed to get an XY position, then the projection is recomputed using the preliminary XY position, where things near the center are re-projected using a projection center that is moved forward along the opt. axis and things near the borders/corners of the image have it moved backward. On top of this then probably a standard fish-eye.
That said, I'm not sure this whole projection trickery is really worth it, given that it comes with its own issues (your scene will appear to warp when you turn the camera) and given that you can probably get 90% of the value with one of the more standard fish-eye models.
- TeMPOraL 6y ago> That said, I'm not sure this whole projection trickery is really worth it I think it might be. Look at the first GIF in the article, the one showing the room. Try to imagine yourself standing in that room. Doesn't the FOVO-corrected picture look pretty much like what you'd see with your own eyes if you were the camera? It definitely looks like that for me. Using standard projections for rendering, there's no FOV value that would produce this effect - at a typical videogame FOV of 90°, you see only a fragment of what your eyes would perceive, and as you increase FOV, distortions become really bad. I went into more details on this here: https://news.ycombinator.com/item?id=26805010 https://news.ycombinator.com/item?id=26805010.
- amelius 6y ago> Look at the first GIF in the article, the one showing the room. How do you know which of those two pictures is the FOVO one?
- TeMPOraL 6y agoBecause I've played enough FPS games as a kid, and played enough with FOV parameter in their debug consoles to know how 160° FOV looks like on a render :). The FOVO picture is the one that looks normal; the stretchy one is a traditional perspective projection. (As for why I played with FOV command? Curiosity, plus if you bound a key on your keyboard to set FOV to 30-40 on keypress and restore it to normal on release, you got free sniper scope on every weapon :).)
- rafaelvasco 6y agoSurely your're joking... Right ?
- dragonwriter 6y ago> Doesn't the FOVO-corrected picture look pretty much like what you'd see with your own eyes if you were the camera? No, because the picture doesn’t occupy a 160-degree FOV. Is it a more pleasing way of collapsing the wider FOV into a narrower one? Yes. But what is even more pleasing is to use a display system which occupies the FOV being simulated.
- onhn 6y agoIt is interesting that they chose to use a first person shooter as an example screenshot since gameplay would be broken by visual changes in occlusion.
- klodolph 6y agoYour scene will appear to warp when you turn the camera anyway, unless you put your eye at the one point in space where it matches the projection. Few people put their eyes so close to the screen.
- amelius 6y ago> your scene will appear to warp when you turn the camera But only near the edges, I suppose? Human vision is not very detailed near the edges of the field of view, so perhaps a reproduction of that vision shouldn't be either?