Jump to content
  • Advertisement
Sign in to follow this  
AquaMacker

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

This topic is 2339 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

[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]

Share this post


Link to post
Share on other sites
Advertisement
[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]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites

[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] Edited by AquaMacker

Share this post


Link to post
Share on other sites
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()

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

[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] Edited by AquaMacker

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!