Path: chuka.playstation.co.uk!scea!peter_alau@playstation.sony.com From: Gerrit Goossen Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: GsLinkObject4 Confusion - On to GsSortObject4 - And Now CW Asm Date: Sat, 29 Aug 1998 14:28:09 -0400 Organization: SCEA News Server Lines: 58 Message-ID: <35E84836.1881@funnytown.com> NNTP-Posting-Host: 38.165.241.13 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.01-C-MACOS8 (Macintosh; I; PPC) >James Russell wrote: > >> Gerrit Goossen wrote: >> > >> > I guess now my question is: Can anyone tell me exactly what operations >> > GsSortObject4() performs? >> > >> > - Is perspective conversion performed on all the verticies in a TMD >> > object? (Regardless of whether they are used in primitives or not?) >> >> Nope, only the ones that are used will be converted. >> >> > Or does it perform the same conversion on the verticies multiple times if >> > they are used in multiple primitives? >> >> Yes. Not exactly efficient, I know. >> > >That's really crap. I did wonder what was making GsSortObject4() so slow. >So all my efforts of sharing vertices and (especially) normals was a waste of >time 'cos they'll be recalculated for each polygon anyway. Actually, that was the answer I was *hoping* for! >What dumb idiot came up with this? I assumed that all the vertices/normals >would be processed first (whether used or not) and the 2D drawing primitives >were then built using this data. That would have been the sensible/efficient >way to do it. Just to offer a different point of view: For what I'm trying to do, that setup would be *extremely* inefficent. In a project I've been working on for a while now, I maintain a single large model of the game-world and dynamically build a TMD with a subset of the large model's primitives at runtime. This would not be possible if: 1) Every vertex in the original world model were rotated every frame. Which, furhtermore, would use *lots* more RAM, because the libs would have to maintain a separate copy of the rotated vertex array (to avoid nasty fixed-point rounding errors.) 2) I had to rebuild a the vertex array everytime I create a mini-model from the big one. >Ho hum... I need direct GTE access and the ability to sort 2D primitives, and I >need it NOW! I actually spent quite a bit of time trying to access the GTE with inline ASM in CW, but for some reason CW doesn't want to let me do it! I wonder if this is also a problem with GCC, although it doesn't really matter since I'm on a Mac anyway... Has anyone successfully used CW's inline asm? I've been doing things per the CW manual, however the CW manual also makes references to several things that don't exist on the CW CD >:\ - Gerrit