View Full Version : Artist-turn-programmer?
Samuraiban 11-25-2008, 06:53 AM Hi, guys... what im about to ask is something dat ive consulted with my professional colleagues in 3d and most of their response is "that's almost IMPOSSIBLE". the reason i kept asking this question im about to ask is the fact that they its "ALMOST impossible".
Well, currently im from malaysia and working as a compositor, 3d modeler and photographer and most of my work involved in tv series, commercials but im stil a newbie in 3d animation. in the past years, ive tried numerous software ranging from desktop publishing softwares to vfx tools...i realised all along dat all these softwares are design and programmed by programmers for specific purposes to better aid all the digital artists in the world to create 'miracles' in graphics design, vfx,etc and without these programmers, we as digital artist will not be called as digital artist.
i always consider myself as a R&D person coz im always a big follower in the latest development of technology,specifically in 3d. but my background seems more inclined towards design and artist-oriented work. I want to change that... i want to be a nerd:blush: and learn graphics programming and i know it sounds ambitious but guess what, it is my ambition. the problem is dat being a programmer is not simple if ur not a 'genius' in maths or a cs graduate.
Stil, i always hav that desire, so i set myself up and went on to research on computer animation, programming, JAVA, C++, openGL, GUI design, etc and my dream project would be developing my own simple software but useful to others...im very much interested in creating photogrammetery or image processing software since i love photography...then again, i don know where to start. so my question will be:
a) is it still almos IMPOSSIBLE for me to learn graphics programming?
b) if u answered No for the previous question, where do i start?
"I want to be a real boy."- spielberg's film 'A.I.':)
|
|
ThE_JacO
11-29-2008, 07:50 AM
Your colleagues need to uncork their head from their arses.
It's not almost impossible, it's actually QUITE COMMON.
In this industry only a small percentage of TDs come from CS backgrounds, of those who do some even regret having done CS since they had to learn the largest majority of what they end up doing on their own, and in RnD the percentage of people from CS or scientific disciplines is higher, but not the total.
Plenty brilliant RnD and technical staff are ex artists that until only a few years before being in that position had difficulties with additions or writing a shell script.
As for how to start, it's probably the most asked question popping up here in the last couple months. Start using the search engine and post in those threads if and when you need more info.
Getting into the habit to search for everything you need first and foremost, and how to do it, is possibly the first thing you will have to learn. No, I'm not being sarcastic.
skydave
11-29-2008, 10:33 AM
Hi kenny,
nothing is impossible. The question should be: is it impossible for you. And youre the only one that can actually answer it. So posting such a question here wont help you much. The answers here will just distract you from your own thoughts and feelings about it. I mean to answer your question one must take your situation as a whole into account: Age, educational and professional background, finacial situation, family situation, location, industry contacts, attitude, talent - just everything. And you're the only one who sees it all. You have to look at your situation and see or envision whether it fits and whether it could work out for you and your environment.
I understand that you are kind of afraid since its a bold move your planning to do and that you would like to get to know whether you can be successfull in your endeavors or not, but in my oppinion one should not rely on statements from others when making such important desicions.
dave
hi,
funny i am the opposite :p
for your questions i can tell you it is not impossible. graphic programming is fun and if you already got the foundation, you'll able to tackle it easily. i did 3D modelling as a hobby before i took my cs degree and i must tell you, knowing how 3D apps works will helps you a lot, especially in Jargon and Physic Logic part.
what you should realize is 3D program is a multimillion dollar project. its not a one man show. so dont put your dream too high like making your own 3DS Max. its more than a decade old program built by hundreds and thousands of programmer and math professors. and the hardest part of 3D program is not actually the programming part, but the math part. im currently takin a specialty in graphic programming and it contains 75% math 20% programming and 5% other soft skill like art and stuff.
and also, you might want to scratch Java from your list. its not very common to use Java as Graphic Programming since performance is everything (at least for now)
regards :)
oh yes i forgot, and for start, you might want to learn C++ then try OpenGL/Direct X. I myself prefer OpenGL.
Samuraiban
11-30-2008, 09:45 AM
Thanx a lot guys... Its nice to get some inspiring comments. I kinda felt much more confident. Looks like most of ur replies sounded like "stand up and be a (programming) man". haha.
Seriously, thanks a lot. Well, i am learning a little bit of C++ myself and OpenGL as well, but I would have to b honest, this is a long journey (its darn hard). maybe along the way i'll be meeting a future mentor. The thing is i always had the guts to do graphics programming but never the confidence. But with ur valuable comments, i think im up for it.
I would appreciate any further replies or comments from anyone.
cheers
Mazer
11-30-2008, 11:25 AM
what you should realize is 3D program is a multimillion dollar project
Is it ?
www.blender.org (http://www.blender.org)
...not a one man show
realy ?
http://3d-coat.com/
;)
cheers
Samuraiban
12-01-2008, 10:34 AM
i really admire john gaeta (the matrix trilogy vfx supe) coz he came from photography background yet he gave a lot of unconventional ideas on developing new vfx technique just like wat he did in speed racer. im not saying i want 2 be like him, but its all about developing new ideas where nowadays most digital artists constrain themselves to pure CGI. ive worked with ppl who thinks going pure CGI is the right way, and i kept telling them that doing some traditional vfx work or programming a proprietary sofware may save our asses. but, in the end, nobody listened until one day, some colleague(who says pure CGI is the way) finally agreed on using traditional vfx work like using stil backgrounds coz we didnt have the number in our staffs or the ample time in order to create CGI environments in one of our upcoming projects...and he says that as if he's the own who suggested it when it was me suggested earlier! grrr....
but my point was that creating some new techniques be it combining old and new techniques or writing a new software cud be really beneficial in order to help digital artists not restricting themselves with off-the-shelf sofwares. dats why i decided to learn graphics programming, it may not be a success in the future but hey, at least i dip my feet in the water.
Robert Bateman
12-01-2008, 06:19 PM
I used to be an artist, now I'm a programmer. It requires quite a lot of dedication, but it's certainly possible. Those that do make the transition, are often highly sort after.....
Robert Bateman
12-01-2008, 06:33 PM
hi,
what you should realize is 3D program is a multimillion dollar project. its not a one man show. so dont put your dream too high like making your own 3DS Max. its more than a decade old program built by hundreds and thousands of programmer and math professors. and the hardest part of 3D program is not actually the programming part, but the math part.
1. 3ds Max is most likely to have a full time team of about 4 developers. Certainly my experiance of commercial 3D software indicates that you never find huge teams at any major company.
2. 3ds max has always been crap, and is unlikely to improve at any point. The biggest problem is that although they knew the maths, their software engineering skills were downright awful. The result is an aapplication that works, but happens to have one of the worlds worst programming interfaces in the history of mankind.
im currently takin a specialty in graphic programming and it contains 75% math 20% programming and 5% other soft skill like art and stuff.
Those of us who work as graphics programmers would say it's 50% software engineering skills (knowing C++ is about 2% of that), 1% maths skills, and the rest is all about communication skills.
ThE_JacO
12-02-2008, 02:44 AM
Those of us who work as graphics programmers would say it's 50% software engineering skills (knowing C++ is about 2% of that), 1% maths skills, and the rest is all about communication skills.
The size of permanent teams being as low as 4 for something like max is unlikely I think (although I don't know the size of max' team in the specific, so I might be wrong).
It is true that often enough teams that are on maintenance and core work are 4 to 6 people, but the whole dev team (without qa and software specialists or other prototyping script kids) usually ranges between 10 and 30 for apps like xsi, maya, max, c4d, houdini etc, with only half or less of the staff on the harder and more involved parts of the platform.
It definitely doesn't make the coding part of those projects a multimillion dollar enterprise every year though, that I agree with.
I, respectfully in this case :), disagree with maths making for such a small percentage of the effort though.
I see it more as a threshold requirement in first place.
Below a certain level of understanding of the subject, some things you just won't be able to tackle; past that mark, in many sub-fields, there is a long plateau, where you are either so bloody good that you can get into certain kinds of maths heavy RnD and live past that plateau, or additional knowledge on top of the basic requirements doesn't have the ROI you would get out of working on other aspects.
That threshold can vary greatly depending on where you are working in the domain.
To successfully innovate in the field of fluid simulation you do need very strong maths and physics foundation, when you work on human interface and gui work (*shudder*) an understanding of the user process and of efficient design becomes a lot more important, and maths past basic algebra is unlikely to come into play, while experience, strong domain knowledge of dev techniques and a background as user and not just as engineer are gold.
And then there's all kind of gray shades inbetween.
Said that, I agree with all the other points, and I also find a 75% estimate of maths presence in the necessary knowledge base absolutely off the mark in nearly any possible specialization in this industry's dev cycles. It's a lot more likely to be between nil and 20-30% depending on what you are working on, maybe as far as being half of it for some highly specialized parts of some dev tasks, but never 75% unless you are doing something maths related and not CG related anymore.
Mathematicians developing for new models study hardly get to that level of dev agnostic involvment, in CG it would be unheard of.
On a similar note: I also find some of the so called "programming skills" absolutely overrated in some situations.
Much needed, sure, but often used as surrogates that fail providing a good base for part of the decision making.
So many people get lost in language and implementation technicalities that they completely lose sight of much more important objectives and skills that are the foundation of strong design.
Architectural and design patterns, dev and deployements models and management, team and communication skills, and even plain common sense.
Too many artists and too many engineers, and not enough people who are ambivalent and have a smidge of common sense, that's how some absolute crap has been born and is still going strong.
In my experience the largest number of failures are due to bad planning and design. So many softwares make it to publishing, but in many regards are bastard, stillborn children of a process went wrong before it started.
well maybe 75% is might be a little bit off the target. but its really significant. at least in my course. i only have a total C++ programming only in the very first year. no, half first year. the rest is trying to apply graphic logic such as clipping, rasterizing, lighting, shading and stuff, which is i count it as a 'mathematic' skill, since you will deal with math formula, and apply it to C++.
core dev of max is 4? i really doubt that. if its so then we have a problem :p maybe the core dev is not much, but you should count also person who contribute to its development. i know a dutch professor, who said he contribute to the fluid effect on max. there are lots and lots of people who give contribution but off course you dont count them as a core team. and i also disagree max is bad. i think its the best 3D program for my daily use. ive been through maya and lightwave, but still i think max is better. just my opinion though ;)
as for software engineering, i dont think we are on the same page. off course it is very important but for me as a graphic programmer, there must be another guy who involve more in that skill. for me its like my job is to make it work effectively and efficiently, his/her job to put it in the program on the right place at the right moment
but off course, how deep you want to go into, its really up to you.
just my 2 cents though :)
Samuraiban
12-02-2008, 12:30 PM
I used to be an artist, now I'm a programmer.
wow, really? how did u started become one?
ThE_JacO
12-02-2008, 09:33 PM
core dev of max is 4? i really doubt that. if its so then we have a problem :p
No, you actually have a problem if you have much more than that.
The core for a platform like most 3D applications isn't something that gets better if you throw more developers at it, quite the opposite.
There's only that many heads you can bring up to the same par and thinking on how to work on it. Large teams are seldom succesful at this.
maybe the core dev is not much, but you should count also person who contribute to its development. i know a dutch professor, who said he contribute to the fluid effect on max. there are lots and lots of people who give contribution but off course you dont count them as a core team.
It still doesn't bring the size of the team anywhere close to what you were suggesting. Beside that, no, you don't count every sod that contributed a snippet, otherwise you might as well consider the QA people part of the dev team, which isn't the case.
I have to ask if you ever worked in software development in this industry at some point or interacted with the teams on the apps we're talking about. I know I have, and I think R.Bateman is part of a rendering engine dev team, and frankly I haven't seen any teams made of hundreds people yet. Most are around or below 20 really.
You might change your mind on a few things after studies and after enough years doing actual development :)
I have to ask if you ever worked in software development in this industry at some point or interacted with the teams on the apps we're talking about. I know I have, and I think R.Bateman is part of a rendering engine dev team, and frankly I haven't seen any teams made of hundreds people yet. Most are around or below 20 really.
You might change your mind on a few things after studies and after enough years doing actual development :)
3D industry, no :( software engineer, yes ;) i must say that my experience are not that much (or maybe none) but ive been through some courses on this programme (comp. graphic course) and it just not get into my idea how come a 10-20 developers come up with a such huge and complicated (not saying it is good though :p) program like 3ds max.
i usually do a small-medium program for companies (mostly erp or telecom at the nearest to technical program) and i must say 10-20 even 30-40 is the most common number in a team. and its nothing compared to 3ds max. off course not everyone need to talk to everybody, and we call it modularity.
but still, it might be just my experience, which is least related to this industry. it might be a different story in here. its a great knowledge to know this though, i might need to reprogram the way i think about 3D industry. lots of them :(
:thumbsup:
Robert Bateman
12-03-2008, 01:13 PM
The size of permanent teams being as low as 4 for something like max is unlikely I think (although I don't know the size of max' team in the specific, so I might be wrong).
With a company the size of autodesk, I'd hope that the Max team was about 4 or so. Given that they have a fairly large number of projects, I'd hope there'd be a central tech team (i.e. FBX, common Maths lib, common GUI stuff, common rendering code etc). In an ideal world, that team would be the largest in autodesk, which would serve the needs of the other product teams. The max dev team should then productise the common tech, and undertake work on any max specific features. Sure there are the QA, doc writers, product support teams etc. I'd assume those teams are not max specific, but shared between all autodesk products.
Looking at the number of new features Max has aquired over the last few years, I think my guess of 4 core devs is pretty close to the mark....
So many people get lost in language and implementation technicalities that they completely lose sight of much more important objectives and skills that are the foundation of strong design.
Keep it simple, Keep it stupid. Esoteric language features don't play nicely with code maintainability. The C++ code i write uses a very limited subset of C++ that is known to work reliably on all compilers and CPU architectures.
I, respectfully in this case :), disagree with maths making for such a small percentage of the effort though.
I see it more as a threshold requirement in first place.
Well, when I add a new feature, I go to a research guy who gives me a library implementation of whatever feature X is needed. Once you've added script bindings, GUI icons widgets, undo/redo, written the unit tests, sorted the file IO and versioning, written the documentation, optimised any bottlenecks, written the interactive tools etc, the amount of math involved is actually pretty minimal. Knowledge of how an animator works, and how they'd want to see the tool implemented is one of the more important aspects. The other is making sure your code 'fits' with the rest of the codebase - which is all software engineering and experience.
as for software engineering, i dont think we are on the same page. off course it is very important but for me as a graphic programmer, there must be another guy who involve more in that skill. for me its like my job is to make it work effectively and efficiently, his/her job to put it in the program on the right place at the right moment
That's a nice idea in theory, but in practice a graphics engineer who isn't a good software engineer ain't that great. Optimising the crap out of a Matrix routine, or writing more optimal shaders, can only improve performance so far. Eventually you need to start understanding the rest of the codebase and where the bottlenecks are between that and your own code. It's almost impossible to be able to work in isolation.
I know I have, and I think R.Bateman is part of a rendering engine dev team, and frankly I haven't seen any teams made of hundreds people yet. Most are around or below 20 really.
I work as a software engineer on a couple of commercial 3D animation packages ;)
Robert Bateman
12-03-2008, 01:42 PM
wow, really? how did u started become one?
Got really bored of animating, didn't appreciate the custom in-house tools that never worked, and quite fancied having a go at writing a simple computer game. Picked up some programming books, started programming, quite liked it and carried on. It took a while to get my first job as a programmer - mainly because at the time I hadn't had any formal training, and really wasn't up to scratch if I'm honest. What eventually did it, was concentrating on making a few things look really polished for my show reel, and specifically chose to implement something that I hadn't seen anyone else do at the time, and looked really really hard (realtime skinned nurbs characters).
Eventually I found a job as an animation programmer on an Xbox game (and was in way too deep for my liking). Within a week or two of starting, it became apparent that all the problems were with the artists tools, not so much the engine code. Ended up writing loads of tools, which came quite easily since I'd had the animation experience. Eventually i realised that i needed to know a hell of a lot more, and luckily landed a lecturing job where i spent a couple of years filling in the gaps in my knowledge. That's basiacally it.
Anyhow, my advice is to read everything, concentrate on writing a really well polished, useful, well documented, and well tested code library. There are a hell of a lot of demo reels that consist of the same array of 'heres my parallax bump map shader', 'heres my GPU skinning shader' et al - so originality does help to get your show reel noticed.
I do kinda wish that someone pointed me in the direction of:
http://unittest-cpp.sourceforge.net/
When you're starting out, it's a damned good idea to get into the habit of testing code sooner rather than later. Knowing that your code is 100% bug free makes life so much easier when you start implementing the more complex algorithms....
Samuraiban
12-05-2008, 02:23 PM
thanks r. bateman. its a confidence boost for me to know dat u transitioned frm animator to graphics programmer and learned them frm scratch. i was a former 3d lead animator, so im honoured to be introduced to another former animator who successfully made himself into graphics programming.
i got one question though ( i hope its a gud one:blush:):
wic topic i shud learn first? is it software engineering or programming languages like C++?
Ian Jones
12-05-2008, 09:31 PM
They kind of go hand in hand. You should be programming whilst learning software engineering. If you happen to be learning a language as well as learning the engineering then that's ok too.
Samuraiban
12-06-2008, 08:18 AM
ok, cool. but i was wondering how i cud apply job as a programmer if i hav no previous working experience in programming? For example, lets say i wan to apply for computer games development company and i hav a demo reel of CGI environment walkthrough programmed with openGL or tools wic i developed myself, is it appropriate to apply by using a demo reel?
ThE_JacO
12-06-2008, 09:50 AM
This will get a lot clearer when you'll actually know enough programming and will have done enough of it to actually apply for that position.
If you're starting from scratch I'd say it's at least a few years before you can even think about entering a core team to develope an actual game engine (which not many studios do anyway, most engine dev and middleware comes from other companies and is then adapted and interfaced with).
There is a fair bit of learning, practice, and potentially indie work you will need before you can go there, so I'd say don't even concern yourself with it yet. It's absolutely premature.
Start picking up books and something easyish like python or Java and get your feet wet with at least the basic concepts. Move as early as possible to actual platforms work and C++ (or even C# might be acceptable now), and keep on working. Don't expect you'll be able to work on unreal engine 2010 next year.
skydave
12-06-2008, 08:12 PM
Hi,
I think the point which had been touched by the discussion but had not been nailed down is the fact that there are different kind of programmers. So a graphics programmer for me is in general a developer which works in the area of computer graphics. And this can touch a variety of topics like: GIS, application development(gui etc.), tool development(plugins/sdk work etc.), realtime rendering(shaders, engine architecture etc.), non-realtime rendering, animation, rigid-body physics, fluid dynamics, effects, 2d developer, computational geometry, pattern recognition/computer vision and many many more.
Each topic puts different weights on skills like math, programming, software engineering etc. What we all do agree is the fact that a bit of everything is needed for all but to know exactly how much you need from each skill you must get a better picture of what exactly you want to do. Just wanting to be computer graphics programmer is bit too abstract.
dave
Katachi
12-07-2008, 12:47 AM
Hi,
easy questions easy answers :)
a) yes, it is possible without a doubt
b) question is, what do you want to program? Generally it is good to google for OpenGL tutorials which will unevitably lead you to more CG resources and tutorials to get started. Get a gripse of the math and then a lot of trial and error. Learning-by-doing is the keyword. Just go for it!
Donīt listen to others saying something is not possible. Just with anything else, a lot of things seem impossible in the first place but you only know if you tried. Comīon, people used to think the earth was a disc!! ;)
Samuraiban
12-07-2008, 09:37 AM
well, i love photography so much but for years, i always wanted to make d still photos 'move'. when i discovered about paul debevec's work on photogrammetery, john gaeta's popularized 'bullet time' shot, cinema 4d's projection man, i was thinking about making a software dat cud bring my photos to life, 2.5D to be exact. im well aware dat there are a number of softwares wic cud do the same thing, but im always intrigued by 2.5D technique and image processing as well. so i kinda set my heart on making my own application wic delivers an alternative way to make 2.5D. i know its hard, but dats wat i want to do.
any suggestions?
ThE_JacO
12-07-2008, 12:00 PM
any suggestions?
Yes, learn at least to program and to do research first.
Enthusiasm is great and all, but you're unlikely to go from not knowing the difference between declaration and assignment to being able to put together a photogrammetry tools suite (which isn't 2.5D to start with btw) so quickly.
Samuraiban
12-08-2008, 11:59 AM
alrighty, 'preciate d comments, jaco.
ThE_JacO
12-08-2008, 10:14 PM
alrighty, 'preciate d comments, jaco.
I don't mean to kill your morale btw.
Being driven and enthusiastic about it is the first thing you should be to go down this route, but try to keep your feet on the ground and remember what it was like to learn other things.
You don't pick up a 3D app for the first time in your life, and go on to create a detailed model of a church. Programming isn't any different.
Start with scripts on top of an API of sorts and simple utils in a scripting language. If you can do 3D you can go down the instant gratification route by doing some stuff inside maya (or whatever 3D app you use if it's scripting capable) and get your feet wet.
Also try to develop the habit of searching A LOT first and asking later. Beside the etiquette side of this which will make you more welcome and likely to get help in the coding online communities, it's a very important part of the mind-frame where you need to live most of the time to be successful, which is one of problem solving and patience.
mindsample
12-09-2008, 11:23 AM
I havent read the entire thread but dont let these people get you down, I had similar experiences with some workmates and went for it anyways. I am a TD with 4 years of experience who quit his job to do a MSc and I can tell you after only about 3 months it feels unrecognizable to me how I could have chosen not to know the things I know now only a third into my degree. I am programming, I am developing, I am learning and I cant get enough of it!!
Whichever way you do it, university or long nights at home with books (ideally both), you will eventually be more employable, get higher salaries and wont care anymore about silly people telling you its impossible.
And as for your background: I think I am a different, sometimes better programmer than my classmates because of my background and because of my creativity. Professionally you are a lot more than just the sum of your skills, and every background produces a different computer scientist. If you want to work in 3d, being both, an artist and a computer scientist ist imho the best combination to lead and influence to a maximum degree.
Samuraiban
12-09-2008, 01:39 PM
thanx for the encouragement mindsample. just wrote my first c++ program, i think u guys know wat it is:), its interestingly fun though.
UrbanFuturistic
12-09-2008, 04:08 PM
Also try to develop the habit of searching A LOT first and asking later.Then one day you can be like me; really disappointed when, on the rare occasion you do ask a question, no-one else knows the answer either. :banghead:
:wavey:
Seriously though, I've got a shelf just for graphics programming books and I still rely heavily on books because they still provide a lot of answers you just won't find on the internet.
Courses are very good too. Learning entirely on your own you'll go down a lot of blind alleys before finding the correct way, courses steer you straight to the answers. Sure you could learn as much without them, but it'll take a lot longer.
Also, if you're learning a specific API then look to see if there's official documentation. As an example, I've finally got 'round to looking at DirectX and there are a number of tutorial websites out there, all of which are amateur and bad learning resources, all relying on extra stuff you have to download from their sites. In the meantime, the DirectX SDK comes with more than adequate samples and tutorials which are installed with it and sample code for several versions of Visual Studio. Guess which I'm using to learn? Of course, you might need better material than you can get from the API supplier but it's worth checking first.
Samuraiban
12-09-2008, 06:51 PM
C++ for graphics programming courses are very rare here in malaysia (except if ur taking a degree in animation or video games or something), since i cant afford d time to take another degree, i kinda had to get help frm reading a lot of books and infos frm internet. most programming courses wic being offered over here in m'sia are mainly php, mysql,u know, something wic is more related to website development or IT rather than graphics.
Samuraiban
12-09-2008, 06:55 PM
C++ for graphics programming courses are very rare here in malaysia
oh.correction. actually, any graphics programming-related training courses are very rare here in m'sia.
UrbanFuturistic
12-09-2008, 07:29 PM
If you're looking at C++, just get started with it in the non-graphics sense. You'll need to understand that to make proper sense of exactly what's going on even with GLUT + OpenGL (in my first year at Hallam I was so fast understanding GLUT I was helping teach by the end of the first tutorial, prior knowledge FTW). Things like linked lists, sorting algorithms, memory allocation, callbacks and so on are essential basics. Once you understand these everything else becomes a lot easier. :thumbsup:
chuong
12-22-2008, 05:33 AM
Those of us who work as graphics programmers would say it's 50% software engineering skills (knowing C++ is about 2% of that), 1% maths skills, and the rest is all about communication skills.
What exactly do you work as a graphics programmer ? I can't belive that you are a graphics programmer and you say that only 1% math skill is need !
I have to say that all about CG programing is MATH !
If you did play with mel script, i think that you did know something like transformation matrix...And if you want to code a renderer, you will see, it's all about math, from the basic hidden face detection to advanced raytracing, from understanding the color model to the construction of image like elliptical filltering, sampling,.....If you don't belive me, take the book "Physical based rendering".
Fours year ago i made a big mistake. I was in a math university, but at that time i didn't like math, i only liked programing and openGL ! But the more i code, the more i realized the important of math. But it was too late because in two year i have never gone to the university so i was kicked out :D. Then i know that i cannot to be a graphics programer with my low level of math, so i learned to be an artist (i learned maya). But i soon realized that artist is not for me, because i always ask why and why and why ! I ask myself why the elliptical filltering work, what is behide the scene. Then i returned to my math university.
Not only in the field of computer graphics, but everything need math. But i need to tell you that, to have a program like maya, we must have two kind of people, one is who sketch the algorithm and other is who bring the algorithm to life. Bringing an algorithm to life mean programing base on what sketched already, and i think that not need math much. Maybe that why Robert Bateman said math is only 1%.
ThE_JacO
12-22-2008, 06:06 AM
I have to say that all about CG programing is MATH !
No, it's not.
You need some maths to understand the basics, but for most sub-fields it's definitely not rocket science, after that design and implementation skills definitely take over.
The fact the operations are based on mathematics doesn't make mathematical skills prominent or more important than the other factors. They are often, in fact, bits that are way easier to deal with than the trickier code management aspects in a project of a certain scale.
I disagree with the 1% estimate, but CG programming is NOT all about maths.
UrbanFuturistic
12-22-2008, 10:45 AM
Although, that's also dependent on your view of what is and isn't maths in programming. Personally I view near everything in programming as maths including the most basic of data sorting. Boolean algebra is something you use every time you write and if statement and you can't have a finite state machine without predicate calculus.
There's also a strong similarity between what makes an efficient program and what makes an elegant equation.
Of course, the specific limitations of computer hardware also require other extra work but if your maths isn't good you need to work on that first or you're never going to get anywhere.
But then, as if to contradict myself, you need look no further than Numerical Recipes (http://www.amazon.co.uk/Numerical-Recipes-3rd-Scientific-Computing/dp/0521880688/ref=sr_1_1?ie=UTF8&s=books&qid=1229946001&sr=8-1) as a demonstration in how someone can be a top-flight mathemetician and still produce code that makes me want to beat them with their own book. Wouldn't surprise me if they were still dividing integers by powers of 2 given what they consider to be "C++".
Samuraiban
12-23-2008, 05:38 AM
im just gonna say dat i may not be a graphics programmer yet but i hav agree dat math does play a significant role in programming. i picked up a lot of programming books n yes, all of them require an understanding in maths if we are to understand certain complexity of a programming technique. regardless of watever the argument is, everybody need to learn math at some point.
ThE_JacO
12-23-2008, 07:39 AM
I know people who have serious problems with square roots and logarithms, and only know linear algebra because of the visual immediacy of it, and yet are part of some large and respectable RnD teams.
Sorry, but while I'm a maths freak myself, no, it's not the fundation to everything, not unless you want to engage in the debate about maths being a universal and objective language (which I'd be happy to pick up but is beyond the point here).
Maths are enormously beneficial, and can be used for a number of things, but a formal, or even just academic, knowledge of them isn't the base for everything programming.
If we talk about formal knowledge and conscious studying of something, there are tons of programming sub-fields that require no knowledge of maths beyond arithmetics and no intimate understanding of any "advanced" concepts (beyond what you can pick up in 6 months in your own time on the side) at all.
It would be like saying they are the fundament of music and every musician should have an intimate understanding of them just because almost every composition in the world can be reduced to a functional pattern and because beethoven and lamb of god made some use of it.
It's reverse logic at best to say everything is based on it.
CGTalk Moderation
12-23-2008, 07:39 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.