forums.ps2dev.org Forum Index forums.ps2dev.org
Homebrew PS2, PSP & PS3 Development Discussions
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

GU Proper Clipping MIA ?

 
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development
View previous topic :: View next topic  
Author Message
kfactor



Joined: 17 Nov 2007
Posts: 4

PostPosted: Wed Jun 11, 2008 7:43 pm    Post subject: GU Proper Clipping MIA ? Reply with quote

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?repname=psp&path=%2Ftrunk%2Fpspsdk%2Fsrc%2Fgu%2Fdoc%2Fcommands.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.
Back to top
View user's profile Send private message
Insert_witty_name



Joined: 10 May 2006
Posts: 376

PostPosted: Wed Jun 11, 2008 8:51 pm    Post subject: Reply with quote

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.
Back to top
View user's profile Send private message
Jim



Joined: 02 Jul 2005
Posts: 487
Location: Sydney

PostPosted: Wed Jun 11, 2008 9:22 pm    Post subject: Reply with quote

->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
_________________
http://www.dbfinteractive.com
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    forums.ps2dev.org Forum Index -> PSP Development All times are GMT + 10 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group