In Graphic engine, how many Drawf is drawing() enough ?

Started by
6 comments, last by AquaMacker 11 years, 9 months ago

[font=verdana, geneva, sans-serif]Hi[/font]

[font=verdana, geneva, sans-serif]It's so hard...[/font]

[font=verdana, geneva, sans-serif]I know Each device is different and each hardware is different...[/font]

[font=verdana, geneva, sans-serif]But !!![/font]

[font=verdana, geneva, sans-serif]In general, many many many object drawing well is best ?[/font]

[font=verdana, geneva, sans-serif]I want to know, how many object(Dwarf.x) enough ?[/font]

[font=verdana, geneva, sans-serif]So many ?[/font]

[font=verdana, geneva, sans-serif]In Caps, I was found "MaxPrimitiveCount".[/font]

[font=verdana, geneva, sans-serif]I want to know, Object drawing number and "MaxPrimitiveCount".[/font]

[font=verdana, geneva, sans-serif]And Please introduce associated with book or site... [/font]

[font=verdana, geneva, sans-serif]English is soooooooooooo hard... T.T[/font]

Advertisement
Maybe this is what you're looking for?
http://ce.u-sys.org/Veranstaltungen/Interaktive%20Computergraphik%20(Stamminger)/papers/BatchBatchBatch.pdf
[font=verdana, geneva, sans-serif]

Opooos....[/font]

[font=verdana, geneva, sans-serif]

But It's very useful infomation.[/font]

[font=verdana, geneva, sans-serif]

I download and save it.[/font]

[font=verdana, geneva, sans-serif]

Thanks anyway...[/font]

[font=verdana, geneva, sans-serif]

I want to know How many dwarf is a good engine to be drawn?[/font]

[font=verdana, geneva, sans-serif]

Example, MaxPrimitiveCount of my macbook is about 5,000,000.[/font]
[font=verdana, geneva, sans-serif]

If primitiveCount of Dwarf is 100,000 then max of dwarf is 50.[/font]

[font=verdana, geneva, sans-serif]

And[/font]
[font=verdana, geneva, sans-serif]

I'm testing with 50 dwarf.[/font]
[font=verdana, geneva, sans-serif]

And add dwarf...[/font]
[font=verdana, geneva, sans-serif]

And add dwarf...[/font]
[font=verdana, geneva, sans-serif]

And add dwarf...[/font]
[font=verdana, geneva, sans-serif]

And add dwarf...[/font]
[font=verdana, geneva, sans-serif]

And add dwarf...[/font]

[font=verdana, geneva, sans-serif]

How many dwarf is a good engine to be drawn?[/font]

[font=verdana, geneva, sans-serif]

English is too difficult ![/font]
[font=verdana, geneva, sans-serif]

I HOPE more people would learn to speak Korean. ^^a[/font]

It does not go that way. MaxPrimitiveCount is a limit on how many primitives/vertices you can use in a single draw call. There's no upper bound on how much draws you can issue. And there's no relationship with actual performance.

Previously "Krohm"

[font=verdana, geneva, sans-serif]Thank you very much.[/font]


[font=verdana, geneva, sans-serif]Really ^^a[/font]

[font=verdana, geneva, sans-serif]And...[/font]

[font=verdana, geneva, sans-serif]What does "a single draw call" Is meaning ?[/font]

[font=verdana, geneva, sans-serif]One Draw ? Like this...[/font]


[font=verdana, geneva, sans-serif]BeginScene()
DrawIndexedPrimitive().. <-- One call ?
EndScene()[/font]

[font=verdana, geneva, sans-serif]Is Right ?[/font]


[font=verdana, geneva, sans-serif]BeginScene()
AObject->DrawIndexedPrimitive()
BObject->DrawIndexedPrimitive()
CObject->DrawIndexedPrimitive()
DObject->DrawIndexedPrimitive()
EObject->DrawIndexedPrimitive()
EndScene()[/font]

[font=verdana, geneva, sans-serif]Is Not ?[/font]


[font=verdana, geneva, sans-serif]Is "a single draw call" is "One call" right ?[/font]

This is what you can do:

BeginScene()

//multiple calls:
AObject->DrawIndexedPrimitive() //is one call, max 5,000,000 primitives
BObject->DrawIndexedPrimitive() //is one call, max 5,000,000 primitives
CObject->DrawIndexedPrimitive() //is one call, max 5,000,000 primitives
DObject->DrawIndexedPrimitive() //is one call, max 5,000,000 primitives
EObject->DrawIndexedPrimitive() //is one call, max 5,000,000 primitives
FObject...
GObject...

EndScene()
I only just started to learn Korean. ?????.
If you speak Japanese (or Thai) then maybe I could explain it better.


1 draw call = 1 call to DrawIndexedPrimitive().
You should only call BeginScene() and EndScene() 1 time each frame, with any number of calls to DrawIndexedPrimitive() between them.

MaxPrimitiveCount = max vertices in a vertex buffer. Nothing more.

So you can call DrawIndexedPrimitive() with 5,000,000 vertices, then again, and again, and now you have drawn 15,000,000 vertices.


If you are thinking about performance, then you should study “instancing”.
By using instancing, you can draw 15,000,000 vertices by 1 draw call.

In either case, you are not limited to only 50 dwarfs.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

[font=verdana, geneva, sans-serif]@eppo, @L.Spiro[/font]

[font=verdana, geneva, sans-serif]Thanks very much X 2[/font]

[font=verdana, geneva, sans-serif]Instancing is best tech ^^a[/font]

This topic is closed to new replies.

Advertisement