Path: chuka.playstation.co.uk!scea!greg_labrec@interactive.sony.com From: Tim O'Neil Newsgroups: scea.yaroze.programming.3d_graphics,scee.yaroze.programming.3d_graphics,scea.yaroze.freetalk,scee.yaroze.freetalk.english Subject: How best to exploit this thing-a-ma-jig?! Date: Sun, 11 Jan 1998 03:05:49 -0500 Organization: SCEA News Server Lines: 60 Message-ID: <34B87D5D.34CC5F57@chat.carleton.ca> NNTP-Posting-Host: ott-pm4-21.comnet.ca Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.01 [en] (Win95; I) X-Priority: 3 (Normal) Xref: chuka.playstation.co.uk scea.yaroze.programming.3d_graphics:184 scee.yaroze.programming.3d_graphics:426 scea.yaroze.freetalk:278 scee.yaroze.freetalk.english:288 First off, hello :) This note is part rant, part statement and part question, so please bear with me. I hope this should be of interest to just about everyone involved in trying to create NY/PSX games. Right now, after about 8 months of banging away (off and on) I would have to say that I have a rather solid and speedy engine for a 1st/3rd person, 3D game. The one problem that has been bugging me from day one, that has yet to be solved is the flaky renderer in the PS. With its affine texture mapping and z-sorting/painters algorithm approach, it cannot effectively display polygons that are either large or close to the viewpoint (without the engine having to clip things manually which kills the performance). I have tried a number of work-arounds, from the standard subdivision flags in the GsDOBJ2 structures, to level of detail-type modelling and outright clipping of near faces, none of which have produced very reasonable results. The question I am left with is this... "Commercial products work with this same renderer, so how do they get away with it?" Is the answer just to make models with more/smaller polygons and handle the level of detail better (I had hoped to let distance fogging take away some of the work, but if the fog is set to anything but black, with a black background, it looks horrible)? Just don't let the player camera go anywhere near the walls of the model and hope it all looks Ok? Maybe the answer is in the geometry engine... currently I am using a region/portal approach with subdivision turned on for the local region and less for adjacent regions, but the problems don't go away (admittedly, I am lacking a good model to experiment with... ie something that takes full advantage of the benefits of this approach). It has reduced the number of calls to the GsSort... func to a bare minimum (one for local region and one for each adj. region... not more than a handful in the end). Is there a better way? Something that will allow me to better tell what will pop in and out because the PS renderer decided that its average centre will be off the screen, while in fact the other 50% of it is visible... My next project for the next few days (big ice storms are great for getting time off work :) is to implement a good scanline-based renderer (similar to z-buffering, but more efficient, imho) and see how close I can come to real-time performancewhile doing all the work in system memory (ie. totally ignoring the PS renderer). I doubt this will work out very well, but ya never know. Ok, to sum up, my quetsions are these... - How do the pros really work around/with the PS renderer - How do you work around/with the PS renderer - How do you handle the faces in your world and the ...fun... or giving them to the PS to draw. Oh and while I'm at it... I would like to suggest/ask that if anyone has any interesting models/worlds that they want to donate ;) to post the files/links to files somewhere... or maybe just mail them to me. Heh. Please comment at will, I am hoping this will be a productive/useful thread, and if you have any detailed questions feel free to ask :)