View Full Version : Noob Question: How to start?
arturas 10-23-2008, 06:28 PM I know this question might sound weird but hear me out.
This field of programming has been of great interest to me, but searching online, I have not been able to come up with any good results on how to start in Computer Graphics programming. I have questions like, What is possible, Where to start, What language. I am NOT new to programming and have several years of experience in C#, C++, and Java. I just never explored this field of programming.
So, could someone be so kind, and start me in the right direction.
THanks
|
|
UrbanFuturistic
10-23-2008, 09:03 PM
There's a ton of links in the sticky at the top of this forum :)
Kuroyume0161
10-27-2008, 02:30 PM
A good book: "Computer Graphics: Principles and Practice"
GameDev.net (http://www.gamedev.net/community/forums/)
And a list of books from that site: GameDev-Books-GraphicsProgramming (http://www.gamedev.net/columns/books/books.asp?CategoryID=10)
Start with the basics:
* Math: Vectors, Matrices, Transforms
* Geometry: Points, Polygons, Splines
* Rendering: UVW mapping, Shading, Lighting
There are sooo many ways to get into this that it can be daunting to begin with. Are you going to be doing games, 2D or 3D graphics, plugins for 2D/3D apps, program using DirectX or OpenGL API? All of these will impact the direction you take.
If you are going the 3D route, Java has a well-rounded 3D API which doesn't take as much hill climbing as other APIs. A good Java3D book and some learning from it might be a good first step in getting your feet wet in relation to the methodologies, topics, and terminology.
arturas
10-27-2008, 09:12 PM
Hey, thanks I will look into the Java 3D API, but does the Java API compare to DirectX or OpenGL ??
Thanks
Carina
10-28-2008, 10:08 AM
but does the Java API compare to DirectX or OpenGL ??
The simple answer? no..
If you're not new to programming I'd go for DirectX or OpenGL. But as the previous poster said, it depends largely what you're aiming for.
Kuroyume0161
10-28-2008, 07:25 PM
But DirectX and OpenGL are 'low-level' support so be aware that you'll be building some hefty code to do anything. Also, you'll have to weigh whether you are going to develop solely on Windows where DirectX will be okay. For cross-development, OpenGL instead.
aglick
10-28-2008, 08:02 PM
C is a general purpose language that has a syntax/structure which seems to be used as a model for many smaller compact scripting and programming languages found in the graphics pipeline.
Mental ray shaders, for instance, are written in C and interpreted at run time.
I'm just a hack, but It seems that that C/C++ is a good platform to be competent in...
Sicaine
11-11-2008, 04:08 PM
The easiest thing you can do is to download the DirectX SDK from Microsoft(http://msdn.microsoft.com/en-us/directx/default.aspx) After installation you have a lot of tutorials, manuals, examples etc.
playmesumch00ns
11-12-2008, 10:19 AM
1. Write a raytracer
2. Get halfway through, realise your design sucks and start again.
3. Get halfway through again, realise your choice of algorithm sucks/is out of date and start again.
Repeat a few times and you'll be pretty good at graphics programming :D
Sicaine
11-12-2008, 11:53 AM
There is a huge different between raytracer and rasterizer! You can start with the raytracer but now the rasterizer is a lot more common and as difficult as handle
ThE_JacO
11-12-2008, 12:22 PM
Mental ray shaders, for instance, are written in C and interpreted at run time.
C and C++ aren't interpreted. They need compiling/linking/packaging before they can be used.
That I know of there are no JIT compiled or interpreted languages available for mray shaders.
Renderman gets closer to the mark in those regards, since rsl compilation can be left to be when-needed, and the available rman standard renderers I know can all sort that out quite well without compulsory user intervention, but definitely not mray shaders that use the C++ API.
As for the original post... I think a little bit more detail would help. What are you interested in, what is your previous experience exactly, how's your maths (linear algebra, pre-calc, calculus I for starters), and do you have any particular focus or objectives in what you want to learn?
billrobertson42
11-15-2008, 04:14 AM
1. Write a raytracer
2. Get halfway through, realise your design sucks and start again.
3. Get halfway through again, realise your choice of algorithm sucks/is out of date and start again.
Repeat a few times and you'll be pretty good at graphics programming :D
You forgot step 0 (optional).
0. Start a raytracer, and then put it down for a year or two before coming back to the topic.
I think might be ready to move on to step 1 now. :buttrock:
neuromancer1978
11-15-2008, 07:02 AM
I personally suck at programming but get the idea generally enough to follow prewritten code to a degree, at least until it goes into matrices and weird algorithms.... anyways if you are fairly well versed in C and C++ then you should have no problem understanding OpenGL, Nvidia CG and SDK, the Microsoft DirectX SDK, Renderman RSL and Mental Ray shader code (can't remember the actual name for the life of me). For the most part all the mentioned programming languages are free to obtain and in the case of Renderman you can download open source equivilents that function just the same as commercial.
Put it this way, I have been learning Renderman for about 5 years now and can understand RSL and RiSpec, yet I failed my basic C programming class last year (mainly due to my final exam failed to compile at the last minute but you get the idea).
CGTalk Moderation
11-15-2008, 07:02 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-2013, Jelsoft Enterprises Ltd.