Solved

XNA Performance

Posted on 2011-09-02
3
546 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

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

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

Recently, I had the need to build a standalone system to run a point-of-sale system. I’m running this on a low-voltage Atom processor, so I wanted a light-weight operating system, but still needed Windows. I chose to use Microsoft Windows Server 200…
What is RenderMan: RenderMan is a not any particular piece of software. RenderMan is an industry standard, defining set of rules that any rendering software should use, to be RenderMan-compliant. Pixar's RenderMan is a flagship implementation of …
This tutorial gives a high-level tour of the interface of Marketo (a marketing automation tool to help businesses track and engage prospective customers and drive them to purchase). You will see the main areas including Marketing Activities, Design …
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.

815 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

9 Experts available now in Live!

Get 1:1 Help Now