GFx Card Capabilities
#1 Members - Reputation: 144
Posted 06 October 2012 - 09:28 PM
#2 Members - Reputation: 751
Posted 06 October 2012 - 09:39 PM
It includes functions for loading .x mesh files. 10-11 do not.
It includes the fixed function pipeline which is far easier to learn for a beginner. 10-11 do not. 10-11 force you to use shaders.
It does also have shader support as 10-11 do to.
It is most widely supported on video cards.
The added features in 10-11 are not something that you will learn and/or implement easily anyway.
Did you know most games are dx9.0c still? My point is learn 3dmaths and things using fixed function in dx9, then when you're good at that step up to writing shaders in dx9. Then when you are master of that you can step up to dx10 but you will have to do more of the work using that api, a lot of studios don't think its worth it either.
Edited by EddieV223, 06 October 2012 - 09:40 PM.
If this post was helpful and/or constructive please give rep.
SFML2.0 Nightly Download Link http://en.sfml-dev.org/forums/index.php?topic=9513.0
SFML2.0 Tutorials http://www.sfml-dev.org/tutorials/2.0/
#3 Members - Reputation: 144
Posted 06 October 2012 - 09:59 PM
I'm just asking this because I'm wondering how pro game dev teams create games that could be run under Windows XP, Windows Vista, and Windows 7, and that can be run under DirectX 9, 10, and 11?
I'm curious how this fits together because I've heard such like if you program something in like DirectX11, it cannot be used by Windows XP users, but if you're on Windows 7 you have to use 11, etc. and im just not sure what is true and what is not, so let me put it this way.
I wanna learn the API that could be used whether you are on XP, Vista, or 7, and no matter what DirectX version you are on...if possible?
Edited by markrodgers11, 06 October 2012 - 09:59 PM.
#4 Members - Reputation: 751
Posted 06 October 2012 - 11:07 PM
You could code a game to use all of them, but that means writing the code for each api and using interface classes and/or inheritance within your code base, so you can swap out specific api objects.
Edited by EddieV223, 06 October 2012 - 11:08 PM.
If this post was helpful and/or constructive please give rep.
SFML2.0 Nightly Download Link http://en.sfml-dev.org/forums/index.php?topic=9513.0
SFML2.0 Tutorials http://www.sfml-dev.org/tutorials/2.0/
#6 Members - Reputation: 123
Posted 07 October 2012 - 09:14 AM
I choosed DX11. In the future (1, 2 ... years later since now) many people will use Directx 11. If you like it or not you will have to change your version of DX. DX9 is going to be older and older. You should go with the technological progress. If Directx 12, 13 will came out, a big studios will bring to 11, 12 version etc.probably getting ahead of myself again. but is it possible to code something in DirectX9, DirectX10, AND DirectX11?
I'm just asking this because I'm wondering how pro game dev teams create games that could be run under Windows XP, Windows Vista, and Windows 7, and that can be run under DirectX 9, 10, and 11?
I'm curious how this fits together because I've heard such like if you program something in like DirectX11, it cannot be used by Windows XP users, but if you're on Windows 7 you have to use 11, etc. and im just not sure what is true and what is not, so let me put it this way.
I wanna learn the API that could be used whether you are on XP, Vista, or 7, and no matter what DirectX version you are on...if possible?
Get to a master level, will take him a few years, then DX11 will be more popular than DX9. Learn a DX11 will take him a next month (or years). So, his skill with DX9 won't be useful anymore.My point is learn 3dmaths and things using fixed function in dx9, then when you're good at that step up to writing shaders in dx9. Then when you are master of that you can step up to dx10 but you will have to do more of the work using that api, a lot of studios don't think its worth it either.
Edited by JustABeginner, 07 October 2012 - 11:17 AM.
#7 Members - Reputation: 521
Posted 08 October 2012 - 09:28 AM
- According to Steam statistics over 40% have DX11, and another 40% has DX10. I don't think you'll have any problems. By the time you finish your game most of people will have DX11 hardware.
- If you're not going to use DX11 or DX10 features, then hardware can be DX9, DX11 API is able to run on DX9 hardware just as long as you don't use any features above DX9. Therefore you're only limited to OS your target audience is running (it must be at least Vista).
- According to W3School over 50% have Windows 7, once you finish your game it'll be higher.
- DirectX SDK has samples how to use DX9 and DX11 API in the same program, however they differ a lot, so I wouldn't suggest going this way, it's like making game twice.
- If someone's computer isn't powerful enough to run Windows 7 it's definitely not powerful enough to run a game. Supporting WinXP users is like supporting IE6 or VC++ 6.0. Just let it die already.
Edited by Ripiz, 08 October 2012 - 09:28 AM.
#8 Members - Reputation: 889
Posted 08 October 2012 - 09:57 AM
Note that Steam users are not typical users. They are high end users when it comes to hardware.According to Steam statistics
There is some percentage of players that use legal OS, which means they might have WinXP (cheaper, they have it already, etc) even on hardware that could run Win7 without problemsIf someone's computer isn't powerful enough to run Windows 7
The last time I checked WinXP userbase was higher than Mac+Linux users together. You can't compare it, even remotely, to IE6.Supporting WinXP users is like supporting IE6 or VC++ 6.0. Just let it die already.
#9 Members - Reputation: 2763
Posted 08 October 2012 - 05:23 PM
If you want to support Windows XP, learn DirectX 9.0c -- If you don't need to support XP, then learn the latest API (DX11) and limit yourself to using the appropriate feature level. If you want to make a game that supports older 9.0c graphics cards, but also takes advantage of newer hardware where it is available, then you need multiple rendering code paths to target different feature levels -- games have been doing this for ages, its not transparent, but its not any more difficult in DX 10 or 11 than its ever been, in fact it's probably simpler.
Decide whether you want to support Windows XP, then you have your answer.
Personally, if I'm targetting the kind of gamers who aren't your mom or little kids with hand-me-down computers, then I'd just target DX11 as an API and provide rendering paths for D3D10 and D3D11.
Edited by Ravyne, 08 October 2012 - 05:26 PM.
#10 Crossbones+ - Reputation: 1179
Posted 09 October 2012 - 03:02 AM
DX9.0 is only interresting if you want to support winXP, but if this is just a hobby project I'd say go for DX11 and don't worry about DX9.0
#11 Members - Reputation: 751
Posted 15 October 2012 - 10:25 PM
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
Edited by EddieV223, 16 October 2012 - 01:17 AM.
If this post was helpful and/or constructive please give rep.
SFML2.0 Nightly Download Link http://en.sfml-dev.org/forums/index.php?topic=9513.0
SFML2.0 Tutorials http://www.sfml-dev.org/tutorials/2.0/
#12 Crossbones+ - Reputation: 1179
Posted 16 October 2012 - 01:39 AM
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.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.
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).
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.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
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.
#13 Members - Reputation: 2763
Posted 16 October 2012 - 02:08 AM
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
Edited by Ravyne, 16 October 2012 - 02:11 AM.
#14 GDNet+ - Reputation: 1751
Posted 17 October 2012 - 12:41 AM
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!






