Archived

This topic is now archived and is closed to further replies.

no one

Good practices...

Recommended Posts

Hiya I have been programming now for a year and a half or so and lately I have been getting into things that are very complex math maticly wise and I have been wondering how most people remember some of these complex equations and algorithms. I would think that the average programmer has a stack of print outs and notes but would that be exceptable for a professional? I know that you always have the internet but it takes to long sometimes to find stuff and gets anoying when your just trying to refresh your self on something. What books are good to have for refrences and such? A lot of people always mention getting out the ''old college text book'' but I haven''t been to college yet so well, thats out Im sure that the average programmer can''t remember a quaternion slerp all the time. Is it ok to read others code sometimes such as nvidias or such, even for a pro? Well, gotta go (lighting...blah!) Thanks quite a lot!

Share this post


Link to post
Share on other sites
quote:
Original post by no one
I would think that the average programmer has a stack of print
outs and notes but would that be exceptable for a professional?


Yes, it''s fine. As long as you can do the job and meet your deadlines, nobody is going to worry about you having notes for complex stuff etc.

The more you use certain things (i.e practical experience), the more they become second nature. For example I remember the properties of a dot product and Lambertian diffuse and specular illumination because I''ve had to use them lots.

I know and remember the uses and properties of things like the cross product and determinant, but don''t always remember the formation off by heart (unless I use reminders like the Sarrus scheme - I still think of SOH CAH TOA when using trig...)

quote:
I know that you always have the internet but it takes to long sometimes to find stuff and gets anoying when your just trying to refresh your self on something.


Bookmarks are your friend :o)

graphicspapers.com
siggraph.org
mathworld.wolfram.com
developer.nvidia.com
etc etc etc


quote:
What books are good to have for refrences and such? A lot of people always mention getting out the ''old college text book''
but I haven''t been to college yet so well, thats out


It depends on whether it''s just plain maths or the application of that maths. I tend to have books relating to the particular application such as Realtime Rendering, Computer Graphics Principles & Practice etc.

As for deciding which book. On most commercial projects you''ll have a schedule to work to so you''ll know what you''re doing the next day. I know what I''m doing tomorrow at work - so I can dig out the books that are most relevant to that subject the night before. I keep them in my bag and refer to them if there''s something I can''t remember - or remember seeing that could be of use.


quote:
Im sure that the average programmer can''t remember a quaternion slerp all the time. Is it ok to read others code sometimes such as nvidias or such, even for a pro?


Correct. Though most companies have already written maths libraries (the person who wrote them still likely had a reference book or some existing source to check against).

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I am a professional developer, and my desk is littered with sticky notes, notebook pages, and I have a book shelf full of every reference I have collected over the last 15 years.

Also, you will find that over the average development cycle or 1.5 to 2 years, you should only need to remember and implement a complex formula work once. After that you should have it coded into a library of math functions that can be called as needed.

Share this post


Link to post
Share on other sites
Hiya

Thanks a lot! I have been a bit worried that I would need to be a math guru to ever get into the industry.

This sorta brings me a new question though. Ive heard that to really be a good graphics programmer, you need to know your math.
If you dont know exactly how the math works, but how to use it and where to find the equation, do you still need to know how it works and or why it does? I quess thats a matter of "you probably should, but are not required".

Also, how do you guys feel about using 3rd party libs such as
math engine or something like that as apose to doing it for yourself?

Thanks again!





Share this post


Link to post
Share on other sites
I have seen this attitude quite a lot around here recently. "I only wnat to use the maths, I dont care how it works.", it makes me sick!

Understanding the maths is vitally important as a principle as well as being practically important. If you understand the maths then you are in a position to optimise your algorithms, develop new techniques etc. etc.

Mathematics is one of the most beautiful and satisfying subjects to study, especially in a pure and abstract manner.

Rant Ends.

Share this post


Link to post
Share on other sites
>Understanding the maths is vitally important as a principle
>as well as being practically important. If you understand
>the maths then you are in a position to optimise your >algorithms, develop new techniques etc. etc.

