GU Proper Clipping MIA ?

Discuss the development of new homebrew software, tools and libraries.

Moderators: cheriff, TyRaNiD

Post Reply
kfactor
Posts: 4
Joined: Sat Nov 17, 2007 1:33 am

GU Proper Clipping MIA ?

Post by kfactor »

Just been wondering for a while about the PSP's GU and it's apparent lack of proper clipping.

Sony not exactly unfamiliar with the concept of cutting-corners (especially in their custom built rendering hardware), the lack of clipping on the GU is not a big surprise. However why would they do such a thing, especially on a portable device with a relatively small amounts of RAM, appears to make little sense IMHO.

By omitting proper clipping from the hardware the developer has limited options:

1. Static pre-tesselated geometry that always "fits" inside the framebuffer, ie. small enough triangles that will not be rejected by the hardware. This is not always possible since in typical 3d games the camera can move/zoom in/out all the time. This solution comes at the expense of extra memory for maintaining the pre-tesselated geometry, as well as the cost of transforming and potentially rendering the redundant triangles.

2. Dynamically tesseleting triangles. Even if we disregard the transformation/rendering overhead and extra memory cost of the tesselated triangles (which once rendered will most likely be disposed), the main problem is that of the tesselation itself. With simple vertex formats it may not be as bad. Adding however, normals, uvs, colors or even skinning weights the complexity and as well as the calculation cost per triangle mounts up pretty quickly.

Now given a portable device with limited memory and cache, maintaining a low memory profile in a game makes sense (cache locality, maybe even lower power consumption). To achieve this I would use pre-calculated GU command buffers, use conditional rendering, static geometry, indexed rendering as much as possible. Now if tesselation is necessary these do not seem easily attainable.

Now let me to put my tinfoil hat on for a second and ask this :)

Is it possible that the GU has proper hardware support for clipping (among other things), but the method has not been discovered by the community just yet? A cursory look on the known GU commands list and the gaps are clearly visible.
(http://psp.jim.sh/svn/filedetails.php?r ... mmands.txt)

Personally I can't help but wonder what other cool things this piece of hardware can do, that we still don't know about!

What do you think ?

kF.
Insert_witty_name
Posts: 376
Joined: Wed May 10, 2006 11:31 pm

Post by Insert_witty_name »

I don't think it's something that we haven't discovered. I don't think it actually exists.

I remember reading an interview with one of the modellers/graphics guys that worked on Gods of War for the PSP. He stated that the programmers told him to increase the polycount on his models by tesselating them so that the polys wouldn't be clipped (which is opposite to the norm).

Dynamic clipping tends to be slow, so sometimes increases the poly count by tesselation is better.

I can't seem to find the link now, maybe Google will yield results.
User avatar
Jim
Posts: 476
Joined: Sat Jul 02, 2005 10:06 pm
Location: Sydney
Contact:

Post by Jim »

->OP: The hardware guard-band clipping is only 2d clipping, which is useless. Proper 3d culling + 3d clipping can easily fix this without dynamic tesselation. Read some more 3d books.

Jim
Post Reply