I need DirectX literature. Actually, nothing worthwhile could not find. I would like to know if there are any books or lessons on this issue.
Closed due to the fact that it is necessary to reformulate the question so that it was possible to give an objectively correct answer to the participants Oceinic , redL1ne , Regent , Sergey Snegirev , LEQADA 15 Oct '15 at 8:46 .
The question gives rise to endless debates and discussions based not on knowledge, but on opinions. To get an answer, rephrase your question so that it can be given an unambiguously correct answer, or delete the question altogether. If the question can be reformulated according to the rules set out in the certificate , edit it .
4 answers
In this thread, a wunderkind desperately deletes comments for no apparent reason. Therefore, I will write in the form of an answer.
By sabzh. for C # there are no official libraries for working with DirectX. There was once a XNA, but its development was discontinued a year and a half ago (however, as such, it does not seem to be a wrapper over DirectX). There are several unofficial (read amateur) projects, representing the "rappers" over the native DirectX, the ones mentioned by @Max Zhukov . Of course, it is possible to use them (and, probably, without any special consequences for our own nervous system), but it would be rash to rely on any literature on them.
Regarding the development of games on WPF - my sincere advice to you - get this crazy thought out of your head. WPF is a great technology for developing applications with visually appealing interfaces, vector graphics, animation, and other goodies. Yes, there are opportunities for working with 3D graphics, but this technology itself is not intended for game development. Funds put into it are oriented not to clean graphics, but to work with interface elements. Of course, if you have the desire, perseverance and, perhaps, taste, you can create something sane (all there are tic-tac-toe), in the end there are people who implement Internet browsers in the console, but still it's more for fun rather than a real need. The same with WPF games - theoretically possible, but it is unlikely to be reasonable and rational. In a word, nailing with a microscope. Of course, WPF game development books are something from unscientific fantasy.
If I really want to do 3D-graphics in relation to the development of games, then here I see, perhaps, two possible ways:
1) Move from C # to C ++ and sit down for DirectX. There is a lot of information on this topic, there are even books (even Russian authors), there is a DirectX SDK with dozens of examples (moreover, very capable of impressing a beginner) Of the minuses - you will have to break the comfortable and slender C # and get used to the features of C ++ and color DirectX SDK. This may not be easy. You can also use OPenGL (the situation will be similar)
2) you can use unity 3d. We can talk a lot about its advantages for a long time (however, I am not a Unity developer, so I’m not going to risk much ranting) Of the indisputable advantages - the development on the same C #, the already existing editor of three-dimensional scenes (without the need to do everything with your hands), a huge amount of materials, lessons, sites. Of the minuses, I would note that the price (although we all understand perfectly well that the sky will not fall to the ground, if for educational purposes you use crack) and the lack of Russian-language literature (however, the abundance of other sources compensates for this)
- And, if you transfer to Java? - MadKeks
- frankly, I have no idea what is in Java there (most likely OpenGL would be preferable there) @MadKeks, and why are you so stubbornly avoiding Unity? In my opinion, the most convenient and logical option. Certainly better than reinventing non-viable bikes with WPF - DreamChild
- I would have thought about studying C ++ if I don’t want to take ready-made engines and tools. And just in case I will leave the address to this resource: gcup.ru - portal dedicated to the creation of games - Alex Krass
- @DreamChild Scares me your Unity. Every 3rd uses it. - MadKeks
- one@Alex Krass agrees, and in my opinion it makes sense not even to study specifically C ++, but the theory related to two- and three-dimensional graphics. Doing this seriously, without having a good mathematical basis, would be imprudent, and you need to at least know in general terms about matrix mathematics, how it relates to 3D graphics. And for starters, it would be just worth a little tinkering with low-level things like the pure DirectX SDK - DreamChild
@MadKeks , for DirectX, native development is being done on C / C ++. All development opportunities in managed languages ​​came from enthusiasts, so the forums and community on the above products are the best, if not the only, sources.
Update
@MadKeks , most likely, you read about "developing Windows store applications using DirectX". Check out the msdn samples for this topic.
- Well, what then is better to use for developing 2D / 3D applications in C # - MadKeks
- @MadKeks, well, for example, Unity - Max Zhukov
- one@MadKeks, what about WPF? Maybe he can help in the implementation of the necessary tasks. Based on DirectX, has GPU acceleration. - Alex Krass
- @Alex Krass And the literature, is there any kind of game development for WPF? - MadKeks
- @MadKeks, by WPF there is only work with graphics, algorithms for the engine will have to be taken from somewhere else: - Jack Xu - Practical Wpf Graphics Programming - Chris Sells - Programming WPF: Building Windows UI with Windows Presentation Foundation I also came across on Amazon A few books on DirectX can be useful: - C # Game Programming: C # Game Programming by Daniel Schuller - Beginning C # Game Programming - Game Coding Complete, Fourth Edition by Mike McShaffry - Visual C # Game Programming for Teens by Jonathan S. Harbor - Alex Krass Game Engine Architecture by Jason Gregory
I read this book once: Managed DirectX 9 with managed code. Programming games and graphics (+ CD-ROM)
The book allows you to explore the possibilities of using Managed DirectX in the development of various graphic and multimedia applications. This book covers both the basics of programming 3D graphics, as well as more complex sections, for example, the management of detail levels of mesh objects, the use of high-level shader language and symbolic animation. The book pays enough attention to such important issues as controlling the sound and input devices or adding sound effects and a joystick with feedback.