"Yes, but how many polygons?" An artist blog entry with interesting numbers

Btw isnt the PS2 supposed to render the polygons multiple times to render certain effects on screen? i.e each pass required to render the polygons again like in the case of Gran Turismo where it had to output environment maps etc
Which kind of drained the amount of polygons on screen something that was not a problem on XBOX or GC.
I wonder if this was the case also for DC.
But now I wonder, if the polygons per second in the PS2 emulator are overestimated because of this. Or maybe the culling/clipping is supposed to free those resources. Didnt the DC and the other consoles also support that kind of culling?
 
Btw isnt the PS2 supposed to render the polygons multiple times to render certain effects on screen?

Something with culling? Vice City did something like that, and the ports gave problems. Sometimes accounting those polygons wasn't accurate. Don't remember exactly. I remember reading about it, here on b3d even.
 
Btw isnt the PS2 supposed to render the polygons multiple times to render certain effects on screen? i.e each pass required to render the polygons again like in the case of Gran Turismo where it had to output environment maps etc
Which kind of drained the amount of polygons on screen something that was not a problem on XBOX or GC.
I wonder if this was the case also for DC.
But now I wonder, if the polygons per second in the PS2 emulator are overestimated because of this. Or maybe the culling/clipping is supposed to free those resources. Didnt the DC and the other consoles also support that kind of culling?

