Betting into the Theory

Started by
5 comments, last by alh420 12 years, 4 months ago
[Saw that the Title is wrong... wanted to say "Getting into the Theory" sry!]

Good Day everyone,

This is my first Post in this Forum and Im really excited about the upcoming experience with Game Development.

To myself:
I am an Apprentice for Application Development in the young years (22).
Im a Advanced Java Developer for Enterprise Applications and got Experience with Frameworks like Spring, Dynamic Web Projects and Database related Projects. Because of upcoming Job changes I need to learn how to use LWJGL to create simple 3D Applications. I havent used my Math Knowledge for ages... and I looked into some LWJGL tutorials. What I found out is that there are sooooo many Functions and Objects which I cant think about what they are good for. I think the Problem is that most keywords are unknown to me and I am lacking alot of knowledge in Computer Graphics Theory.

What I need from you:
Actually the only thing I know is about Linear Algebra. I am pretty handy with this stuff and It's not a big deal for me to calculate or play with it. Still I can't imagine how all the stuff comes together in an 3D Application. I am looking for a really decend Tutorial or Book which explains common used Methods for 3D Programming. I could not find any good Tutorials online yet which were detailed enough for me.
Can anyone give me a nice tip about the Theory behind Graphics Programming?

Best Regards
Van Schlacht

Follow my hobby projects:

Ognarion Commander (Java/LIBGDX): https://github.com/OlafVanSchlacht/ognarion-commander

Advertisement
For a simple 3D application, the linear algebra you need is really minimal, and mostly trival stuff like positioning something in the 3d coordinate system and move it around.
And you probably shouldn't dig too deep into the low level stuff, just yet, and get too confused by the huge field of computer graphics.

What you probably need is high level concepts like meshes, objects, scenes and cameras, and the classes you need to control those. (I'm not sure what those are called in LWJGL, but it should have those concepts in some form or another)

You also probably will have better luck with a bit more specific questions then "theory of graphics programming", and try focus on getting something up and running first.

After you have achieved that, you will start to see some structure and it will get less confusing, and you start to know what to ask for :)
I think the point you metioned about "Meshes, Objects, Scenes and Cameras" are the things that confuse me. I have no Idea how a Camera works or how Meshes are Projected to the Screen.
The simplest thing I made was a little square which was able to move around via Keyboard input...

Im sorry for not posting a specific question because my knowledge is 0% in Graphical programming ._.

Follow my hobby projects:

Ognarion Commander (Java/LIBGDX): https://github.com/OlafVanSchlacht/ognarion-commander

You should research:
model-space
world-space
view-space
screen-space

Then you have the matrices:
model matrix, orientation and position of model in world space to go from model-space to world-space
camera matrix, orientation and position of camera in world space to go from world-space to view-space by using the inverse of the camera matrix essentially
projection matrix, orthographics or perspective usually describing the camera's field of view and the screen's aspect ratio to go from view-space to screen-space (in the range (-1, -1) to (1, 1).

These terms are basic level knowledge since you will use these concepts in your vertex shaders to transform vertices.

Regarding your other terms that you were confused about:
A mesh is a set of vertices and a topology defining the polygons/triangles essentially a list of edges. You will see this concept when working with vertex buffer objects (VBOs) and index buffer objects (IBOs) where you define you vertices and then the indexes defining the topology of triangles (most common use-case).

Objects usually refer to meshes in world coordinates or part of a scene graph. (So mesh + model matrix).

Scenes are just a collection of objects. In the most simple example they could be an array objects on a map. In the more complex example they are a hierarchy for instance a player holding a torch or a weapon where the transformations are relative to other objects (such as the player's hand matrices during a frame of animation).

A lot of the graphics terms are covered in the first pages of most books along with the theory. A big part is just knowing linear algebra. Not sure how much LWJGL handles for you.
This book is one of the best resources to learn almost everything about 3d rendering. It includes a very good overview of current techniques and about the math behind 3d graphic theory.

You should research:
model-space
world-space
view-space
screen-space

Then you have the matrices:
model matrix, orientation and position of model in world space to go from model-space to world-space
camera matrix, orientation and position of camera in world space to go from world-space to view-space by using the inverse of the camera matrix essentially
projection matrix, orthographics or perspective usually describing the camera's field of view and the screen's aspect ratio to go from view-space to screen-space (in the range (-1, -1) to (1, 1).

These terms are basic level knowledge since you will use these concepts in your vertex shaders to transform vertices.

Regarding your other terms that you were confused about:
A mesh is a set of vertices and a topology defining the polygons/triangles essentially a list of edges. You will see this concept when working with vertex buffer objects (VBOs) and index buffer objects (IBOs) where you define you vertices and then the indexes defining the topology of triangles (most common use-case).

Objects usually refer to meshes in world coordinates or part of a scene graph. (So mesh + model matrix).

Scenes are just a collection of objects. In the most simple example they could be an array objects on a map. In the more complex example they are a hierarchy for instance a player holding a torch or a weapon where the transformations are relative to other objects (such as the player's hand matrices during a frame of animation).

A lot of the graphics terms are covered in the first pages of most books along with the theory. A big part is just knowing linear algebra. Not sure how much LWJGL handles for you.


Thanks for the Quick Overview. Gives a great overview about some Keywords.


This book is one of the best resources to learn almost everything about 3d rendering. It includes a very good overview of current techniques and about the math behind 3d graphic theory.


I think for deeper Information I gonna buy this book. Seems to have alot of Information.

Thank you everyone for the Results!

Best Regards
Van Schlacht

Follow my hobby projects:

Ognarion Commander (Java/LIBGDX): https://github.com/OlafVanSchlacht/ognarion-commander

I can second that book, very nice and to the point, without either getting too theoretical or too dumbed down.
You are likely to return to a book like that many times to refresh or get new ideas.

This topic is closed to new replies.

Advertisement