How much math do I need to use directx?
Members - Reputation: 1371
Posted 02 October 2012 - 07:15 PM
Crossbones+ - Reputation: 8468
Posted 02 October 2012 - 07:28 PM
Of course, you can always do everything with zero math knowledge, following tutorials telling you to use such and such math function, but in my opinion that's not fun and it's more satisfying to know what you are doing. Plus you'll be able to solve problems instead of getting helplessly stuck.
The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.
- Pessimal Algorithms and Simplexity Analysis
Members - Reputation: 702
Posted 02 October 2012 - 07:30 PM
Crossbones+ - Reputation: 1263
Posted 03 October 2012 - 07:38 AM
Members - Reputation: 557
Posted 03 October 2012 - 08:49 AM
Its been my dream to make a crappy hobbyist quality 3d engine, but if i need to know a truckload of math that would be a hearbreaker =(
Bear in mind that a lot of the knowledge you need to do this to the level you mention is actually what you can pick up from DirectX tutorials and books, which you'll have to do anyway if you're new to DirectX.
A couple of people have commented on that sort of thing as a possibility and/or whether or not it's a good idea, but I would classify it as giving it as go or 'making headway' as GeneralQuery mentioned. I think the advantage of doing that is that you'll learn more about your own limitations during the process, including understanding whether you need to pick up a little more math knowledge.
If you already know calc 1 then do consider that through practice and application, the fuzzyness you describe will disappear and you are somewhat already set up to be filling in blanks from other math topics.
Also bear in mind that there are many 'graphics programmers' out there who don't necessarily operate at the cutting edge of R&D and are quite often following others. Really, the idea these same people are top math students or not is more a measurement of how much more easily they'll be able to devour white papers to follow new research but even the lack of an ability to do that does not preclude a lot of people from developing 3D engines. For many, it just means they're devouring knowledge at a different (higher) level, perhaps after others have turned said white papers into tutorials and pseudo code, in other cases it's often using libraries developed by others and gradually picking up the knowledge that is initially quite alien.
Members - Reputation: 1780
Posted 03 October 2012 - 09:21 AM
If you do only 2D, the math involved is simpler, but not necessarily by much. It depends a lot on what you are doing.
Here are some links to test yourself:
- Do you think you can understand a math library like this and how to utilize it e.g. to specify object positions, move them around, rotate and scale them?
- Are you familiar with the Direct3D pipeline stages? A lot of the math you feed into the device revolves around that architecture.
- Does the chain of linear spaces "local -> world -> view -> clip -> screen" sound familiar, and can you understand the concepts related to this?
If you feel comfortable with these, you'll be pretty well set math-wise on developing your own 3D engine. Math-wise there's not much else than basic calculus and linear algebra involved.
Members - Reputation: 283
Posted 03 October 2012 - 11:39 AM
Basically, how much math you need depends on what exactly you do, and how you implement it.
If you want the truth to be told, to go bare-bones and even make a crappy 3-D game yourself, you will have to understand some forms of math.
These can include, but are not limited to:
3.Vector graphics(pretty much Geometry again).
4.Linear Algebra(stress to say it, but yes, it helps a lot).
Honestly, you don't have to be a math genius, but application of it will be unavoidable at some point(usually the beginning).
The good thing is Geometry, shapes, etc. All that stuff is what little kids/toddlers learn. Math is used everyday for some reason, even if it's just basic arithmetic. Math is shoved in all of our brains, so it's not some "foreign" language you need to newly understand.
Sure, it gets complicated, but most of the time you're limited to mathematics that ONLY apply to game-specific logic and rendering, etc.
One pretty easy way (well, easier, let's say) to use more advanced math in 3D games is in camera rendering through projection matrices, view pointers, eye points from field-of-view projections, and vertex model space positioned by "world space" or matrices(you can think of the 3D land as world space, and many programmers differentiate "object space" from the world, specifically for models and the like).
Edited by Pointer2APointer, 03 October 2012 - 11:40 AM.
Members - Reputation: 1371
Posted 03 October 2012 - 02:59 PM
So far I know SohCahToa, unit circle, degrees to radian(and vice versa), functions, slope stuff, exponents, factoring,
basic matrices addition, subtraction, multiplication, cartesian coordinate system, trig identities etc etc.
So i went back and looked at my calc test, and it made me barf. I was like WTF was i doing here?
My main question is should I bother reviewing calc or just move onto linear algebra?