Alot of games on ps2 clip like crazy. Both the viewport clipping and back face culling. Thats why of you look at the Resident evil 4 pc vs ps2 shots I put you will see how much geometry was clipped. I think the biggest difference I saw was trigger heart ps2 vs dc. The ps2 rendered like 3.000 to 6,000 triangles for the entire scene(the geometry is clipped super close to screen but on the dc theres ALOT more geometry that extends past the camera( i guess the devs did next to no clipping) inflating the polygon count to like 40,000 polygon in the frame.

Could be architectural difference you would have to ask someone who knows about the sh4 + powervr2dc but I remember reading that when it game to the viewport (x,y clipping) the powervr gpu does it automatically right? But i guess some games still clip on the cpu because there still might be too much geometry for the cpu to process in a timely manner to send to the gpu?
 
Hate to double post but heres the differences I was talking about.In two games : karous .triggerheart. The ps2 clips the crap out of it and the dc does not. Which makes me wonder if they left it to the gpu do it on its own(besides clipping the viewport its suppose to have hidden surface removal right? But i guess the cpu still has to calculate all the geometry hmm).I guess on the ps2 they just use the co processors for clipping. While this is all interesting I am not sure this is the right topic for all this?

Karous dreamcast: 30,612 triangles in the frame.
Radirgydc.jpg

Radirgydc1.jpg


Ps2 karous same scene: 3,852 tris in the frame. I guess view frustum clipping.
Radirgyps2.jpg

radirgyps21.jpg


Trigger heat Dreamcast: 52,492 tris in the frame( over 3mpps)
triggerheartdc1.jpg

triggerheartdc2.jpg


Trigger heart ps2: 4,347 tris for the same scene!
triggerhearps213jpg.jpg

triggerhearps22.jpg
 
So the PS2 was probably outputting a lot more polygons on screen than the DC did but a lot less rendered at any given time.
This is nuts. The DC maybe would have been able to compete hugely better if it used clipping in a similar way.
Those are a lot of polygons needlessly rendered compared to the PS2 versions. I d like to know how the GC and XBOX handled it.
The recent posts brought a whole new perspective to the discussion. Very delighted.
So maybe if we took the assets in isolation there is a chance the PS2 models had a lot more polygons thanks to the clipping and culling, whereas the developers on the DC had to adapt the polycounts of the models downwards to keep the framerate smooth knowing a lot more polygons would be rendered per frame. Considering how well the DC games fared like Sonic Adventure 2 DOA2 and Shenmue I can only imagine how much better results it would have achieved with clipping.
 
So the PS2 was probably outputting a lot more polygons on screen than the DC did but a lot less rendered at any given time.
This is nuts. The DC maybe would have been able to compete hugely better if it used clipping in a similar way.
Those are a lot of polygons needlessly rendered compared to the PS2 versions. I d like to know how the GC and XBOX handled it.
The recent posts brought a whole new perspective to the discussion. Very delighted.
So maybe if we took the assets in isolation there is a chance the PS2 models had a lot more polygons thanks to the clipping and culling, whereas the developers on the DC had to adapt the polycounts of the models downwards to keep the framerate smooth knowing a lot more polygons would be rendered per frame. Considering how well the DC games fared like Sonic Adventure 2 DOA2 and Shenmue I can only imagine how much better results it would have achieved with clipping.

Reading notes from the dreamcast Windows ce stuff makes it kinda confusing. So one report state that the gpu will automatically take care of clipping triangles sent to it in the up,down,left,right of the viewport and that z clipping is up to you to figure out. But that means the regardless the cpu is doing the T&L for those unseen triangles to send to the gpu right? Why not clip them at that stage? The other one states you should still consider doing the viewport clipping somewhat yourself and that backface culling while effective can cause too much cpu overhead if overused? Maybe having run to a.i. , calculate physics , generate and calculate polygons(positions+ lighting+ shading) then having to worry about doing clipping on the cpu was too much so its offloaded to the gpu? Its not that the dreamcast doesnt clip, it does it just seems its games arent too aggressive on clipping close to left+right of the screen(stuff seems to render far before clipped) but does clip anything "behind the camera" aggressively. The ps2 a chunk of its games clip aggressively backface and viewport and then some dont. Maybe this stuff should be made into a separate topic because Iam not sure it belongs here.
Article 1 wince sdk:
  • Triangles off the screen— To test for this condition, apply view frustum elimination. That is, test every triangle, primitive, or object against the viewing frustum pyramid, and then eliminate the triangle, primitive, or object if it is outside the viewing frustum pyramid. This test generally eliminates a lot of triangles by using only a few tests.
  • Triangles not facing the screen— To test for this condition, apply backface culling. That is, test every triangle or group of triangles to see if it faces the screen, and eliminate the geometry that is not facing the screen, such as the back of a person's head. This test generally eliminates 10-50 percent of the geometry, but the cost and overhead may be huge. The efficiency depends on the geometry; the more strips you find, the better.
Article 2:
Dreamcast system does not do any z-clipping on D3DTLVERTEX vertices. The application is expected to clip meshes so that they do not intersect the front clipping plane. Culling against the back clipping plane will not be performed by the system, either. If the vertex type is D3DTLVERTEX, he D3DDDP_DONOTCLIP flag is implied even when it is not explicitly set. Meshes are still clipped by the hardware to the left, right, top, and bottom bounds of the current viewport or the screen. Back-face culling works for D3DTLVERTEX meshes as specified by the current render state settings.

In Dawn of mana below look, the polygons are clipped very close to the screen and while the stage doesnt have backface culling the instead backface cull the characters and enemies.
dawnmana1.jpg

dawnmana2.jpg


On the dreamcast lets look at rent a hero(runs on an engine by the people who did spikeout). It does clip something left+right but its very minimal(extends past the viewport but some triangles arent rendered in odd places) and strangely on the main character has backface culling while the enemies do not.Also notice that anything behind the camera/viewport is just clipped abruptly.
rentahero7.jpg

rentahero8.jpg
 
Something with culling?
No, multipass rendering. PS2 would render the same objects multiple times, each time adding a different texture or surface property. If you have a scene with specular reflections everywhere, every object with specular reflections is being drawn at least twice.
 
I hate being pedantic, but someone has to say it:
clipping=/= culling

The way I used it was if an object is unseen so removed it's called culled like backfacing polygons during backface culling while if the geometry goes past the viewport some of it has to be subdivided and only the stuff in the viewport is drawn, I called that clipping.
I dunno, maybe that's been wrong.
 
No, multipass rendering. PS2 would render the same objects multiple times, each time adding a different texture or surface property. If you have a scene with specular reflections everywhere, every object with specular reflections is being drawn at least twice.
Yup.

Also many times destination alpha channel was used to write data which would be used as mask for such reflections etc.
3 passes certainly wasn't un-common on ps2.

I seldon wonder how proper multitexturing/sampling would have changed games on it.
 
The way I used it was if an object is unseen so removed it's called culled like backfacing polygons during backface culling while if the geometry goes past the viewport some of it has to be subdivided and only the stuff in the viewport is drawn, I called that clipping.
I dunno, maybe that's been wrong.

That's my understanding too. So most polys that don't show up in ps2 games were culled, not clipped. Clipping does not reduce polycounts, it increases it actually.
 
I remember that the PowerVR GPU did "tile-based deferred rendering", a quick search on wikipedia to refresh the memory found that it does this with two proprietary methods: "Hidden Surface Removal" (HSR) and "Hierarchical Scheduling Technology" (HST).
The GPU automatically delays rendering as much as possible and tries to render the polygons only when they become visible in the frame, so in practice the Dreamcast is rendering much less that it's in the scene.
 
That's my understanding too. So most polys that don't show up in ps2 games were culled, not clipped. Clipping does not reduce polycounts, it increases it actually.
Yeah but after the subdivision its cullled, no? Therefore it's clipped. For example a sphere is partially visible it will subdivide the mesh along the were the viewport edges are right? Then the unseen part is culled and they called that clipping. So it's culling I guess but done differently? That's different from just straight up doing visibility checks and not rendering objects no?( Backface culling, occlusion culling).
 
The PS2 was developed with the mid90's way of doing things in mind, perhaps before the hardware/3d features came along. Just very fast.

Pretty much this. The EE and it's two vector units was like the Cell BE of it's era, though VU0 went heavily underutilized and the rise of shader programmability in true T&L GPUs left the PS2 a bit wanting in terms of easily handled features.
 
Pretty much this. The EE and it's two vector units was like the Cell BE of it's era, though VU0 went heavily underutilized and the rise of shader programmability in true T&L GPUs left the PS2 a bit wanting in terms of easily handled features.

Some titles did make use of VU0 i think, Vice City did the 4.0 DTS on it, a pretty bad mix though. The hardware was kinda weak but the strong market position made it the most utilized system of that generation. I can imagine the og xbox wasn't as well utilized, though i must say unreal tournament the liandry conflict was on another level, almost next gen, better then anything else perhaps in tech, but that's it.
 
I remember that the PowerVR GPU did "tile-based deferred rendering", a quick search on wikipedia to refresh the memory found that it does this with two proprietary methods: "Hidden Surface Removal" (HSR) and "Hierarchical Scheduling Technology" (HST).
The GPU automatically delays rendering as much as possible and tries to render the polygons only when they become visible in the frame, so in practice the Dreamcast is rendering much less that it's in the scene.

Yeah but the question is , the CPU still has to handle t&l then sends it to the GPU who does all that right? But since the CPU is still burdened with calculating polygons wouldn't it be a good thing to cull as many as possible before sending it to the GPU ?
 
Back
Top