>Mathematics is one of the most beautiful and
>satisfying subjects to study, especially in a pure and
>abstract manner.

Does it make you feel uncomfortable that people don''t want to waste their youth studying math to the deepest end? I taste bitterness in the air

I agree that some understanding of the math helps in gamedev, and that coming to flipcode/gamedev just to ask questions about the same subject, each time with a slight variation (because without understanding the subject you can''t handle variations, only the "example cases"), is quite lame.

- Mikko Kauppila

Share this post


Link to post
Share on other sites
Hiya

Nope benryves, im just no one
Ok, I didnt meen to start a flam of anysort, I just wanted
some advice really. Until I got into programming, I had no
desire what so ever to learn math and now that I need it im having a hard time learning it. Im ok with it I would say, I can normaly figure things out.

I never really settle with "it works because it just does"
I usually ask my self "how does it work" or something like that.
I want to make a game engine but the lack of a good math background is really what is stopping me.

I would like to go to fullsail but in an article I read here at gamedev, the guy said that they cram trig, linear algebra and geometry down your throat in like 1 month, so I have a problem
"where should I start and what should I do to learn".

Im sure im not the only person that loves programming but doesn''t know math to well, atleast I hope not

Thanks for any advice
and thank you S1CA and A.P
Cheers

Share this post


Link to post
Share on other sites
Trig, geometry and linalg in 1 month? No problem, trig is fairly simple if you get it, if you don''t nevermind. Geometry is child''s play. Lin alg is like alg1 and alg2 with the addition of matrices, not too tough at all.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster

You don''t need to know all of the math to be a good programmer. You don''t need to know all the math to be a good graphics programmer. It certainly helps to be able to visualize how a particular math operation works and what effect changes to a formula are going to have, but it isn''t necessary.

That being said, the more you know and understand the math the easier it will be to architect, develop, and debug your 3d applications. The more math you know the more efficient you will be.

Share this post


Link to post
Share on other sites
A good programmer knows how to apply mathematical formulas to his problem and arrive at the solution. He/she may not necessarily understand how or why everything works, but should know what it does and the basic reasoning behind it.

A great programmer will understand the inner workings of that formula.

There isn't much of a difference between a "good" programmer and a "great" programmer, just the level of understanding. I have gone a long way without understanding the details of every little thing. I would fail a test on vector math (except for the basic addition/subtraction/etc.) rather miserably. I know how to apply it to what I need and that's all you really need to do to get a project done .

[edited by - Raloth on September 4, 2003 10:58:48 PM]

Share this post


Link to post
Share on other sites
Hiya

Thanks a lot!
quote:

Trig, geometry and linalg in 1 month? No problem, trig is fairly simple if you get it, if you don''t nevermind. Geometry is child''s play. Lin alg is like alg1 and alg2 with the addition of matrices, not too tough at all.



This may be true, but unless you know alebra 1 and 2 first,
it would be near impossible to learn them. Im not sure where im at really, but like Raloth, I can code a vector math class with no problem but if I was given a test, I would probably fail it.

What I normaly get lost with is collision detection equations,
orhto matrix stuff, quaternions etc. I have been thinking about taking a couple of classes at a local college starting with
algebra 1 (to make sure I know it) up to trig/linear algebra.
Would you all recommend that?

Ok, now the last thing that comes to mind about "good practices"
is more less programming related. Re-inventing the wheel is no good so Ive read so many times, but if you want to learn how to make a tire, shouldn''t you first start by learning how to make a wheel? (wow, that was deep...lol). Following up on that question,
Say that you want to implement rigid body physics for example,
you have no idea how it is done so you look up tutorials, examples etc and then extract the code that you need and use it in your own project, adding to it and changing things as you need, is that ok or should you try and make a rigid body physics system (for example) from scratch?








Share this post


Link to post
Share on other sites
I strongly recommend this linear algebra book, really easy to read, it''s not focused on 3d graphics but will give a general and robust overview of matrices, transformations, eigenvectors,.... Better than some academic books that just give you headache.

http://www.laylinalgebra.com/

Share this post


Link to post
Share on other sites