How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Written by an expert in the game industry, Christer Ericson's new book is a comprehensive guide to the components of efficient real-time collision detection systems. The book provides the tools and know-how needed to implement industrial-strength collision detection for the highly detailed dynamic environments of applications such as 3D games, virtual reality applications, and physical simulators. Of the many topics covered, a key focus is on spatial and object partitioning through a wide variety of grids, trees, and sorting methods. The author also presents a large collection of intersection and distance tests for both simple and complex geometric shapes. Sections on vector and matrix algebra provide the background for advanced topics such as Voronoi regions, Minkowski sums, and linear and quadratic programming. Of utmost importance to programmers but rarely discussed in this much detail in other books are the chapters covering numerical and geometric robustness, both essential topics for collision detection systems. Also unique are the chapters discussing how graphics hardware can assist in collision detection computations and on advanced optimization for modern computer architectures. All in all, this comprehensive book will become the industry standard for years to come.
This book provides readers with an in-depth exploration of 3D game engine architecture. It covers state-of-the-art software architecture principles in the context of game engine design, investigates the subsystems typically found in a real production game engine, surveys engine architectures from actual shipping games, and explores how the differences between game genres can affect engine design. Topics covered include large-scale C++ software architecture in a games context; engine subsystems including rendering, audio, collision, physics and game world models; multi-player engines; tools pipelines for modern games.
Randi J. Rost, Bill Licea-Kane, Dan Ginsburg
The definitive OpenGL Shading Language reference AND tutorial - now fully updated and revised for the latest version * *Includes extensive new coverage, including a thorough discussion of GLSL for OpenGL ES, the emerging standard for handheld media devices. *Clear, approachable, and relevant examples that help programmers quickly address the challenges they're most likely to encounter. * Authored by experts who have been intimately involved in the design and evolution of the OpenGL Shading Language. OpenGL Shading Language, 3/e is the definitive guide to creating graphics applications with the newest version of the OpenGL Shading Language. Using this book, graphics programmers will learn how to exploit the full performance and flexibility of modern GPU hardware to create stunningly realistic and creative effects. One part reference, one part tutorial, this will be their go-to source from the moment they begin learning the language until they've become seasoned experts. This book's content has become ever more important to a wider spectrum of graphics programmers. For years, programmers treated graphics hardware as 'state machines' whose behavior could only be modified by changing bits of state. This severely limited the effects they could realistically achieve. The OpenGL Shading Language puts control of graphics hardware squarely in the programmer's hands: key stages of the graphics pipeline are now completely programmable. With this new freedom, of course, the programmer also gains new responsibilities. It's a fundamental paradigm shift -- and this book will help programmers make the leap. This edition covers significant enhancements in the new version of OpenGL Shading Language, including the latest version of GLSL for OpenGL ES, the emerging standard for handheld media devices. As in previous editions, however, it relies throughout on clear, approachable code samples that address the specific tasks and skills graphics programmers are most likely to need
Jason Sanders, Edward Kandrot
The complete guide to developing high-performance applications with CUDA - written by CUDA development team members, and supported by NVIDIA * *Breakthrough techniques for using the power of graphics processors to create highperformance general purpose applications. *Packed with realistic, C-based examples -- from basic to advanced. *Covers one of today's most highly-anticipated new technologies for software development wherever performance is crucial: finance, design automation, science, simulation, graphics, and beyond. NVIDIA graphics processors have immense computational power. With NVIDIA's breakthrough CUDA software platform, that power can be put to work in virtually any type of software development that requires exceptionally high performance, from finance to physics. Now, for the first time, two of NVIDIA's senior CUDA developers thoroughly introduce the platform, and show developers exactly how to make the most of it. CUDA C by Example is the first book on CUDA development for professional programmers - and the only book created with NVIDIA's direct involvement. Concise and practical, it focuses on presenting proven techniques and concrete example code for building high-performance parallelized CUDA programs with C. Programmers familiar with C will need no other skills or experience to get started - making high-performance programming more accessible than it's ever been before.
Introduction to 3D Game Programming with DirectX 9.0c: A Shader Approach presents an introduction to programming interactive computer graphics, with an emphasis on game development, using real-time shaders with DirectX 9.0. The book is divided into three parts that explain basic mathematical and 3D concepts, show how to describe 3D worlds and implement fundamental 3D rendering techniques, and demonstrate the application of Direct3D to create a variety of special effects. With this book understand basic mathematical tools used in video game creation such as vectors, matrices, and transformations; discover how to describe and draw interactive 3D scenes using Direct3D and the D3DX library; learn how to implement lighting, texture mapping, alpha blending, and stenciling using shaders and the high-level shading language (HLSL); explore a variety of techniques for creating special effects, including vertex blending, character animation, terrain rendering, multi-texturing, particle systems, reflections, shadows, and normal mapping;f ind out how to work with meshes, load and render .X files, program terrain/camera collision detection, and implement 3D object picking; review key ideas, gain programming experience, and explore new topics with the end-of-chapter exercises.
Covers mathematical concepts that are needed to develop 3D game programming and graphics.
OpenGL is a powerful software interface used to produce high-quality, computer-generated images and interactive applications using 2D and 3D objects, bitmaps, and color images. The OpenGL ® Programming Guide, Seventh Edition , provides definitive and comprehensive information on OpenGL and the OpenGL Utility Library. The previous edition covered OpenGL through Version 2.1. This seventh edition of the best-selling “red book” describes the latest features of OpenGL Versions 3.0 and 3.1. You will find clear explanations of OpenGL functionality and many basic computer graphics techniques, such as building and rendering 3D models; interactively viewing objects from different perspective points; and using shading, lighting, and texturing effects for greater realism. In addition, this book provides in-depth coverage of advanced techniques, including texture mapping, antialiasing, fog and atmospheric effects, NURBS, image processing, and more. The text also explores other key topics such as enhancing performance, OpenGL extensions, and cross-platform techniques. This seventh edition has been updated to include the newest features of OpenGL Versions 3.0 and 3.1, including Using framebuffer objects for off-screen rendering and texture updates Examples of the various new buffer object types, including uniform-buffer objects, transform feedback buffers, and vertex array objects Using texture arrays to increase performance when using numerous textures Efficient rendering using primitive restart and conditional rendering Discussion of OpenGL's deprecation mechanism and how to verify your programs for future versions of OpenGL This edition continues the discussion of the OpenGL Shading Language (GLSL) and explains the mechanics of using this language to create complex graphics effects and boost the computational power of OpenGL. The OpenGL Technical Library provides tutorial and reference books for OpenGL. The Library enables programmers to gain a practical understanding of OpenGL and shows them how to unlock its full potential. Originally developed by SGI, the Library continues to evolve under the auspices of the Khronos OpenGL ARB Working Group, an industry consortium responsible for guiding the evolution of OpenGL and related technologies.
David H. Eberly
A major revision of the international bestseller on game programming! Graphics hardware has evolved enormously in the last decade. Hardware can now be directly controlled through techniques such as shader programming, which requires an entirely new thought process of a programmer. 3D Game Engine Design, Second Edition shows step-by-step how to make a shader-based graphics engine and how to tame the new technology. Much new material has been added, including more than twice the coverage of the essential techniques of scene graph management, as well as new methods for managing memory usage in the new generation of game consoles and portable game players. There are expanded discussions of collision detection, collision avoidance, and physics — all challenging subjects for developers. * Revision of the classic work on game engines — the core of any game. * Includes Wild Magic, a commercial quality game engine in source code that illustrates how to build a real-time rendering system from the lowest-level details all the way to a working game. * Fully revised and updated in 4 colors, including major new content on shader programming, physics, and memory management for the next generation game consoles and portables.
Philip J. Schneider, David H. Eberly
A collection of proven solutions to fundamental problems, including building primitives, distance calculation, approximation, containment, decomposition, intersection determination, separation, and more. This work covers problems relevant for both 2D and 3D graphics programming.
Peter Shirley, Michael Ashikhmin, Steve Marschner
With contributions by Michael Ashikhmin, Michael Gleicher, Naty Hoffman, Garrett Johnson, Tamara Munzner, Erik Reinhard, Kelvin Sung, William B. Thompson, Peter Willemsen, Brian Wyvill. The third edition of this widely adopted text gives students a comprehensive, fundamental introduction to computer graphics. The authors present the mathematical foundations of computer graphics with a focus on geometric intuition, allowing the programmer to understand and apply those foundations to the development of efficient code. New in this edition: Four new contributed chapters, written by experts in their fields: Implicit Modeling, Computer Graphics in Games, Color, Visualization, including information visualization Revised and updated material on the graphics pipeline, reflecting a modern viewpoint organized around programmable shading. Expanded treatment of viewing that improves clarity and consistency while unifying viewing in ray tracing and rasterization. Improved and expanded coverage of triangle meshes and mesh data structures. A new organization for the early chapters, which concentrates foundational material at the beginning to increase teaching flexibility.
James M. Van Verth, Lars M. Bishop
Essential Mathematics for Games and Interactive Applications, 2nd edition presents the core mathematics necessary for sophisticated 3D graphics and interactive physical simulations. The book begins with linear algebra and matrix multiplication and expands on this foundation to cover such topics as color and lighting, interpolation, animation and basic game physics. Essential Mathematics focuses on the issues of 3D game development important to programmers and includes optimization guidance throughout. The new edition Windows code will now use Visual Studio.NET. There will also be DirectX support provided, along with OpenGL - due to its cross-platform nature. Programmers will find more concrete examples included in this edition, as well as additional information on tuning, optimization and robustness. The book has a companion CD-ROM with exercises and a test bank for the academic secondary market, and for main market: code examples built around a shared code base, including a math library covering all the topics presented in the book, a core vector/matrix math engine, and libraries to support basic 3D rendering and interaction.
David S. Ebert
This third edition has been thoroughly updated to ensure it continues to meet the needs of 3D graphics professionals and students. Included are all new chapters devoted to the latest issues in the field, real- time procedural shading, texture atlases, and procedural geometric instancing.
Mark A. DeLoura
For the countless tasks involved in creating a game engine there are an equal number of possible solutions. But instead of spending hours and hours trying to develop your own answers, now you can find out how the pros do it! Game Programming Gems is a hands-on, comprehensive resource packed with a variety of game programming algorithms written by experts from the game industry and edited by Mark DeLoura, former software engineering lead for Nintendo of America, Inc. and now the newly appointed editor-in-chief of Game Developer magazine. From animation and artificial intelligence to Z-buffering, lighting calculations, weather effects, curved surfaces, mutliple layer Internet gaming, to music and sound effects, all of the major techniques needed to develop a competitive game engine are covered. Game Programming Gems is written in a style accessible to individuals with a range of expertise levels. All of the source code for each algorithm is included and can be used by advanced programmers immediately. For aspiring programmers, there is a detailed tutorial to work through before attempting the code, and suggestions for possible modifications and optimizations are included as well.
Randi J. Rost
"As the 'Red Book' is known to be the gold standard for OpenGL, the 'Orange Book' is considered to be the gold standard for the OpenGL Shading Language. With Randi's extensive knowledge of OpenGL and GLSL, you can be assured you will be learning from a graphics industry veteran. Within the pages of the second edition you can find topics from beginning shader development to advanced topics such as the spherical harmonic lighting model and more." —David Tommeraasen, CEO/Programmer, Plasma Software "This will be the definitive guide for OpenGL shaders; no other book goes into this detail. Rost has done an excellent job at setting the stage for shader development, what the purpose is, how to do it, and how it all fits together. The book includes great examples and details, and good additional coverage of 2.0 changes!" —Jeffery Galinovsky, Director of Emerging Market Platform Development, Intel Corporation "The coverage in this new edition of the book is pitched just right to help many new shader-writers get started, but with enough deep information for the 'old hands.'" —Marc Olano, Assistant Professor, University of Maryland "This is a really great book on GLSL—well written and organized, very accessible, and with good real-world examples and sample code. The topics flow naturally and easily, explanatory code fragments are inserted in very logical places to illustrate concepts, and all in all, this book makes an excellent tutorial as well as a reference." —John Carey, Chief Technology Officer, C.O.R.E. Feature Animation OpenGL® Shading Language, Second Edition, extensively updated for OpenGL 2.0, is the experienced application programmer's guide to writing shaders. Part reference, part tutorial, this book thoroughly explains the shift from fixed-functionality graphics hardware to the new era of programmable graphics hardware and the additions to the OpenGL API that support this programmability. With OpenGL and shaders written in the OpenGL Shading Language, applications can perform better, achieving stunning graphics effects by using the capabilities of both the visual processing unit and the central processing unit. In this book, you will find a detailed introduction to the OpenGL Shading Language (GLSL) and the new OpenGL function calls that support it. The text begins by describing the syntax and semantics of this high-level programming language. Once this foundation has been established, the book explores the creation and manipulation of shaders using new OpenGL function calls. OpenGL® Shading Language, Second Edition, includes updated descriptions for the language and all the GLSL entry points added to OpenGL 2.0; new chapters that discuss lighting, shadows, and surface characteristics; and an under-the-hood look at the implementation of RealWorldz, the most ambitious GLSL application to date. The second edition also features 18 extensive new examples of shaders and their underlying algorithms, including Image-based lighting Lighting with spherical harmonics Ambient occlusion Shadow mapping Volume shadows using deferred lighting Ward's BRDF model The color plate section illustrates the power and sophistication of the OpenGL Shading Language. The API Function Reference at the end of the book is an excellent guide to the API entry points that support the OpenGL Shading Language. Also included is a convenient Quick Reference Card to GLSL.
Donald Hearn, M. Pauline Baker
Assuming the reader has no prior familiarity with computer graphics, the authors present basic principles for design, use, and understanding of computer graphics systems. The book also contains the following additional features: discussion of hardware and software components of graphics systems, as well as various applications; exploration of algorithms for creating and manipulating graphics displays, and techniques for implementing the algorithms; use of programming examples written in C to demonstrate the implementation and application of graphics algorithms; and exploration of GL, PHIGS, PHIGS+, GKS, and other graphics libraries. In addition, this book includes an appendix containing detailed discussions on a variety of mathematical methods used in graphics algorithms such as analytic geometry, linear algebra, vector and tensor manipulations, complex numbers, and numerical analysis. The C Version of this best seller can serve as a basic or supplemental text for undergraduate and graduate level courses. It is also used widely for professional self-study geared to the specific interests of the reader.
Klaus Engel, Markus Hadwiger, Joe Kniss
In traditional computer graphics, 3D objects are created using high-level surface representations such as polygonal meshes, NURBS patches, or subdivision surfaces.However, these methods often do not account for light interaction that is taking place in the atmosphere or in the interior of an object. Contrary to surface rendering, volume rendering describes a wide range of techniques for generating images from 3D scalar data. These techniques generate high-quality images of volumetric objects in real time, including local and global illumination effects.This book provides the basic theory and practical examples needed to work with volume graphics by taking advantage of today's graphics hardware to produce stunning results in real time. The authors provide: • A practical introduction to texture-based volume rendering • Methods for integrating different aspects of light/matter interaction • Global illumination techniques • Optimization strategies • Code samples—and more!
Olga Axenenko, Alexander Tsvelikh
Patrick Cozzi, Kevin Ring
Supported with code examples and the authors’ real-world experience, this book offers the first guide to engine design and rendering algorithms for virtual globe applications like Google Earth and NASA World Wind. The content is also useful for general graphics and games, especially planet and massive-world engines. With pragmatic advice throughout, it is essential reading for practitioners, researchers, and hobbyists in these areas, and can be used as a text for a special topics course in computer graphics. Topics covered include: Rendering globes, planet-sized terrain, and vector data Multithread resource management Out-of-core algorithms Shader-based renderer design
Daniel Sánchez-Crespo Dalmau
Furnishes a valuable compilation of core techniques and algorithms used to code computer and video games, coverin such topics as code design, data structures, design patters, AI, scripting engines, network programming, 2D programming, 3D pipelines, and texture mapping and furnishing code samples in C++ and Open GL and DirectX APIs. Original. (Advanced)