3D math? Where do I begin?

Napivo1972
12-12-2004, 03:31 PM
I guess people have asked this a thousand times. I started playing around with directX9 and VB.net. I since long dreamed to have a VB 3d engine that has the power of the Half-life engine (for inside) but could create infinite sized outdoor scenes. I’d like to create a RPGmaker3d but whether or not we (Me and my friends) will ever accomplish this task it is not relevant at this point but I can always dream.

Given that this task is impossible for us right now. I decided to build a 3D drawing program to start learning. This only looked natural compared to 2d graphics leaning as one of the first tasks is to write a drawing program like “Advanced Paint” :)

Being not too bad at 2d math, I thought, with a little help from the internet, I’ll learn the 3d math easily enough... No such luck. This stuff is so complex :(

When I started I thought: “A plane is defined by 3 points and a shape is the space between a number of those planes. What more do I need?”

Although I know the above statement is absolutely correct, how do you explain this to your computer? I found the answer here: http://mathworld.wolfram.com/Plane-PlaneIntersection.html but I couldn’t make heads or tails from this stuff. MathImagics (I admire) is probably Rolling Over the Floor Laughing for how easy this stuff is but I never learned about this stuff.

So, I need to learn 3D math from the start but I can’t seem to find such resource on the internet. I am not asking for people to write me code, I rather prefer to understand what I playing with but where do I get the knowledge? All resources, books, tutorials, articles are welcome.

Thanks

Titanium Sniper
12-12-2004, 03:56 PM
to put a point n space on the observers sreen. if the observer is at 0,0,0 (x,y,z) and is looking into the positive z axis the place a point in 3d would be drawn on the screen is:
( i use radians here as everyonbe should)
and this only works if the point will be on the screen otherwise it will mess up

xvalue on screen is: widthof screen in pixles/2 *(pi/4/arctangent(z/x)
yvalue on screen is: heightof screen in pixles/2 *(pi/4/arctangent(z/y)
this should work if it dosent then post a better way

Mathimagics
12-12-2004, 05:38 PM
Actually, 3D geometry is not one of my strengths at all :chuckle:

I'm more comfortable in other areas, I'm afraid, algebra, number theory, combinatorics.

So really I'm in the same situation as you - the only geometry I did was 2D High School level - maybe I'm a little better off, as the areas I did study at university gave me enough to understand the notation and be able to get the gist of articles like the one you refer to (on Planar intersections) e.g. I know about matrix and vector operations, and that's a tool much used in 3D geometric transformations.

How would I go about learning the 3D math and about 3D drawing systems? I'd go and find a good textbook - forget "internet tutorials", sit down with a good book, paper and pens, and study it - long, hard and often.

I decided to build a 3D drawing program to start learning.
I once thought about that myself, and still hope to one day (time, alas, is a finite resource) - a book I would recommend is Ian Foley's "Computer Graphics: Principles and Practice", it is a "classic" in the field, I believe, and has both the preparatory maths and, of interest to you also, the methods and techniques used to build graphics systems and do basic 3D modelling.

:)


PS: Whenever I need to explore a new area of maths, or catch up on an old one, I switch off the PC and find the nearest University library and find the "QA" section (maths and computer science). Some universities actually allow the general public to register and get some borrowing rights.

Napivo1972
12-12-2004, 10:40 PM
Thank you both for your answers. I will follow MathImagics recommendation and find a suitable textbook on this subject and start learning.

BillSoo
12-14-2004, 04:35 PM
I wrote a short tutorial that might help with the display aspects...

http://www.visualbasicforum.com/showthread.php?t=22865

EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum