Path: chuka.playstation.co.uk!news From: Jim Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: 3D engines Date: Wed, 09 Apr 1997 15:00:30 +0100 Organization: PlayStation Net Yaroze (SCEE) Lines: 41 Message-ID: <334BA0FE.43B8@micronetics.com> References: <3347dd19.3248416@news.playstation.co.uk> <3348D38C.1DC1@interactive.sony.com> <334A3648.1873@micronetics.com> <3349266B.7BD4@interactive.sony.com> <3349a345.33045335@news.playstation.co.uk> <334A3058.218B@interactive.sony.com> <334b3a68.199522@news.playstation.co.uk> <334B7A3E.D59@micronetics.com> <334e8f46.1862969@news.playstation.co.uk> NNTP-Posting-Host: jim.micronetics.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.0b2 (Win95; I) X-Priority: 3 (Normal) Alex Amsel wrote: > > This 'god knows what' section is also important - I don't know what gs > does underneath. It doesn't matter how optimized it is, there are > almost always better ways of providing the data. Without knowing > internals it is hard to improve on this part. > This is something I also find important. You can always write better code if you know what the 3rd party calls are doing. My case in point is that I always assumed that memcpy under djgpp moved memory around most efficiently. It wasn't until I looked at the assembler for it I discovered that it did a rep movsb, regardless how the memory was aligned and how long it was. This was such an easy optimization that essentially quadrupled performance. For example how do I know that RotMatrixX,Y and Z are just as fast as RotMatrix? Another point, I would like to draw 3d lines. But from initial browsing through the manuals it looks like I cant draw a line from x1,y1,z1 to x2,y2,z2. Now it looks like I will have to do the perspective transformation myself into a 2d line and plot that? Another omission is pixel plotting. The answer I received last week for this is just draw a line with the same start/end points, and That pixel plotting was not really a requirement for a 3d engine. It is for my 3d engine that produces particle effects for explosions & smoke. Now the overhead for transforming a pixel would be outrageous using gslib. It would be so much efficient to do the whole thing in asm get the gpu to draw them directly. I may be able to do this via the loadimage directly into the double buffer region. I'll suck it and see. Sorry for the ramblings. Regards Jim