Solved

XNA Performance

Posted on 2011-09-02
3
543 Views
Last Modified: 2012-05-12
I'm learning XNA 4.0 at the moment.  I'm having an issue with performance already.  I created a cube class, that renders perfectly.  Then I created a class that creates an 3 dimensional array of said cubes.  When I run the game, I see the cubes.  Problem is performance.  I notice that the game is drawing cubes, that the camera can't see.  

My question is how can I determine if my TriangleStrips that I use to create the cube is within the camera's view?  

By asking this question I realized that, my problem is two fold.  I am Drawing my cubes using 3 nested for loops.  So, I'm drawing them based upon my for loops, and not from closest to my camera, outward, so I guess even a function that determined if the TriangleStrip is in fact viewable by my camera, it was only for that instance, until the next cube that would have blocked the view of that cube, was rendered.
0
Comment
Question by:Iamtehbest
3 Comments
 
LVL 12

Expert Comment

by:satsumo
ID: 36485926
How specific do you want the optimisation to be?  A regular 3 dimensional array of axis oriented cubes allows for lots of optimisations that don't apply in a more general case.
0
 
LVL 18

Accepted Solution

by:
JoseParrot earned 500 total points
ID: 36499496
Seems that is a trouble with the fulcrum.
The fulcrum is the pyramid section defined by the observer (the pyramid's vertex), the vision planes determined by the height (one plane above, other below the observer) and width (left, right) of the field of vision and important: the near and the far planes (the far plane is the pyramid's base and the near the small base of the fulcrum).
Please note if the code treats these planes.

The variables in XNA are:
nearPlaneDistance - this is the distance to the near view plane. Anything that is closer than this value is not shown. You often set this to 1.0f
farPlaneDistance - this is the distance to the far view plane. Anything in your world that is further away than this will not be shown. So if your world is 100 units in size you will want this value to be at least 100. The actual value to use will depend very much on your game.

The same approach applies to the other planes.

Jose
0
 

Author Closing Comment

by:Iamtehbest
ID: 36515165
Worked.
0

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

I've always wanted to allow a user to have a printer no matter where they login. The steps below will show you how to achieve just that. In this Article I'll show how to deploy printers automatically with group policy and then using security fil…
Setting up a Microsoft WSUS update system is free relatively speaking if you have hard disk space and processor capacity.   However, WSUS can be a blessing and a curse. For example, there is nothing worse than approving updates and they just have…
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now