Jump to content
  • Advertisement
Sign in to follow this  
texel3d

Render with a fov of 180 degrees

This topic is 2528 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

[color=#000000][font=arial][size=1]Hi,[/font]
[color=#000000][font=arial][size=1]
I need to render a 3d engine with a fov of 180 degrees.[/font][color=#000000][font=arial][size=1]
If i do that, i will have a big distortion of the image.[/font]
[color=#000000][font=arial][size=1]
Which technic can i use to solve the problem ?[/font][color=#000000][font=arial][size=1]
Is the only solution to split the scene rendering using 3 cameras having a fov of 60 degree (3x60=180) ?[/font][color=#000000][font=arial][size=1]
With this solution, i have to read the scenegraph 3 times for each frame render. And if i display a road, the lines will have some "breaks", it will not be continue.[/font]
[color=#000000][font=arial][size=1]
Thanks.[/font]

Share this post


Link to post
Share on other sites
Advertisement
I think a fov of 180 is basically an orthographic projection. I could be wrong though.

Share this post


Link to post
Share on other sites

[color=#000000][font=arial]Which technic can i use to solve the problem ?[/font]



In Dx10+ you can render into multiple render targets with different view matrices at once by using the the SV_RenderTargetArrayIndex semantic. The CubeMapGS sample in the DxSDK shows how an entire cube map (with all its 6 faces) is rendered in a single pass. Perhaps you can use that?


I think a fov of 180 is basically an orthographic projection. I could be wrong though.

Orthographic projections have no perspective distortion at all.
Perspective and orthographic projections differ among others in the position m_44. Since the field of view of a perspective projection only affects the entries m_11 and m_22 there is no way you can manufacture a perspective projection that behaves orthographic.

Share this post


Link to post
Share on other sites
There is no simple answer for this questions since the way that the current graphics hardware works is a bit against your requirements.

As you are projecting the 3d scene on a flat plane, every line that was straight in the 3d world, will still be a straight line on the projection plane. Practically what you are after is to project the scene on a curved surface.

You may split your rendering into multiple parts as you have noticed and more splits your make, the better the approximation of a curved surface you have. Of course this is just approximation in one direction (x). You should also approximate the curvature in another direction (y).

I guess you may be able to post process your rendered slices with a pixel shader in order to make it look like a real lense.

Cheers!

Share this post


Link to post
Share on other sites
Look into parabolic projections, or "dual-paraboloid mapping" (which is for rendering two 180 degree views). They have issues with rasterization, since rasterizers assume a linear projection and a parabolic projections are non-linear. This can cause artifacts (such as incorrect depth test results) if your scene isn't tessellated enough.

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!