PDA

View Full Version : What should I do to enter the CG Programming ?


chicolima
08-17-2003, 06:23 AM
Hi guys,

One question.

I learned some basic programming when I was studying Eng. in the university about 10 years ago. I never really got to write any software nor did I became an expert at programming in any language.

I'm really interested in learning computer graphics programming now. I'm 33 but it's never too late.

I think that learning to program will help me alot on my computer graphics carreer as a VFX Supervisor/CG Professional.

What books would you recommend?

I imagince I should learn C++ programming first and then move on to OpenGl, Cg, etc..

Please advice.

Best Regards,

Francisco:beer:

jsh3d
08-17-2003, 07:32 AM
The book "thinking in C++" by Bruce Eckel is excellent for learning basic C++. And, it can be freely downloaded from his site at http://www.bruceeckel.com :)

-jsh3d

chicolima
08-17-2003, 02:03 PM
Hi Jsh3d,

I just downloaded Thinking in C++ Vol 1 and Vol 2.

Thanks alot for this great tip!

jsh3d
08-17-2003, 06:34 PM
np :) I'm glad I found it when I was learning this stuff, it helped me a lot :)

chicolima
08-18-2003, 06:09 PM
Hi jsh3d,

In the beginning of the book Thinking C++ Vol I it mentions that you must know to program in C in order to understand the book.

I don't really know how to program in C.

What do you think? Will it go through the basics of learning C++ or I should get something like C++ for Dummies before reading this book?

Thanks again.

Francisco

rendermaniac
08-18-2003, 10:29 PM
Never get any "for dummies" books! They really are not good at all. However a lot of people recommend The C Programming Language (2nd Edition) (http://www.amazon.com/exec/obidos/ASIN/0131103628/rendermania-20/104-7074831-3293539) by Brian W. Kernighan and Denis Richie (the inventor of the C language). The O'Reilly (http://www.oreilly.com/) books are quite good too.

playmesumch00ns
08-19-2003, 09:06 AM
I've always found the Deitel & Deitel books to be a great reference for the beginning learner. A friend of mine swears by the "Learn C in 21 days" books too - he learnt enough from them in 3 days to pass our C exam at uni a couple of years ago.

I would advise learning C first. C++ isn't really a true OOP language. It's a traditional top-down language (C) with OOP concepts "bolted on". This doesn't mean it's bad, in fact it's for precisely this reason that I still much prefer C++ to Java.

What it does mean is that it's much easier to learn C first, and then learn the nice bits of C++ -- the introductory C++ chapter in Deitel & Deitel describes "C++ as a better C". What this means is that by the time you've learnt C thoroughly, you will understand it's shortcomings and not just understand how C++ makes it better, but actually appreciate and enjoy such things as classes, templates and operator overloading because it makes your life as a programmer easier.

As for learning 3D graphics programming, learn OpenGL first. OpenGL is a C API, so if you follow my advice and learn C first, it will all make a lot more sense than trying to jump into DirectX straight away.

There are a number of reasons why I prefer OpenGL to DirectX, primary among them being that it's cross-platform. Whatever the M$ fanboys say it's still just as fast as DX, and by the time OpenGL 2.0 comes around will probably be better in a lot of ways (until, that is, M$ releases DirectX 227.81b sometime next autumn). There is also the small and significant fact that you can get an OpenGL (GLUT) application up and running in about 5 lines of code, which makes it a lot easier for a beginner when what you're writing doesn't make much sense.

Once you really understand C++ and OpenGL, moving on to anything else, be it DirectX or Maya API, will be a doddle.

The best reference for learning OpenGL has got to be http://nehe.gamedev.net and make sure to get the OpenGL Red Book if you can afford it. www.cplusplus.com/ref/ is a great reference for the C and C++ standard libraries. Oh and make sure to learn STL thoroughly as soon as you start C++. Trust me, it will make your life much, much easier. To fully appreciate how beautiful STL is, make sure you go through all the linked-list/dynamic array exercises in whatever book you end up buying.

Most of all, good luck:thumbsup:

chicolima
08-19-2003, 09:13 PM
Hi playmesumch00ns,

Thanks alot for your detailed explanation on this subject!

jsh3d
08-21-2003, 08:21 AM
Originally posted by chicolima
Hi jsh3d,

In the beginning of the book Thinking C++ Vol I it mentions that you must know to program in C in order to understand the book.

I don't really know how to program in C.

What do you think? Will it go through the basics of learning C++ or I should get something like C++ for Dummies before reading this book?

Thanks again.

Francisco

I didn't know that much about actual C when I first read that book... but I did know a good amount about general programming concepts. Some people will tell ya that you should learn C first, some people, like me, say that it doesn't matter much if you've done some programming before. If you haven't done any programming at all before, it would probably be to check out some easier stuff first, but if you already have some knowlege, it should be fine :)

