Forum Home
Press F1
 
Thread ID: 38681 2003-10-15 00:35:00 Graphics - Z-buffer, Tripple Buffer < What are they? mejobloggs (264) Press F1
Post ID Timestamp Content User
183456 2003-10-15 00:35:00 Just got a new graphics card, a Geforce 4 Ti 4200, and I was trying out Need for Speed: High Stakes with it.

I fiddled with a few options, and I noticed Tripple Buffer, and Z Buffer.

What on earth are those?
mejobloggs (264)
183457 2003-10-15 01:03:00 Google brought up this:

Triple Buffering

Triple Buffering will allocate a third frame buffer. This frame buffer can increase performance by enabling the hardware to render at the same time that the 3D application performs other tasks. However, the additional frame buffer required for this uses up video memory that could otherwise be used for storing textures. Enabling Triple Buffering could hurt the performance of your 3D applications that use a lot of textures... Most AGP video cards benefit from this feature, but turning it on can cause lockups on some PCI cards. Try disabling and enabling it to see what kind of performance you can get.

I would assume the Z Buffer story is something similar.

Try one at a time, and then a combination of them both and see what performance gains/impacts you get :-)
Chilling_Silently (228)
183458 2003-10-15 01:58:00 Yeah, well I dont know how to measure performance.

There is no visible difference in jerks, or graphics quality. Not sure about Graphics quality though, its a bit hard to tell.
mejobloggs (264)
183459 2003-10-15 03:33:00 The three dimensions in "3D" are usually called X, Y and Z. If you've done graphs at school, you'll know about X and Y. Similarly, on your screen, X is the horizontal axis, and Y is the vertical. Z is the "depth". Graham L (2)
183460 2003-10-15 04:44:00 Hmm. I noticed a few things without Z Buffer.

Smoke goes through the ground, and trees pole out from behind solid walls.
mejobloggs (264)
183461 2003-10-15 04:56:00 Isn't it supposed to be like that?:| :D Graham L (2)
183462 2003-10-15 08:16:00 I mean, a tree has a branch going through a solid wall. The tree is on the other side, yet you can still see it. mejobloggs (264)
183463 2003-10-15 19:26:00 Z Buffer (from what i can tell) is like a normal buffer in 2D . So in 2D you have all your pixels going along x and y, and you have a buffer to store the location, colour etc of them (usually an array . Now when you add a third dimension you make a 3D array i . e int foo[x,y,z]; so you therefore have another point to take into account and calculations can be made for polygons . It can give the distance of the polygon from the camera(because 3D really is 2D, and 3D on computers is cheating without being caught) . It generally tries to load only the closet points in the array to 1) save memory and data access times and 2) to prevent overlapping of objects . . . .

Now triple buffering is a difficult one . and OMG it comes after double buffering and buffering . A Normal buffer is where the image is painted on the screen i . e . what is in the buffer is actually put on the screen . Now the second and third ones are a little more difficult . . . Now this requires a bit of thought, the second one can be thought of as one of those white boards that can flip over, or turn round to reveal an another side . The front side being the normal video buffer and the back can be thought of as the secondary buffer . The secondary buffer doesn't have to be sync'ed with the refresh rate of the monitor (or in this case the front of the white board) . Once the front of the board (single buffer) needs to be changed it gets "turned" around with the Double buffer presenting to the audience (or in this case the monitor to the person watching) . This means that the normal buffer can now be re-drawn . Therefore what was the "single buffer" is now acting as a secondary buffer and vice versa . Each is rendered on the other side out of view before it is displayed .

Now triple buffering is the most difficult to think of . . . but lets get back to the white board problem . . . when you are turning around the board (flipping buffers) there is a time copying data between, and the image is not fully displayed . . . therefore when the board is changing (its not instant) another "white board" is created to put all the frames on until the main board has finished copying .

This is correct as far as I can see (although my 3D knowledge is pretty limited, DirectX and OpenGL are incredably difficult to program and understand) and this buffering is way more difficult than it seems . . .

Tree's like to stick through walls, trees are truely evil in a 3D world, i mean look at a tree in a game, chances are it will be 4 bits of branch at right angles to each other i . e .
|
|
____ |______
|
|
|

where one part of the tree faces the camera . But this isn't always accurate and can cause it to stick through the wall . Could also be a problem is the Z Buffer . . . . not calculating accurate values for Z from camera etc . . . I have no idea its a difficult problem

Hope it helps

- David
DangerousDave (697)
183464 2003-10-16 00:16:00 wow, thanks . So, that means triple buffer will prevent flickering images?

I seemed to notice that with it off, some things flickered a bit, and there was gaps in the road occasianaly .
mejobloggs (264)
183465 2003-10-16 19:04:00 hmmmm it depends on the game and graphics card you are playing for flickering. Triple buffering brings an *theoratical* increase in speed. But it is kinda new and only certain games really use it. Flicking occurs maybe in that game because it has been optimised for tripple buffer... most games handle fine with only two buffers as it just sets a constant level of frames out the monitor while changing buffers. Gaps occur in the road again, maybe due to the triple buffer being optimised for the game as textures from either primary or secondary buffer are not fully loaded at any one point during the change... but then again, the computer just may not load them for infinite other reasons...

lol this is a very difficult topic, i have trouble understanding it. I think for the mean while i'll stick to 2D ;)

- David
DangerousDave (697)
1