Paperback: 384 pages
Publisher: Cengage Learning PTR; 1 edition (May 12, 2011)
Language: English
ISBN-10: 1435458958
ISBN-13: 978-1435458956
Product Dimensions: 0.8 x 7 x 8.8 inches
Shipping Weight: 1.7 pounds (View shipping rates and policies)
Average Customer Review: 2.7 out of 5 stars See all reviews (11 customer reviews)
Best Sellers Rank: #1,349,838 in Books (See Top 100 in Books) #13 in Books > Computers & Technology > Programming > Graphics & Multimedia > DirectX #993 in Books > Computers & Technology > Games & Strategy Guides > Game Programming #1661 in Books > Textbooks > Computer Science > Graphics & Visualization
Being an OpenGL only person, I figured it was time to broaden my horizons and see what DirectX was all about. This book is good about breaking down every parameter to each function using DirectX. For example, it explains what every parameter to D3DX11CreateDeviceAndSwapChain do and what they're used for. There are a few problems with this book that can frustrate the crap out of you if you don't realize it is a small error. I haven't read the book spending hours on each page, but I was able to find a few errors that cause tension when you're learning:1. Page 51: ID3D11Context doesn't exist, it is ID3D11DeviceContext. I searched the header files for ID3D11Context and it simply doesn't exist. If you knew DirectX11, you'd know it was ID3D11DeviceContext instead, but for a beginner who has no idea, it can be a frustrating response when your compiler says "ID3D11Context: undeclared identifier".2. Page 54: OMSetRenderTarget doesn't exist it is OMSetRenderTargets. A very simple error (they left of the 's'), but you can spend a lot of time just hunting down the correct function. Luckily, the following pages contain OMSetRenderTargets correctly, but if you're like me and like to step through the book while programming, it doesn't work.3. Page 118: "A 2D texture uses a single value for its texture coordinate. A 2D texture uses two values for its texture coordinates". I think they meant to say "A 1D texture uses a single value for its texture coordinate." Without any knowledge on graphics programming, this could be a problem.4. This book doesn't show what header files or libraries are required for each function. For instance D3DX11CompileFromFile isn't in d3dcompiler.h, it is in d3dx11async.h. Do I include d3dx11.lib or d3d11.lib?
You should never buy a book of this type with the expectation that you'll be able to skim a few chapters, copy some code listings, and come away with a feature-rich renderer and/or a complete understanding of the technology. There's a reason why complex engines are built by a team of developers with specialized knowledge and experience. The best you can hope for is to find a book that focuses on a specific area and delivers good content on that particular topic.All that having been said, this is a terrible book. It is merely a rehash of extremely high-level, "hello world" type content that already exists elsewhere. Whenever the text gets close to discussing the actual workings of DirectX you will see statements like, "... but that is an advanced topic". Or, even worse, some aspect of the API will be mentioned in passing and never referred to again. It also teaches you terrible habits like performing file format conversions at load time ("loading models" section), and demonstrates performance-sucking "techniques" like using memcpy when you should do a double-buffer pointer swap ("reading input" section).The bottom line is that even if you are a complete beginner, you should steer clear of this book. At no point does it venture into the waters of DirectX deeper than ankle level, and it is full of awful code practices that no actual game developer would ever teach you, even accidentally.You can easily find far more in-depth information for free, including video/slides from various developer conferences like Gamefest and GDC, the documentation and samples, and from all over the web. If you want to spend money on additional references, I would suggest Luna's book.
What is DirectX in Windows: This eBook explains what DirectX is and the utility that manages DirectX in the Windows environment. (PC Technology 9) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Beginning DirectX 11 Game Programming Beginning DirectX 10 Game Programming Real-Time 3D Rendering with DirectX and HLSL (Book) and DirectX Essentials LiveLessons (Video Training) Bundle Introduction To 3D Game Programming With Directx 9.0 (Wordware Game and Graphics Library) Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach (Wordware Game and Graphics Library) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) Real-Time 3D Rendering with DirectX and HLSL: A Practical Guide to Graphics Programming (Game Design) Introduction to 3D Game Programming with DirectX 10 Programming a Multiplayer FPS in DirectX (Game Development Series) Managed DirectX 9 Kick Start: Graphics and Game Programming Ultimate Game Programming with DirectX Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding)