• Content count

  • Joined

  • Last visited

Community Reputation

491 Neutral

About LilBudyWizer

  • Rank
  1. I doubt you would ever use any of that as a professional programmer. It's even more doubtful that anyone will hire because you had them. That you have the degree is really the most important thing. A degree actually in computer science is even better. A degree in computer science with a high GPA even better. So take the one's that easiest. It isn't just that it helps you GPA but that none of them are actually easy. Part of what you should be trying to figure out is what are you good at, what you have an aptitude for, what you learn easiest. It isn't taking easy classes, it's pursuing what you excel at.
  2. Turn Object around Point

    You have the position and orientation of the object. The position is a translation and the orientation is a rotation. If the object is orbiting a point then you calculate the position with a rotation, but what you get is a translation vector. If you're rotating the object about a point other than it's origin then then you translate that point to the origin, rotate the object, translate it back. Though there's a translation in there it starts and ends at the same place so it's really just a rotation. Generally people use uniform scaling so that's just a scalar. You keep those seperate. So you can have an object rotating as it orbits a point while growing larger and shrinking back with it all being easy to keep track of. You could combine all that into a single matrices, but some of the cells are going to be equations since time is a factor. That would get all nasty and ugly, but simply a vector the position, a matrix for the orientation and a number for the scale keeps things nice and simple. As your scene gets more complex it helps to break it into a heirarchy. Picture the typical amusement park ride. Oh my God there's stuff going everywhere. These are all orbiting that and the whole group is orbiting this other. If you break it down into a heirachy though each individual piece is simple. That's why you get a standard of view, world and object space. That's generally needed just for a static scene of any reasonable complexity with nothing moving. When things start moving relative to another you start needing to break those object space down into subspaces. You have clown on a golf cart on a cruise ship juggling three balls in the air. If we know where the golf cart is on the cruise ship and where the cruise ship is in the world then we can say where in the world the golf cart is. The position of the golf cart relative to the ship might be somewhat complex relative to the cruise ship, but relative to the world even more so. So you break it down to keep it simple.
  3. Right Angle of a plane/rectangle

    Ax+By+Cz=D is the equation of a plane. What you're calling right angles is commonly referred to as normals. (A,B,C) is the normal for the plane. D*(A,B,C) is the closest point on the plane to the origin. If A^2+B^2+C^2=1 then (A,B,C) is a unit normal. A point (X,Y,Z) lies in the plane if AX+BY+CY=D. If it's less than D it lies on one side, if it's greater than D it lies on the other. If D is always positive the less is always closer to the origin than the plane and greater is further away. Three points define a plane, i.e. V1, V2, V3. N=(V2-V1)x(V3-V1) where x is the cross, or vector, product of the two vectors, is a normal for that plane. It may point towards or away from the origin though. If N.V1 where . is the dot, or scalar, product of two vectors is negative it points towards the origin and you should use -N instead. If it's zero it's arbitrary, but it helps be consistant so one rule is it can only lie in four of the eight octants defined by the coordinate planes or is one of the positive coordinate axes. The four octants are the ones sharing edges with two positive coordinate axes. That way there is no uncertainity as to what the sign of the dot product means. So there you have an equation of a plane defined by it normal and how to find it. Your rectangle is a region within the plane. That can be viewed the same though. Even though the edge is a line the normal gives you a plane. Rather than direction and distance from the origin it's direction and distance from the closests place on the plane to the origin. That allows you to create coordinates within the plane. If it truly is a rectangle then that rectangle is axes aligned within that coordinate plane. So it's just a<=X<=b and c<=Y<=d to see if the point lines in or on the edge of the rectangle. Rectangles are a bit restrictive, but if you just view an edge combined with the normal defines a plane it's all basically the same except the bounds check is a little more complex. You have to check it's on the right side of all the planes bounding the region or lies within one or more planes, i.e. a vertex is in two planes. The restriction then is simply a convex polygon. If it's concave, i.e. there's indentations, then you can be on the wrong side of some planes and still in the polygon. Easiest there is break a concave polygon into multiple convex ones. Ray tracing a mesh is a bit silly though. Dot products and cross products in three space can do a whole lot as long as it's a flat surface. The advantage of ray tracing is infinite detail for curved surfaces. With curved surfaces you need calculus, specifically derivatives. A fair simple application can expand significantly what you can do, i.e. tori, ellipoids, quadradic surfaces. It's basically the same as above. To do computer graphics of any reasonable complexity you have to use linear algebra and derivatives is no more complex. This plenty to learn though without getting into complex surfaces. Even so eventually you hit a point where the only "more" to do is more complex scenes. When you get there if seems impossible remember there's calculus.
  4. This is not a support request, it's a rant. Every since SP1 came out for Windows 7 back in July my wife's PC won't run DirectX 9. A 560 Ti for display, a 275 for PhysX, dual SSD's, dual velocity raptors, 12GB memory, a 925 CPU, about $3k in this thing and now it can't play most of the games on the market. Thankfully she only actually plays WoW and a command line switch can set it to run as DirectX 11. Heroes VI just came out, she wants to play that, but she sol. I've tried the cards individually, changed slots. It's a software problem, not hardware. It's crashing in NVD3DUM.dll. The Direct3D driver for the video card. It crashs upon initialization. Things like the Heavan benchmark that lets me select 9/10/11 crashs under 9 and 10, but not 11. WoW runs fine on 11, crashs with 9. The only thing left that I can think to do is switch to AMD. That's far from a certainity though. Just because it's reporting crashs in the driver doesn't mean it's actually the driver. The application calls DirectX which calls the driver. Since it's bounds check error likely it's passed an invalid address by DirectX. It could be some type of virus, but three differant ones haven't found one. She had some problem with her e-mail getting accessed by some unknown party so I virus seems likely, but three virus scanners don't fine it. I identified all the running processes. Why a virus would alter Direct3D except to crack passwords I can't imagine. I have monitors running all the time, there's no high CPU/GPU, disk or network usage. DirectInput would make more sense if they want to steal passwords. The idea was to run nVidia on her computer and AMD on mine so I have access to both. I'm just running an ASUS CG series off the shelf with a 5770. I have neither the cooling nor power to run anything bigger. I'll have to pull the card from mine and stick it in hers to be sure the AMD drivers fixes the problem. I need to clean mine out, I'm runing 100+ C playing games. Beyond that it's install Visual Studio and the DirectX SDK on her computer and try to figure just what's going wrong. I hate to do that since her's is suppose to be a clean machine. With a bunch of SDK's and everything integrated with Visual Studio it's easy to miss details. Maybe overriding the programs and turning features off in the driver, except most games select barebones options when they install. This is just frustrating and thus the rant. PS: And ranting does really work, I found it, sort of, she's using her computer so I'll have to narrow it down. It's either RivaTuner or MSI Afterburner. I shut them both down and DirectX 9 ran fine.
  5. Sticky FPS Ellipsoid-Polygon Collision Detection

    You cannot move closer than 1 to the wall, but if you are already closer than 1 then you can't move more than 1 away. If there's as an opposing wall the same is true for it. If you are further than 1 from the opposing wall and less than 1 away from the near wall then you are stuck between two planes 1-d wide where d is the distance between the two walls. If they are reasonably far apart you can move parallel to the wall. If they were, say, a nanometer apart you likely couldn't move. Why? Because you can't steer precisely enough. You have to be within a tiny fraction of a degree of exactly parallel to move. If you move the player away from the wall, but not far enough it's the same effect. Moving them one little nanometer too little means they effectively can't move at all. Why would you move them one little nanometer too little? Precision error. It should have been move them a millimeter plus what you calculated. That way if you calculate to move them 0.999999999m away rather than 1.000000000m away it doesn't really matter because you'll move them 1.000999999m away and they aren't stuck moving between two planes 0.000000001m apart. That does not solve your problem with edge collision detection though, it just masks it. They should have never been so close they needed to be moved to start with. Is that number too big? Too small? How would I know? If that's a time it could be a microsecond or a nanosecond depending upon whether 1.0 is a second or a millisecond, or it could be century for all I know. There is a minimum e such that x-e != x. The scale of e depends upon the scale of x. This is floating point, there is no right value. Rather what there is are points in your calculation where you can say you only need a limited precision in real world units. If you only need to be within a mm then subtract 1 mm. It's crude, it works. If 1m is as close as they can get to that object then it doesn't matter if they are stopped at 1.001m. They can't tell a 0.01% differance without instrumentation. Use a value down to the micrometer and then use a sliding vector that's not quite orthogonal and you can end up a micrometer too close and now you're stuck.
  6. Sticky FPS Ellipsoid-Polygon Collision Detection

    My first guess would be precision. It should be equal, but it's not. Instead it's just really, really close. An example is [code] float A = 0.1f; float B = 0.00003f float C = A + B; C -= 0.10003f; [/code] C should be zero, but it isn't.
  7. I follow a number of tech news feeds and [url=""]Wolfram CDF Format[/url] was announced. I couldn't help but think a repository of such documents related to game development would be handy here. Not as a replacement to articles, but as a reference. Sort of like code snippets, only illustrations or derivation of fomulas.
  8. CPU Time in XNA

    [quote name='braindigitalis' timestamp='1311589514' post='4839930'] Chances are you have code in the draw function that is doing lots of cpu intensive calculation. move it into the update method, and avoid doing calculation in draw(). This should lower cpu use, if it is still high maybe your pc or graphics card is underpowered to run the program? Can you paste source? [/quote] The draw function is using 0.1ms per frame. The update function is using 0.02ms per frame. The GPU is running at about 2%-3% utilization. Only about 0.6% of the time the application is running is spent in my code. Yes, traditionally you said CPU utilization didn't matter, frame rate did. That was before 130W worth of CPU and 600W worth of GPU's. Burning CPU needlessly takes on a quite literal meaning.
  9. CPU Time in XNA

    I'm playing with Game Studio 4.0 following along in a book and I notice when I run this simple app one of the CPU's is pegged at 100%. I turn on vsync by setting SynchronizeWithVerticalRetrace to true and I'm still running 100% CPU. So I count the updates, draws and time the updates, draws and app time. I get 1385 draws and 1389 updates in 23.652s getting just short of 59 fps as I would expect. I'm taking about 0.1ms to draw a frame and 0.02ms to update it though. Sure, I have two real cores and four pretend ones, but I would rather not heat the cpu needlessly. How do I get XNA, Game Studio, whomever is responsible from chewing up CPU needlessly?
  10. Kinect SDK Beta

    I, for one, appreciate the release. It gives me confidence it's worthwhile to learn to use the device on this platform. Hacks don't do that. People producing those hacks can't drive 10 million units of sales. Good for research, curiosity, learning, but there's a whole lot of things I could spend my time learning with computers. It's beta and from MS Research, but the device has gone mainstream on the XBox. Break out of the gaming market into NUI with integration into Windows 8 and, to me, 100 million units is very realistic. I don't mind gambling a little, but the SDK being released makes it a whole lot less of a gamble. The best part is the skeletal tracking. The depth data would be hard to use without that. With it some really amazing things are appropriate for beginning programmers. Pong using your hands to control the paddles is trivial.
  11. I don't really follow laptops but personally that don't look like anyone doing you any favors on that laptop. Maybe if it has a 19" screen.
  12. I was wondering if anyone had any suggestions on books on investing in the software industry? Really more investor relations, but the perspective of the actual investor seems a good start. I can read an annual report. I understand what the numbers represent from an abstract sense. There's a lot of meaning in those numbers I don't get though. Retail is the industry I understand. A 25% profit margin in retail would be, pretty much, a pipe dream. I would prefer something not limited to just standard reporting, but also include what, say, a venture capitalist is looking for when they crack open the books. I would like a better understanding of royalities, licensing fees and such from a financial perspective. Things like when can you book the income and what's the qualifications and conditions for that. I would really prefer gaming since, duh, it particularly interests me, but the software industry in general would serve well enough.
  13. Limited much ?

    PCI Express 1.0 and 1.1 is a very significant bottleneck. You definitely want PCI Express 2.0 or higher. 128 bit versus 256 bit and such is the width of the data path into memory. How many bits are transferred in a single access. Reviews are far more practical to use. Places like Tom's Hardware, AnandTech and Guru3D benchmark cards using games and present the results with other cards they have benchmarked with the same build/games. The 550 Ti just came out which is in the price range those reviews will give you a good idea what your choices are in that price point. The 550 Ti itself got slammed for not enough bang for the buck so I'm not recommending it, just that since it is in the same price point the articles are particularly relevant. PS: The memory is internal to the card. It is between the processors and memory on the card. If you do a search on like GF104 Architecture, or whatever relevant processor, you can find some fairly detailed explainations of logically how the cards work.
  14. 2 PC's

    Check out OnLive. Basically you just play a compressed HD video stream. They sell a $100 console you can hook to a TV to use their service. That's all it takes with cloud based gaming. It's basically the simplicity of a console while having a technical staff to keep the hardware up to date. Personally, such services will likely supplant consoles. Another alternative is just get a console. The free alternative is let him set at your computer playing the game while you log in using remote desktop from his laptop. A game server in the home just isn't real practical so there's no readily available solution.
  15. New computer build opinions

    An enthusist machine for $1500 seems a bit dubious. The enthusist market is for those with money to burn. It isn't about the power, but the bragging rights. Enthusist stretchs clear up to $10k. The high end of mainstream makes more sense than the low end of soon to be outdated enthusist. When it comes to bragging rights more people will be impressed by Sandy Bridge. When it comes to actual power Sandy Bridge holds it's own against the current generation of enthusist.