Path: chuka.playstation.co.uk!news From: alex@teeth.demon.co.uk (Alex Amsel) Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: OT's - how do they work? Date: Tue, 21 Oct 1997 21:19:23 GMT Organization: Into Beyond Lines: 48 Message-ID: <344c9582.368529@news.playstation.co.uk> References: <3446DC9D.BB81C6EE@ibm.net> <344b4014.300721@news.playstation.co.uk> <344AB445.6113@peace.co.nz> <344d734b.5610332@news.playstation.co.uk> <344C29F4.1E4D@peace.co.nz> Reply-To: alex@teeth.demon.co.uk NNTP-Posting-Host: teeth.demon.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Newsreader: Forte Agent .99g/32.335 On Tue, 21 Oct 1997 17:05:08 +1300, James Russell did quoth at me: >Say I want a Z resolution of 0 to 511 (a Z granularity of 512). That doesn't >mean to say that Z doesn't have a higher granularity when calculating positions >in 3D space, it just means that when it gets plonked in the OT some of the >lower bits will be chopped off (every 'real' Z value will be plonked into one >of 512 'slots'). Exactly right. Also remember that although your scene values may reach 1024, you can use a shift vlaue of 1 when you put the object into the OT. That way all the Z values are >> 1 hence fit into the OT. I thought when they went over the OT's value then memory would get trashed but I'm not asure it does since I've really chucked silly values at it without a crash. Maybe it truncates the maximum value. >That means a OT of size 9 (2^9 = 512); >There are 512 OT_TAGs in the OT, one for every 'granule' of Z. >Each of the 512 OT_TAGs begins a linked list of GPU commands to execute for that 'Z granule'. >These 512 OT_TAGs are either blank (nothing in that 'slot') or point >to ANOTHER OT_TAG *within the PACKET WORK AREA*. An OT_TAG within the Almost. I'm pretty sure that each 'slot' as default points directly to the next slot and has num of 0 or something like that. In this way the gpu can parse through the OT very quickly and without reference to this table. The table is, afterall, only required when initially declaring the draw order and not by your hardware renderer. >Is this correct? I sure hope so! Just about! Incidently, I think you'll find that 'num' bares a remarkable resemblance to olen in TMD structures ;) You'll probably be able to work out some of the gpu primitives if you dump out the appropriate memory... They're pretty obvious to be honest so it wouldn't be difficult to do. Regards, Alex Amsel + Tuna Technologies + Telephone & Fax +44 (0)114 221 0686 + + For all your Win95/NT/Console Game and Tool Development + + And we say, "A good programmer always blames Microsoft" + + I proclaimed "Bring back the Doog!", and so it was done +