GFx Card Capabilities

Started by
12 comments, last by Krohm 11 years, 6 months ago
The biggest problems he will face trying to learn 3d from anything after 9.0c is having to learn shaders from the get go, which you can't do if you don't already know the basics of 3d rendering/math. Especially the math. So how can you write a shader if you don't know vector/matrix math or even a single lighting formula? You're not going to.

Also, as a beginner to 3d rendering do you think he's going to make his own file format write to and load it( and write an exporter to your format from a 3d package), complete with all the data for 3d rendering as a beginner? Not likely.

This is why dx9.0c is better for beginners. You can load a .x file with one function call, and start with fixed function pipeline without having to write a shader just to draw an object. So you can learn the basic's of 3d math/theory with out having to know 3d math/theory in order to get a basic program up and going.

With the same version you can start writing shaders and use them when and where you want and use fixed function where you need to. So you can slowly move into shaders. When you're good enough at that, and think you can write your own file format for 3d meshes, you can work your way up to dx11/12 whatever is the latest.

I'm sure you can find plenty of video tuts and/or books for dx9.0c.
Frank D Luna's book http://www.amazon.co...shader approach

Also check out http://www.3dbuzz.com and http://www.gameinstitute.com

No matter your choice, unless you're some kind of super genius it's going to take some time and a lot of baby steps to reach your goal. It's often suggested that a great way to learn all of this stuff is to work your way through history. Let me explain.

First games were like pong very simple graphics and game play. Then came the 90s when we had nintendo, simple 2d side scrollers and top down 2d games, however game play evolved and we got genres such as rpg's and shooters. They were still rather simple. Then playstation era came along with 3d graphics, the graphics were not amazing, often had blockly characters and bad animations but it worked. Then ps3/360 now we are getting into seriously complex games, true rpgs and first person shooters ect ect... If you notice that graphics complexity grows at a steady rate. As does game play complexity.

If you work your way through this, as a true beginner it will introduce new knowledge at just the right pace. So pick a game on the level of pong for a first game. Then a nintendo type game, then move up to more advanced stuff such as fixed function 3d and so on. If you think you're going to make the next
skyrim or any modern game you are not. If you get skilled and then join a major studio, then you will get to do your part. But these kind of games require teams of hard working professionals. So set a series of goals that you can actually complete, leading to your eventual goal.

If you already know 3d/math theory and are a competent c++ programmer I would completely suggest the latest dx11/12, but that's not the case, or is it?

Ps Skyrim is dx9.0c

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

Advertisement

The biggest problems he will face trying to learn 3d from anything after 9.0c is having to learn shaders from the get go, which you can't do if you don't already know the basics of 3d rendering/math. Especially the math. So how can you write a shader if you don't know vector/matrix math or even a single lighting formula? You're not going to.

Also, as a beginner to 3d rendering do you think he's going to make his own file format write to and load it( and write an exporter to your format from a 3d package), complete with all the data for 3d rendering as a beginner? Not likely.

This is why dx9.0c is better for beginners. You can load a .x file with one function call, and start with fixed function pipeline without having to write a shader just to draw an object. So you can learn the basic's of 3d math/theory with out having to know 3d math/theory in order to get a basic program up and going.

With the same version you can start writing shaders and use them when and where you want and use fixed function where you need to. So you can slowly move into shaders. When you're good enough at that, and think you can write your own file format for 3d meshes, you can work your way up to dx11/12 whatever is the latest.

To be honest you need to know basic 3D math before you start working on graphics if you don't stuff isn't going to make sense to you anyway ones you switch to it. You do not need lighting to start off with 3D programming, a basic shader is really easy to write and there are enough tutorials out there for shader writing.

File formats is sadly a non argument as there are enough file loaders out there, and writing your own obj loader isn't that much work either (like .x, .obj is also a text format).


I'm sure you can find plenty of video tuts and/or books for dx9.0c.
Frank D Luna's book http://www.amazon.co...shader approach

Also check out http://www.3dbuzz.com and http://www.gameinstitute.com

No matter your choice, unless you're some kind of super genius it's going to take some time and a lot of baby steps to reach your goal. It's often suggested that a great way to learn all of this stuff is to work your way through history. Let me explain.

First games were like pong very simple graphics and game play. Then came the 90s when we had nintendo, simple 2d side scrollers and top down 2d games, however game play evolved and we got genres such as rpg's and shooters. They were still rather simple. Then playstation era came along with 3d graphics, the graphics were not amazing, often had blockly characters and bad animations but it worked. Then ps3/360 now we are getting into seriously complex games, true rpgs and first person shooters ect ect... If you notice that graphics complexity grows at a steady rate. As does game play complexity.

If you work your way through this, as a true beginner it will introduce new knowledge at just the right pace. So pick a game on the level of pong for a first game. Then a nintendo type game, then move up to more advanced stuff such as fixed function 3d and so on. If you think you're going to make the next
skyrim or any modern game you are not. If you get skilled and then join a major studio, then you will get to do your part. But these kind of games require teams of hard working professionals. So set a series of goals that you can actually complete, leading to your eventual goal.

If you already know 3d/math theory and are a competent c++ programmer I would completely suggest the latest dx11/12, but that's not the case, or is it?

Ps Skyrim is dx9.0c

The reasons games started off in 2D is not because the developers didn't know how to do 3D at the time, it's because the hardware wasn't powerful enough. Most of the math for 2D and 3D are the same, most of the time doing the math in 3D makes the 2D case easier, think depth for UI elements.

Like I said before I would still start on DX11 as it will teach you an API that's at least still going to be used a year or so from now, even with Win8 coming out, this will bring us DX11.1 not 12. The changes between DX11 and 9 are sadly to big to jump with out any significant difficulty so why add those when learning DX11 will be just as hard.

Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion

@Eddie, I'd argue that learning DX9 is not the kind of stepping-stone you claim that it is simply because its less complex or more turn-key. Both APIs, along with others like OpenGL, are so far from their mathematical and conceptual underpinnings that you're really just learning one set of domain-specific knowlege or the other. Indeed, starting with one technology as a stepping stone, simply because it seems more approachable at first glance, or because it predates the alternative, can in the worst case lead you to adopt a way of thinking and reasoning that is no longer relevant to the goal technology -- even if the technologies are closely related and might even form a true lineage, for example, starting with C is not an effective means to learning C++ or C#. There are fringe benefits to be sure, gained from additional experience and perspective, but the quickest and most efficient way to become a competent C++ or C# programmer is to just start with C++ or C#.

To be clear, I'm not saying that having C under your belt wouldn't aid you in learning C++ or C# more quickly, because it almost certainly will, but that learn_c_time + learn_cpp_time > just_learn_cpp_time. The fringe benefits I mentioned can be worth your while, but they can also be gained in either order, so it still makes better sense in my estimation to cut to the chase.

The same applies to DX9 and DX10/11

throw table_exception("(? ???)? ? ???");

Suggesting to go DX9 in 2012. Nonsense.
Saying that learning shaders is a problem... yeah, having to keep in ming the hundreds different switches that make a FFP work is way easier...
I have to still support XP... so there's no choice for me. But shit, I'd jump on D3D11 every day of the week. I'd actually love to drop SM3 completely!

Previously "Krohm"

This topic is closed to new replies.

Advertisement