081115 / R2PS3 GamingHaven't been getting as much programming done outside of work lately thanks to a bunch of great PS3 games. Thank goodness I haven't gotten internet hooked up at home yet since I've moved, otherwise I'd really be in trouble with multi-player. Q-Games Pixel Junk Eden is quite enjoyable, although I've only had the chance to try the demo thus far. Soothing, relaxing, and a great game to play to unwind. Media Molecule's Little Big Planet has succeed in doing the impossible, convinced my wife to play (she normally doesn't like video games). The slap mechanic and the ability to decorate yourself and other players in-game with springy eye-stalks is just awesome. Insomniac's Resistance II has been remarkable thus far (just finished the single player campaign). A showing of R2 production art can be found on this ZBrushCentral post. Guerilla's Killzone II in 720P video preview. To be released in Feb 2009, Gamersyde has a great preview of the multi-player. Graphic polish is jaw-dropping. The choice to have per pixel motion vectors stored out in the material pass for deferred lighting has really payed off well. Also the compromise to stick with gamma-incorrect lighting with a 2:1 dynamic range has also worked. HDR still looks great in combination with the supplemental light flair billboards and directional lens flair. Resistance II's Graphics EngineBrian Karis, the Lead Render Programmer I work with at Human Head Studios, has a good post about render tech in recent games. I've decided to add a little on what I can see in R2. Real-time rendering is all about compromise between performance and realism. A lot can be gathered from screenshots about the compromises taken by Insomniac in order to reach what 60Hz --- oops I've been told that R2 is a solid 30Hz game. Optimized the Particle/Blending Passes. Seems as if R2 has full resolution particles and blend effects (for high detail and low overdraw), 1/4 area reduced particles (for medium detail and medium overdraw), and massively reduced resolution (for low detail and high overdraw). ![]() Consoles give raw access to GPU memory, so one can get fast low resolution particles using the 4x MSAA hardware. First resolve the opaque geometry drawn with 2x MSAA. Then alias this resolved texture as a 4x MSAA surface (and re-setup for fast Z). Now you can draw 1/4 the pixels, and use the MSAA hardware to replicate a blended pixel to a 2x2 block of samples which get correct depth testing and separate blending. This technique is described in the Killzone 2 paper. You can know a game is doing this, when you see particles as 2x2 blocks in screen shots. However in game, when the particles change fast, your eye won't notice. For the medium resolution particles, seems as if R2 is using this method. For the extreme low resolution particles, my guess is that they are down-sampling depth to 1/16 the number of pixels in a 720P image. Then blending particles without the MSAA trick (much faster). Then after finished blending all particles, do a full screen pass to up-sample both depth and color of this finished buffer to 1/4 size and using the 4x MSAA trick, blend into the final frame buffer. My evidence is the shot below, see the depth based blending artifacts around the gun. ![]() Full resolution blending is fast and thus not shadowed, but might be effected with a vertex color ambient amount. ![]() Seems as if the particles are just billboards (vs spherical depth blended, could use both depending on shader LOD?), note the intersection with the ground. Also seems as if full resolution particles/blending might not get bloom (notice the white line in the lower left with no bloom)? ![]() ![]() HDR With Proper Color Bleeding. HDR is a complex trade off on both the PS3 and 360 when blending is used. ![]() Bloom effects seem frame delayed (they were in Quest for Booty as well), notice the glow on the street light under motion. Perhaps they amortized the filtering cost over a few frames? ![]() ![]() Water Improvements. Real-time wave effects, transparency, refraction and reflection. Water gets real geometry in R2 in contrast to Gears 2 in which water is texture effect on a flat surface. ![]() Shadowing. Seems as if more dynamic objects shadow in R2 than previous RCF. One can gather that R2 is a light pre-pass like engine from the comments on this post. Guessing either they compute shadow maps and then join object shadows in a image space pass after doing the depth/normal/spec pass but before doing the lighting accumulation. Or alternatively they actually sample from multiple shadow maps per light draw pass. The guy in the lower left (hard to see) has a higher resolution map than the machine in the background, both shadows combine correctly. ![]() Object shadowing in R2 fades out based on Z distance to avoid pop when shadows are turned off. Clearly there is a limit to per object shadowmaps, and at some point they must be turned off... ![]() Lighting on Cutouts. Cutouts (alpha test or discard geometry) can be expensive, especially when lit. However they are a good fit in a light pre-pass renderer. For performance reasons, cutouts need to be drawn after all other opaque geometry in the depth/normal/spec pass. However they can be drawn faster in the required redraw for the "apply lighting" pass because alpha test or discard can be skipped. ![]() Z Range Issues / Multiple Passes. Seems as if full (and perhaps medium) resolution particles/blend effects are drawn correctly, while the really low resolution particles are not. Notice the red/orange/yellow particle at the top in contrast to the low resolution smoke particles. ![]() Hard to tell for sure exactly what is going on here. Perhaps given the huge depth range between foreground and background, drawing is stenciled so that the foreground geometry is drawing first and stenciled out, and then background layer(s) are drawn using a new near/far Z range(s). Perhaps ultra-low resolution particles are combined before drawing the background layer(s). ![]() | Atom©2009-2007 Timothy Farrar Latest Blog Entries090407 . dxt tip Index000000 . index Graphics090311 . atom tri soup Interaction071204 . GPU only 2 Networking070708 . breaking firewalls Sound070709 . 3D audio / KEMAR Language090318 . re-attachable code Elsewhereandrew selle All Blog Entries090407 . dxt tip |