Path: chuka.playstation.co.uk!news From: alex@teeth.demon.co.uk (Alex Amsel) Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: 3D engines Date: Wed, 09 Apr 1997 13:01:23 GMT Organization: Into Beyond Lines: 91 Message-ID: <334c8a2e.559474@news.playstation.co.uk> 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> <334B7033.44F8@interactive.sony.com> 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 Wed, 09 Apr 1997 11:32:19 +0100, sceetech did quoth at me: >The vital point here is that the speed of a PlayStation game >is VASTLY more affected by the underlying graphics, game >and AI __algorithms__ than by whether it used Gs or GTE. You are right of course. >The latter is itself going to make a maximum difference >of ~10%; the optimisations available at the level of algorithms, 10% is a lot to me. >however, are almost limitless. >Algorithms, not libraries, make speed. Quicksort implemented Yes, but I rely on the gs algorithms (inc data storage) and API when I would rather rely on something I have written myself. As I said, quite apart from anything else it is very good experience and fun to write your own 3d engine. If you don't know what is going on underneath the bonnet, it is harder to optimise etc. Sorry, I know I'm being an optimisation freak here, but 10-20% is a lot to me. >Going below the level of libgs is VERY unlikely to provide as much >efficiency gain as you hope. It isn't so much a problem with gs, but the fact that it is so project independent. e.g. I could have a pre-initialised buffer containing a lot of polygon data, thus preventing e.g. 2-3 memory writes per polygon. If I wanted to split polygons as they get closer, I believe I currently have to allocate them to a different object as I can only do it on a per object basis. Also, if I want to to do game on the Miggy/PC I can't 'port' the 3d engine so easily. >Very strange to contrast using gs with doing their own 3d work. >Using Gs _is_ doing 3d work. The modern trend is towards programmers >using powerful, well-implemented APIs to achieve their effects; >for instance Yaroze, and the Direct libraries on PC. Using gs may be doing 3d work, but it doesn't mean it is suitable for every project (or even most). The reason for using directx on the pc is more to get around hardware probs and 3dgfx card support, and you must have heard John Carmack's (ID software) D3D/OpenGL comments. Personally I'd like to be able to get the playstation to handle the primitives, goraud shading etc., but I'd like to be handling the data structures at the pre-primitive stage. So I'd like a level inbetween the low level ps-x hardware and the high level api provided. In a perfect world anyway :) >NOTE that people are less interested than they were in having to >reinvent every wheel and cog of (eg) a 3d engine for themselves >than they were; that redoing things nowadays takes just as long as Definately true, but there are different stages to writing a 3d engine. Go to any programming interview and you're bound to get asked how to write a 3d renderer. Saying 'I'd call gsRenderEverything' won't get very far :) From what I know many companies now have internal libraries to handle 3d on the various machines they work on. >One developer uses APIs, another builds their own engine; >the second's game may run 10% quicker, but the first has >hugely more development time left. This is the trade-off, >and it doesn't favour reinventing the wheel. That isn't necessarily true, and graphics speed affects gameplay, even 10%. Gameplay definately comes first, and if I need the speed for gameplay reasons (rather than just to look pretty) then I'll take the speed as long as time allows. It doesn't necessarily take very long either. >Can you please give specific examples of what exactly were you hoping >to gain by going lower than libgs? It would clarify the issue Less specific examples than my general feelings on the subject. I haven't had time to sit down and find things not present in gs that I particularly require that I haven't already mentioned. Positioned light sources (where d is taken into account), shadows, that sort of thing perhaps. Some stuff could be faked of course * Alex Amsel * Into Beyond Web Design & JAVA Programming * * http://www.intobeyond.com * WWFC Play off ****ers'97 * MM: "Hand the opposition the lead, the supporters love it"