View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# What are the near and far plane used for?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

5 replies to this topic

### #1noatom  Members

Posted 03 August 2012 - 03:19 PM

I tried to find an answer,but the truth it,it there is somethnig close to an answer,it uses a lot of geometry,and I'm not good with geometry.

So,can someone explain why d we need the near and far plane for?

### #2Tournicoti  Prime Members

Posted 03 August 2012 - 03:55 PM

Near and far planes represent the depth area you want to be displayed in your scene : all what you'll see in your scene is in this depth area : the near plan is for the minimal depth beeing represented (displayed), and the far plane represents the maximum depth you'll see in your scene. Maybe can you have a look on how projection matrix is built ?

Edit : These depthes are expressed in view space. In clip space they are converted from 0.0 (near plane depth) to 1.0 (far plane depth) thanks to the projection matrix.

Edited by Tournicoti, 03 August 2012 - 04:05 PM.

### #3SillyCow  Members

Posted 03 August 2012 - 04:41 PM

There are also algorithmic needs for said planes:

Near plane: When projecting a polygon from 3d to 2D, the projection will not work if the polygon crosses through the viewer. You said you don't want to go into geometry so I won't explain the reason. But here is an example of how it works:
You cannot correctly render a triangle which the player is standing on, because said polygon is partly behind the user. To do the projection correctly, you need to clip the triangle at some point in front of the viewer, thereby "breaking" it along the near plane. That way you are left with only a part of said polygon which is completely in front of the user.

Far plane: Z-buffer ( The part of rendering responsible for occlusion ) uses an inverse logarithmic scale (less accurate as you get further). Limiting the farthest point let's you pre-calculate z-buffer accuracy.

Although, these points are not always the same as near plane and far plane, they are known constraints when doing projection based rendering.

Edited by SillyCow, 03 August 2012 - 04:45 PM.

My browser game: Vitrage - A game of stained glass

My android games : Enemies of the Crown &  Killer Bees

### #4french_hustler  Members

Posted 03 August 2012 - 04:41 PM

Well... you need a near and far plane to represent your viewing frustum.
Using the frustum, the GPU will reject pixels outside the frustum (clipping / frustum culling).

OpenGL article on Projection Matrix:
http://www.songho.ca...tionmatrix.html

And here is a little more advanced article about the near/far planes affecting depth buffer precision:
http://www.codermind...r-tutorial.html

But in simple terms (without geometry stuff), the near plane represents your viewing window. You look through that near plane to see the 3d world. Anything behind that plane (going towards you the user) will be clipped and invisible. The far plane represents the end bound of what you can see. Anything behind it (going towards your monitor) will be clipped. With these two planes you can create a frustum by adding top, left, right, and bottom planes to create a "box" called a frustum. Anything you see in the world will be inside that box, anything outside it will be clipped.

Now, if the near and far planes are the same size, you'll have an orthogonal projection where far objects appear the same size as really close objects. If your far plane is larger than the near plane, this will create a perspective projection. Similarly to the real world, far objects will appear smaller than if they were closer to the near plane.

Edited by french_hustler, 03 August 2012 - 04:44 PM.

### #5jefferytitan  Members

Posted 03 August 2012 - 04:50 PM

As Tournicoti said, they are the closest thing you can see and the furthest. One reason it's required is for the depth buffer on the graphics card. To ensure objects far away aren't drawn over nearby objects, a depth is stored for every pixel. However this suffers from rounding issues for objects at similar depths. The smaller the ratio of the far clip distance to the near clip distance is, the less rounding issues there are, so the less visual errors there will be.