Jump to content
  • Advertisement
Sign in to follow this  
sjc

Large field of view in dx8

This topic is 3267 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello, In my program I have clipping planes setup for 60 degree field of view. I understand that near plane is in front of the camera and the far plane is further away from the camera. I would like to have a large field of view, let' say more than 200 degrees (the most I can go of course is 360). But anything starting with 180, makes the far plane to be behind the Near plane. How should I set the transformation matrix in such cases? Anyone had experiences with that? Thanks.

Share this post


Link to post
Share on other sites
Advertisement
A standard perspective projection can only have up to a 180 degree FOV. Beyond that, you need a more complex projection, for which standard scanline rendering is not suitable because it needs to warp straight lines.

What is your envisioned application for this? Depending on how you're going to be displaying the image, certain multi-view techniques may be appropriate.

Share this post


Link to post
Share on other sites
Thanks Sneftel,

Quote:
A standard perspective projection can only have up to a 180 degree FOV. Beyond that, you need a more complex projection, for which standard scanline rendering is not suitable because it needs to warp straight lines.
That is what I was thinking as well.
Quote:
What is your envisioned application for this? Depending on how you're going to be displaying the image, certain multi-view techniques may be appropriate.
This is kind of a flight simulator. The goal is to render a single scene that can be displayed on a screen that wraps around the player.

The simplest way is to have multiple video channels and for every channel use let's say 60 FOV but with cameras pointed in the proper directions. I am trying to do that using a single channel (for various reasons). I guess I can setup multiple viewports for the same channel and render into them using different camera setups. This approach would require making multiple passes through the scene, though. Do you know if there are any other options?

Thanks.

Share this post


Link to post
Share on other sites
If you need to display a scene that wraps around the player, you'd better use a projection that wraps around the camera in the same way. The choice of projection parameters is entirely dependent on your display hardware setup.
Quote:
I guess I can setup multiple viewports for the same channel and render into them using different camera setups.
This is a common approach. For front projection, it is suitable for almost any setup.
Quote:
This approach would require making multiple passes through the scene, though.
So?

Share this post


Link to post
Share on other sites
Quote:
If you need to display a scene that wraps around the player, you'd better use a projection that wraps around the camera in the same way.

Is it possible to have such a projection? What are my options other than having three cameras?
Quote:
Quote:
This approach would require making multiple passes through the scene, though.
So?
I am looking for a way to avoid that. If it is possible to render the scene in one pass, why do it in two passes?

Thanks.

Share this post


Link to post
Share on other sites
Quote:
Original post by sjc
Quote:
Quote:
This approach would require making multiple passes through the scene, though.
So?
I am looking for a way to avoid that. If it is possible to render the scene in one pass, why do it in two passes?

Because each pass has only half the pixels of the hypothetical bigger pass you'd be doing. All you'd be saving is the cost of vertex transforms, not a major deal on modern hardware. Not to mention that doing it as two separate projections allows you do parallelize the rendering across hardware more effectively.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!