@injurai:
So you hope to become a master in graphics some day? Why just hoping? Better
say; "I'm going to becomes a master in graphics some day". This changes the
entire thing. As you have already recognized, getting away from the high-level
languages, APIs, and stuff is just the right way to start. These are things
you can use later on once you are proficient enough with the core basics, with
the fundamentals, with the pillars of computer graphics.
Other advices or recommendations? Sure. But the question is whether you are
up to the task, since going down to the basics will be a long way. And even
if you are at the bottom of things, you also need to crawl up again. For one,
you will be moving very slowly, because the load on your shoulders will be
very high. But you will gain momentum with each move you make even if you
move slowly. You can compare this to a slow moving train having a very large
weight. Despite the train is slow moving, it carries a very large momentum
making the train virtually unstoppable no matter the obstacles coming in
front of it. I think you get the idea.
Lets get one thing straight and sorted right at the start; without a throughout
understanding of mathematics you will never becomes a graphics head.
You can tweak and bend the tools, APIs, etc. hoping to get the desired result,
which is ok if you just want to make things for fun, but not if you want to
produces something new, superior, or even extend the tools you have. Without
a throughout understanding of mathematics you will always be limited within
this regard. And not just within this regard. For, what are the things getting
visualized by computer graphics imagery most often? Most of these things are
by them self computed from rather complex mathematical equations, formulas, or
models.
Recommendation (1):
At university, take the basic courses in linear algebra, calculus, ordinary
differential equations, and scientific computing. You don't need to make a
master in maths, but at least visit all these undergraduate lectures! They
will teach you a lesson. I can't emphasis it enough. Don't corner them, like
many cs students do. Go over to the faculty of mathematics and inscribe for
the lectures mentioned.
Recommendation (2):
Implement the entire rendering pipeline in software and from scratch. Keep it
simple. Just implement the standard graphics algorithms. Pick a language of
your choice. You need to learn something about the history and the people
involved in computer graphics. The standard algorithms were once the best
known one. And many of the improvements in computer graphics these days are
mere modifications of the standard algorithms. During the 60' and 70' almost
all of the foundation of computer graphics were pinpoint. During this time all
of the fundamental algorithms were discovered and implemented. So it's
important that you implement them as well, even if some of them aren't en
vogue today. They will tell you a lesson.
Stick to wireframe until you understand the pipeline. You need to understand
all the coordinate transformations first and how they fit into the pipeline.
For example, clipping can be done at different stages in the pipeline. It can
even be split up. Why? And how do the graphics accelerator do it? How does it
depend on the rasterizing algorithm? Etc. Tinker around with projection.
Implement different types of project. Understand the power of normalized
coordinates. Derive OpenGL's projection matrix. Etc. Once you got that all,
start with rasterizing, lighting, texturing, and friends.
Most of the basic things in part (2) can be done solely with linear algebra
of part (1). But once you've implemented and understood the basics, you
suddenly feel doing more sophisticated stuff. And that's where the momentum
kicks in.

So you hope to become a master in graphics some day? Why just hoping? Better
say; "I'm going to becomes a master in graphics some day". This changes the
entire thing. As you have already recognized, getting away from the high-level
languages, APIs, and stuff is just the right way to start. These are things
you can use later on once you are proficient enough with the core basics, with
the fundamentals, with the pillars of computer graphics.
I've seen some of your stuff in the indie game dev thread. Do you have any sorts of other advice or recommendations on getting started. Resources, goals, approach of attack. My math skills aren't incredible, though I have a willingness to learn, and should be able to grasp just about anything given time. ...
Other advices or recommendations? Sure. But the question is whether you are
up to the task, since going down to the basics will be a long way. And even
if you are at the bottom of things, you also need to crawl up again. For one,
you will be moving very slowly, because the load on your shoulders will be
very high. But you will gain momentum with each move you make even if you
move slowly. You can compare this to a slow moving train having a very large
weight. Despite the train is slow moving, it carries a very large momentum
making the train virtually unstoppable no matter the obstacles coming in
front of it. I think you get the idea.
Lets get one thing straight and sorted right at the start; without a throughout
understanding of mathematics you will never becomes a graphics head.
Never.
which is ok if you just want to make things for fun, but not if you want to
produces something new, superior, or even extend the tools you have. Without
a throughout understanding of mathematics you will always be limited within
this regard. And not just within this regard. For, what are the things getting
visualized by computer graphics imagery most often? Most of these things are
by them self computed from rather complex mathematical equations, formulas, or
models.
Recommendation (1):
At university, take the basic courses in linear algebra, calculus, ordinary
differential equations, and scientific computing. You don't need to make a
master in maths, but at least visit all these undergraduate lectures! They
will teach you a lesson. I can't emphasis it enough. Don't corner them, like
many cs students do. Go over to the faculty of mathematics and inscribe for
the lectures mentioned.
Recommendation (2):
Implement the entire rendering pipeline in software and from scratch. Keep it
simple. Just implement the standard graphics algorithms. Pick a language of
your choice. You need to learn something about the history and the people
involved in computer graphics. The standard algorithms were once the best
known one. And many of the improvements in computer graphics these days are
mere modifications of the standard algorithms. During the 60' and 70' almost
all of the foundation of computer graphics were pinpoint. During this time all
of the fundamental algorithms were discovered and implemented. So it's
important that you implement them as well, even if some of them aren't en
vogue today. They will tell you a lesson.
Stick to wireframe until you understand the pipeline. You need to understand
all the coordinate transformations first and how they fit into the pipeline.
For example, clipping can be done at different stages in the pipeline. It can
even be split up. Why? And how do the graphics accelerator do it? How does it
depend on the rasterizing algorithm? Etc. Tinker around with projection.
Implement different types of project. Understand the power of normalized
coordinates. Derive OpenGL's projection matrix. Etc. Once you got that all,
start with rasterizing, lighting, texturing, and friends.
Most of the basic things in part (2) can be done solely with linear algebra
of part (1). But once you've implemented and understood the basics, you
suddenly feel doing more sophisticated stuff. And that's where the momentum
kicks in.
Databases sux, indeed.... Eventually I want to be able to write my own shaders and things for engines like Unity, though I'm still beginning my computer science path. I'm trying to get away from all the high level languages that take the magic away from you (currently have an Internship where is use Groovy...)
I'm hoping to get a masters in graphics and CGI, really hate databases. Yuck.