IMO, all that matters in the end is just gettin started. It might not be the best way, but actually getting started is always better then just sitting around thinking about how to do it :D If the books looks good, then get readin' and codein' :D

-Jsh3d

boomji
08-21-2003, 08:16 PM
Originally posted by chicolima

I'm really interested in learning computer graphics programming now. I'm 33 but it's never too late.

I think that learning to program will help me alot on my computer graphics carreer as a VFX Supervisor/CG Professional.

What books would you recommend?



...heyyy chicolima u planning on writing a flame spark eh :p .
i'm pretty much going the same way as you.

my thaughts...
1.c first.
2.c++ next.
3.a weee bit of some outdated dos programming(games).
4.ogl
5.diX ;)

robert lafore's c++ book is lovely.
c++ complete refrence by herbert schildt...to know more about the diffrences in both languages.
if youre going to do some game programming for whatever it's worth start with both of andre lamothes tomes...
1.tricks of the windows game programming gurus 2nd edition.
2.tricks of the 3D windows game programming gurus.
game programming is both a fun and serious way to get inside/under the 3d hood.

if you like my advice then send me the first spark you develop yaa


:scream:

b

chicolima
08-27-2003, 06:28 AM
Hi guys,

I'd really like to thank all of you for your replies.

I definitely agree with you jsh3d.

The best thing to do is to get started.

Hey boomji.

Writing a Flame plugins isn't a bad idea!

I want to learn how to program since alot of the VFX tools have the ability to write scripts and are open for you to program tools that improve your workflow and allow you to go a step further.

I hope I can post something interesting sometime soon.

Thanks again guys.

Francisco

Derlaine
08-28-2003, 07:00 AM
deleted text because i can't delete the post

boomji
08-28-2003, 07:28 PM
" for open GL , do a google search on Nehe's Open GL tutorials ( it's on sorceforge.net )

Most people learn C , then C++ . Personally i don't like the C and C++ books written by the creators (Bjarne ) for learning purposes, they're more like "what C++ is, what it can do and can't do" rather than books that teach you how to C++.

A C++ FAQ recommended getting a book that teahes you how to C++ ( via examples ) , then a book that teaches you what you should and should not do, and i think the last book is a OOP book, im not sure....do a google search for the C++ FaQ !

btw you probably want to look into Linear Algebra too, if you didn't take it in Engineering. it's especially important to understand Matrices and Vectors because that's how graphical information is stored in programs.

hope this helps ! "

...it does,thank you.

b

Jezait
09-03-2003, 08:43 AM
Hey guys, this is great stuff.

I am a blender user, as i'm only at high school still and cannot afford anything great. Blender uses the python API, which is quite basic programming, although I'm not too good with it.

I think my problem is that I find it hard to understand the basics of programming, the termonolagy etc. For example: I can't even figure out how to use the while statment, heck i don't even know if thats what a statment is. I know it does some kind of looping.

If there is any resource material that explains the foundational basics of programming, please post.

Thanks

playmesumch00ns
09-03-2003, 08:57 AM
Programming's hard to get into at first, but once you've learned one language thoroughly, learning other languages is a piece of cake. It's like, uh, all of state of mind, uh, man.

Python's a good language, but it's not the easiest thing to start off with. There are plenty of Python books, tutorials and references out there to get you started (though probably not too many that are blender-specific). Just do a google and you should find plenty.

farid
09-09-2003, 06:18 AM
Hi all

