gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > DS Vertice Count

#175539 - gameporter - Thu Dec 16, 2010 9:17 pm

Hi all,
I read on Wikipedia that the DS (Lite) is capable of rendering 6,144 vertices per frame. From my experience using Blender, you can have around >6,000 polys on a model with this many vertices. Can the DS render this many polys or is it limited to a theoretical 2,048 triangles?

#175540 - elhobbs - Fri Dec 17, 2010 2:25 am

limited to 2048 triangles

#175541 - gameporter - Fri Dec 17, 2010 4:47 pm

So the DS doesn't share vertices? Darn. Well, that's still better than the N64.

#175542 - sverx - Fri Dec 17, 2010 6:03 pm

don't know what you mean with 'DS doesn't share vertices?' but I know that you can do 'strips', read here: http://nocash.emubase.de/gbatek.htm#ds3dpolygondefinitionsbyvertices

#175543 - elhobbs - Fri Dec 17, 2010 8:54 pm

I seem to recall that they are expanded in the vertex ram to 3 per triangle. the referenced gbatek section also points out that clipped polygons get split and add to vertex ram. I want to say that the only saving is by using quads where possible instead of triangles -- though the same clipping situation applies to both.

#175545 - gameporter - Sat Dec 18, 2010 8:18 pm

sverx wrote:
don't know what you mean with 'DS doesn't share vertices?'


Share vertices with other polygons. Jigglypuff or Kirby makes extensive use of it in Super Smash Bros.

#175547 - Rexhunter99 - Sun Dec 19, 2010 3:12 am

gameporter wrote:
sverx wrote:
don't know what you mean with 'DS doesn't share vertices?'


Share vertices with other polygons. Jigglypuff or Kirby makes extensive use of it in Super Smash Bros.

When it all boils down to the graphics processor, you have to deal with triangles and three vertices for that triangle you are rendering. The Kirby and Jigglipuff models do not share vertices in the way you are thinking, they are sharing vertices within the file data to reduce file size. They still have to render TriangleCount * 3 vertices within the GPU.

Infact the only hardware to not use the trianglecount * 3 that I know of is the Sega Saturn which used Quads instead of Triangles within the processor, therefore the result was QuadCount * 4 (or TriangleCount * 2 * 3)
_________________
[Images not permitted - Click here to view it] - Move over Mario... Cruise by Crash... Croc Rocks!

#175551 - Exophase - Tue Dec 21, 2010 10:59 pm

Vertexes are in fact shared on DS, but there's still a separate polygon RAM that's limited to 2048 triangles (one third the number of vertexes you can store). So if you only have triangles you don't benefit from the shared vertexes in terms of gaining screen space storage. On the other hand, you're not limited to 1536 quads, but some larger number, IIRC around 1774. It's less than 2048 because the entries in polygon RAM take up more space to store an additional vertex pointer.

So it's to your benefit to use quads over pairs of triangles (in strips or otherwise). You still benefit from using strips in general by reducing the amount of data that has to be sent to and transformed by the geometry engine.

#175552 - gameporter - Tue Dec 21, 2010 11:45 pm

Thanks Rex! That cleared everything up.

#175553 - gameporter - Tue Dec 21, 2010 11:57 pm

Another question: Since the DSi's main CPU is twice as fast as the DS's and it's used for graphics, would there be better graphics if a game were made specifically for the DSi?

#175556 - sverx - Wed Dec 22, 2010 12:16 pm

The main CPU isn't the one that works on your graphics, AFAIK.

#175557 - DiscoStew - Mon Dec 27, 2010 7:26 pm

The actual 3D hardware would have had to have been changed to accommodate any improvements, but as far as we know, that wasn't changed at all.

The increased CPU frequency, while not directly affecting graphical capabilities, can allow for some pre-processing on the graphics though, like vertex manipulation.
_________________
DS - It's all about DiscoStew

#175558 - gameporter - Mon Dec 27, 2010 10:08 pm

What could you do with the extra 12 MB of memory?

#175561 - sverx - Tue Dec 28, 2010 11:51 am

BTW I still didn't find a 'complete' list of differences between DS and DSi, apart from what it's visible for everyone... do some of you knows more?

#175563 - gameporter - Tue Dec 28, 2010 7:53 pm

DiscoStew wrote:

The increased CPU frequency, while not directly affecting graphical capabilities, can allow for some pre-processing on the graphics though, like vertex manipulation.


Can you be more specific?

#175569 - DiscoStew - Wed Dec 29, 2010 8:58 pm

gameporter wrote:
DiscoStew wrote:

The increased CPU frequency, while not directly affecting graphical capabilities, can allow for some pre-processing on the graphics though, like vertex manipulation.


Can you be more specific?


Specifics are based on what you require. More processing "can" equal more things you can do in a set period of time, depending on how you code it. What you do with that extra processing is up to you. Same with more RAM.
_________________
DS - It's all about DiscoStew

#175599 - brave_orakio - Mon Jan 03, 2011 5:42 am

Hmmm... Can I ask a related question here? Like If I set a bunch of quads or triangles to maximum transparency making them invisible, would it still count to the number of vertices used?
_________________
help me

#175669 - Exophase - Thu Jan 13, 2011 9:07 pm

brave_orakio wrote:
Hmmm... Can I ask a related question here? Like If I set a bunch of quads or triangles to maximum transparency making them invisible, would it still count to the number of vertices used?


Yes. The geometry engine isn't affected by any pixel properties of the primitive. But if they're completely off the screen or are back-facing they'll get culled and won't count.

#175671 - brave_orakio - Fri Jan 14, 2011 7:13 am

Quote:
Yes. The geometry engine isn't affected by any pixel properties of the primitive. But if they're completely off the screen or are back-facing they'll get culled and won't count.


Ah I see, thank you. Looks like I have to manually skip rendering invisible quads then. What is back-facing by the way?
_________________
help me

#175672 - DiscoStew - Fri Jan 14, 2011 9:06 am

brave_orakio wrote:
Quote:
Yes. The geometry engine isn't affected by any pixel properties of the primitive. But if they're completely off the screen or are back-facing they'll get culled and won't count.


Ah I see, thank you. Looks like I have to manually skip rendering invisible quads then. What is back-facing by the way?


A polygon has a front and a back. You can set the polygon to have front/back culling. With back-facing, if you have back culling set, and the polygon's back is facing towards the viewer, then it isn't drawn. Same with having front-culling, and the front of the polygon is pointed towards the viewer.
_________________
DS - It's all about DiscoStew

#175676 - elhobbs - Fri Jan 14, 2011 2:39 pm

you can also turn off culling altogether. it is a per polygon attribute so you can set it before each polygon. one use for this is to turn on backface culling for solid polygons and to turn it off independently for translucent/alpha polygons.