Graphics system

Dec 9, 2007 at 11:16 PM
Shaw, I was wondering if there is a way to retrieve the current graphics settings from your graphics system. Something like ApplySettings, but instead RetrieveSettings(), or similar? When I create a camera in the scene manager, I need the backbuffer width and height to pass to the constructor to make a projection matrix. Currently I'm using QSConstants to give me these values, but that won't work forever.
Dec 10, 2007 at 1:27 AM
Shaw, I'd like to be able to report the number of triangles being drawn each frame. This isn't top priority for you or anything, I'm just posting requests. This way as you're designing things you can account for what people may eventually want and need. Thanks man.
Dec 10, 2007 at 1:43 AM
Also, if you check the newest changeset, I'm not sure what to do with the RenderQueueEntry in the example game. I will need to have it moved into the entity model loader, or scene manager, or something like that. I'm sure you'll know what to do with it. That is the one thing I was unable to move into the scene manager (cleanly at least).
Dec 10, 2007 at 1:47 AM
Shouldn't be hard, I can write a statistics generator that would provide the following information:
  • Total triangles drawn per frame.
  • Average triangles drawn per mass (over shadow passes, reflection passes, final pass, etc.)
  • DrawIndexedPrimitive calls per frame.
  • Maybe material changes per frame.

Anything else you would find useful?

Regarding the graphics settings, I can definitely do that. It would actually help if users wanted to just change one settings, they could do a Retrieve/Apply. Also, don't forget you can do this via the GraphicsDevice instance, i.e. Game.GraphicsDevice.PresentationParameters.BackBufferWidth.

Dec 10, 2007 at 1:49 AM
Any renderable entity will have a RenderQueueEntry associated with it. That's how the renderer knows to draw it, and how to draw it. So just place it wherever you keep the model instance. I'll take a look at it tonight.
Dec 10, 2007 at 3:40 AM
Shaw, do we have framework in place to allow for entities to be drawn according to their rotation? I'm able to set rotation at this time, just do not know how to use it. I need to be able to rotate entities to test the QSVector3 and QSMatrix classes properly, which is basically just to see if the new coord system changes are working right.
Dec 10, 2007 at 3:41 AM
Edited Dec 10, 2007 at 3:42 AM
Oh by the way, I started a thread on a performance counter system. I am thinking of setting up a generic system, it would allow you to setup your own for the graphics system and send it the info which could be displayed or output to file.
Dec 10, 2007 at 3:59 AM
What do you mean by entities drawn by their rotation? Sort the render queue based on rotation? I fail to see the logic in that. If you mean just apply rotations to objects, sure. That's what the World matrix property is for.