How about writing pluins for 3DSMAX and XSI?
does C++ use for them?

thanks

future14
09-10-2003, 03:19 PM
hey man, i agree with playmesumch00ns, although i am not keen in programming games or writing plugins for VFX, perhaps, i am more interesting in programming graphics in FLASH and DIRECTOR....when programming in this environments, u'll find it more easy to understand the foundation, the basic core of programming....

i actually suggest that, all programming language are same, under the same concept, just that the 'name' that differentiate their 'looks'.....

Barbas
09-11-2003, 10:55 AM
Well i'm now learning C++ from "Teach yourself C++ in 21 days" which is really a great book to LEARN c++. After that i'm going to tbuy a book with references and stl, after that windows programming then opengl and FINALLY dX. I'm not sure on the reference book tho anyone could help me?

Razzmonid
09-15-2003, 08:29 PM
I also learned a great deal from Teach Yourself C++ in 21Days Highly recommended. But I think that you only need to learn the basics (to intermediate level) of programming to be able to understand programming in 3D and I recommend OpenGL. It's easier to understand and easier to code. And can also be used in Linux unlike Direct3D which is limited to Windows-only machine.

Hugh
09-18-2003, 11:46 AM
Once you've got to the stage where you do know C++, but do still have a long way to go, I'd recomment "The C++ Programming Language" by Bjarne Stroustrup - it is much more of a reference book than a teaching book, but it is so in-depth, and I learnt so much more about C++ that I never knew before from flicking through it....

markyjerky
09-29-2003, 12:15 AM
www.ggaliens.com

http://pub58.ezboard.com/bggaliens

Full source available for Wings3D / Nendo starter kit written in Java.

marshall6912
10-07-2003, 09:28 PM
Originally posted by Razzmonid
I also learned a great deal from Teach Yourself C++ in 21Days Highly recommended. But I think that you only need to learn the basics (to intermediate level) of programming to be able to understand programming in 3D and I recommend OpenGL. It's easier to understand and easier to code. And can also be used in Linux unlike Direct3D which is limited to Windows-only machine.

For a newbie new to programming.I suggest a basic entry level book like "C++ for dummies" and then once you grasp the basic concepts.You can get a real thick ass book which covers the advance stuff like "C++ bible".Any programming book by Herb Schildt is good too.The abovementioned method works for me when i was learning C++ and Java

For OpenGL,the red book is a must as that's what i used when i was learning OpenGL.Informative,but too wordy for me.Nonetheless,a good book for OpenGL.

Too bad i decided to enter the game industry as 3D modeller cum concept artist instead of going in as a programmer.So my programming knowledge will probably go to waste :P

SpriteGF
10-15-2003, 09:12 AM
I think my problem is that I find it hard to understand the basics of programming, the termonolagy etc. For example: I can't even figure out how to use the while statment, heck i don't even know if thats what a statment is. I know it does some kind of looping.


This is where knowing computer science can help you out... for Python, I've skimmed through this textbook (available free online, and commercial dead trees) and it looks good: How to Think Like a Computer Scientist (http://www.ibiblio.org/obp/thinkCSpy/).

Most computer science books will show you how and why a language works, and even show you a few neat tricks that the "Learn In 24 Hours a Day" books don't have time to reveal.

Kayce
10-15-2003, 10:55 PM
Hi,

As this discussion seems to be more beginner focused, I was wondering if anyone has advice for someone already working as a programmer. I'm pretty fluent in Java, picking up C# (which isn't bad at all). Did C++ at Uni but it was really basic. My degree isn't in Comp Sci (I did MIS) so I'm missing a lot of the fundamental courses. What do you think about going backwards and picking up C? Book recs? Also what other fundamental CS stuff should I look to pick up to flesh out what I already know?

Thanks in advance.

stew
10-15-2003, 11:47 PM
I think the book from Foley et al (Computer Graphics: Principle and Practice) would be a good start. It is a little outdated and doesn't cover the more recent techniques like photon mapping or image based lighting but it's covering the basics better than other books I've seen.

CGTalk Moderation
01-15-2006, 09:00 PM
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.