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 Date: Mon, 31 Aug 1998 17:09:10 -0400 Organization: SCEA News Server Lines: 45 Message-ID: <35EB10F4.23E9@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) >Gerrit Goossen wrote: > >> Actually, that was the answer I was *hoping* for! >> >> 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.) >> >It would only need to keep the rotated vertices until all the primitives for that >object are sorted. I don't see how fixed-point rounding errors come into it. Let me explain then :) What I was saying is that you would have to double the RAM requirements for the model's vertex array, *or* the only way you could avoid that would be by maintaining a single copy of the vertex array and rotating it using offsets from the previous rotation. (Which introduces the fixed-point rounding errors.) You're right though, the extra RAM required would only be the size of the largest model's vertex array, because you only need the verticies during perspective transformation and sorting. >> 2) I had to rebuild a the vertex array everytime I create a mini-model >> from the big one. > >I'm sure it would be faster to do that than rotate each vertex numerous times. Actually I'm not so sure! As I've discovered (and you can read about in a seperate thread ;^) the PlayStation uses the GTE for the local->screen transformation, which means the transformation is being performed on all three verticies at a single time with a single hardware operation. Except for the extra time spent loading the vertices to the GTE, rotation is basically a one step process for 1, 2 or 3 verticies. - Gerrit