Thread: A best way to start learning graphics?

  1. #1
    Registered User
    Join Date
    May 2012
    Posts
    71

    A best way to start learning graphics?

    I have very, very basic understanding of how the graphics work, but i thought to start learning them. I have some C++ knowledge also.
    What is the best way to learn them as a beginner?

  2. #2
    Registered User VirtualAce's Avatar
    Join Date
    Aug 2001
    Posts
    9,607
    Books.

  3. #3
    Registered User
    Join Date
    May 2012
    Posts
    71
    Quote Originally Posted by VirtualAce View Post
    Books.
    They are way too expensive for a Bulgarian guy like me, 30 USD is alot of money in this country. I started learning C++ some time ago and i yet didnt buy a book due to this thing.

    Is there anything else, maybe you can recomend something else, if possible please.

  4. #4
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    Someone posted this link the other day, and I've since read through it.

    It isn't great, but it is better than average.

    Soma

    Learning Modern 3D Graphics Programming

  5. #5
    Registered User
    Join Date
    May 2012
    Posts
    71
    Yes curently im on in, but can i ask one question;
    At the begining lessons in Hello Triangle chapter, they only show me functions.
    I am not sure if i have to code those functions in my IDE, or is it simply basic explanation of the main functions?
    Do they gonna tell me how to start a brand new openGL project?

  6. #6
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    Using your chosen environment is beyond the scope of those tutorials.

    If you don't know how to do such things, read tutorials on your chosen environment first.

    Soma

  7. #7
    Registered User
    Join Date
    May 2012
    Posts
    71
    Can you post something to catch that is more begginer like, i dont know how to create an openGL project yet.
    The link you provided, its explanation is very good for beginners but i have the feel I/them are missing the "Hello word" part when starting a C++ tutorial.

  8. #8
    Master Apprentice phantomotap's Avatar
    Join Date
    Jan 2008
    Posts
    5,108
    O_o

    I don't even know what your chosen environment is so of course I can't suggest a tutorial series for using it.

    Stop being foolish; search and you'll find tutorials to setup your environment.

    Soma

  9. #9
    Registered User
    Join Date
    May 2012
    Posts
    71
    Wont disturb sorry.

    PS: Its C::B, had to cough it..

  10. #10
    Registered User ledow's Avatar
    Join Date
    Dec 2011
    Posts
    435
    You need to narrow your inquiry.

    Are we talking windows, menus? Then you need a GUI toolkit like QT.

    Are we talking drawing bitmaps to the screen and simple 2D graphics? It'll be worthwhile to look at SDL, or possibly Allegro (haven't used that since my DOS days, though).

    Are we talking full 3D graphics? Probably best to learn OpenGL (but that tutorial linked above is utterly horrendous, in my opinion - get yourself a copy of the OpenGL SuperBible instead).

    That's the decisions that most people take, but you have to make decisions yourself. What type of graphics? What platform? What language? From books or tutorials? Do you not want to bother to learn how to use your linker (good luck with that!) or a Makefile to do so?

    I think the answer you'd probably get most out of at first is SDL. There's a bucket-load of SDL tutorials out there for free, SDL is free, works from C or C++ and does lots of other nice things (e.g. sound, mouse control, joysticks, platform-independence, not too complicated, etc.), go play.

    - Compiler warnings are like "Bridge Out Ahead" warnings. DON'T just ignore them.
    - A compiler error is something SO stupid that the compiler genuinely can't carry on with its job. A compiler warning is the compiler saying "Well, that's bloody stupid but if you WANT to ignore me..." and carrying on.
    - The best debugging tool in the world is a bunch of printf()'s for everything important around the bits you think might be wrong.

  11. #11
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by ledow View Post
    (but that tutorial linked above is utterly horrendous, in my opinion - get yourself a copy of the OpenGL SuperBible instead).
    Can you give some reasons?

    The 5th edition of the superbible is worse than parts of that tutorial, according to many who have gone through both (as it appears from my lurking in some forums for a few months).
    Last edited by manasij7479; 06-25-2012 at 02:52 AM.

  12. #12
    Registered User
    Join Date
    May 2012
    Posts
    71
    Im aiming for making 3d games (but i plan to start a serious 2d game soon for exercise and to see howa game should be coded, runing, etc)
    Im using Windows XP with C::B as IDE.

    I saw SFML have graphics, sounds and few more things i think, but i saw that i have to include their SFML header in my source.
    Probably they use their own functions, is it worth it to start with SFML, what about for the feature, im going to use it?
    Else i will try SDL.

    PS: Excuse my lazy posts above, Soma. Wasn't thinking.

  13. #13
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by CoffeCat View Post
    I saw SFML have graphics, sounds and few more things i think, but i saw that i have to include their SFML header in my source.
    Probably they use their own functions, is it worth it to start with SFML, what about for the feature, im going to use it?
    Else i will try SDL.
    If you know C++, SFML is a good place to start.
    SDL is a C style library offering almost similar features as SFML.

  14. #14
    Registered User ledow's Avatar
    Join Date
    Dec 2011
    Posts
    435
    Quote Originally Posted by manasij7479 View Post
    Can you give some reasons?
    Incomplete example portions in the text mean you have to read the whole damn source code just to demonstrate a simple principle, weird never-seen-before utility needed to compile the example projects (written in Lua, no less), lots of unexplained boilerplate with "we'll get to this later" and "the next three lines set state" as comments, the first introduction of vertex and fragment shaders is just a "trust us, compile it and it will work" job with little explanation of what it actually does, large portions of maths that are way over most people's heads (look at Ch14 - the Guassian function), I could go on.

    To an absolute beginner, that tutorial is the most off-putting I've ever seen (and I've seen some horrendous tutorials!). It's fine for someone who's already versed in OpenGL, has a compilation environment up and running, knows what a shader is, has a decent grounding in maths and computer graphics etc. and just wants to learn the missing pieces, but as a "Learning ...." tutorial, it's a nightmare. The poster just wants to start drawing things on the screen, and that tutorial is completely the wrong kind for that purpose. I imagine most people don't make it through the first chapter to draw a triangle. I know that modern OpenGL is a mess to get the simple things working (the tutorial obviously aims at a time when shaders will be the ONLY way to draw) but that tutorial isn't written for beginners but people who just want to learn shaders, which is the only category of people it will actually attract.

    By comparison, the SuperBible has a lot more explanation at precisely what's going on and why and a lot more introduction into what the shaders are supposed to do.

    That said, I think the whole concept of vertex and fragment shaders is the WORST way to teach OpenGL and something people can move onto once they have a basic grasp of immediate mode and compatibility models (which, literally, takes a few hours to get up-and-running if you know nothing about OpenGL and the transition to shaders then makes 100 times more sense than trying to start a "hello world" example with lots of obscure shader code that you then have to programmatically compile before you can see anything at all). Old-fashioned, yes, but something that's NOT going to go anywhere any time soon, still works, and eases beginners in rather than scares them with having to write shaders just to blit things to the screen or draw a simple wireframe model.

    - Compiler warnings are like "Bridge Out Ahead" warnings. DON'T just ignore them.
    - A compiler error is something SO stupid that the compiler genuinely can't carry on with its job. A compiler warning is the compiler saying "Well, that's bloody stupid but if you WANT to ignore me..." and carrying on.
    - The best debugging tool in the world is a bunch of printf()'s for everything important around the bits you think might be wrong.

  15. #15
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    I agree with some of those points.
    I am starting OpenGL (with very little idea about Computer Graphics and a moderate level of maths knowledge) from scratch and found the explanations there a little more friendly that other tutorials.
    (I'll get a real book soon, only if I see that I enjoy the subject).

    Your point about the build system is spot on. After a few failed tries (and ugly workarounds), I have now set up my own environment (and am on my way to creating a C++ wrapper for OpenGL), with SFML as the windowing (and context creating) toolkit.
    After that, it is a rather smooth sailing. (having a little trouble with some math.. but it'd be over soon)

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. where to start learning windows programming?
    By tekbird in forum Windows Programming
    Replies: 1
    Last Post: 07-25-2010, 04:25 AM
  2. Learning C#, Where To Start?
    By Mulsiphix in forum C# Programming
    Replies: 2
    Last Post: 01-16-2010, 10:50 AM
  3. where to start learning c and c++
    By dragon1986 in forum C Programming
    Replies: 1
    Last Post: 03-07-2008, 12:18 AM
  4. ok so what do i need to start learning
    By thestien in forum Game Programming
    Replies: 10
    Last Post: 10-10-2006, 12:00 PM
  5. Want to start learning raw packets in C
    By Lateralus in forum Networking/Device Communication
    Replies: 1
    Last Post: 06-08-2005, 12:55 PM