You are previewing Irrlicht 1.7 Realtime 3D Engine.
O'Reilly logo
Irrlicht 1.7 Realtime 3D Engine

Book Description

With your C++ skills and our writers’ know-how, you’re well on your way to using the Irrlicht Engine for your 2D and 3D applications. No prior knowledge of Irrlicht needed – this book goes from installation to deployment.

  • A comprehensive guide for C++ programmers to learn Irrlicht from scratch

  • Learn to add, manipulate, and animate meshes

  • Manage scenes, nodes, and cameras

  • Use particle systems, shaders, and lights for enhancement

  • Written in beginner's guide style with exhaustive explanations of code and plenty of screenshots added in for ease of learning

  • In Detail

    The Irrlicht Engine is a cross-platform high-performance real-time 3D engine written in C++. It features a powerful high-level API for creating complete 3D and 2D applications such as games or scientific visualizations.

    Irrlicht 1.7.1 Realtime 3D Engine Beginner's Guide will teach you to master all that is required to create 2D and 3D applications using Irrlicht, beginning right from installation and proceeding step-by-step to deployment.

    Beginning with installation, this book guides you through creating a basic template application, followed by meshes, overlays, and UI. You will then scan through data types, nodes, scenes, camera, lights, and particle systems. Finally, you will learn about some advanced concepts such as handling data, files, and shaders, followed by the last stage – deployment.

    This book is a step-by-step guide to Irrlicht that starts at an easy level for beginners and then gradually works to more advanced topics through clear code examples and a number of demos, which illustrate theoretical concepts.

    Table of Contents

    1. Irrlicht 1.7 Realtime 3D Engine
      1. Irrlicht 1.7 Realtime 3D Engine
      2. Credits
      3. About the Authors
      4. Acknowledgement
      5. About the Reviewer
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers and more
          1. Why Subscribe?
          2. Free Access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Time for action - heading
          1. What just happened?
          2. Pop quiz - heading
          3. Have a go hero - heading
        6. Reader feedback
        7. Customer support
          1. Errata
          2. Piracy
          3. Questions
      8. 1. Installing Irrlicht
        1. Irrlicht license
        2. System requirements
        3. Time for action - downloading Irrlicht
        4. Contents of the Irrlicht package
          1. bin folder
          2. doc folder
          3. examples folder
          4. lib folder
          5. include folder
          6. media folder
          7. source folder
          8. tools folder
          9. Text files
        5. Irrlicht on Windows with Visual Studio
        6. Time for action - adding file references
          1. What just happened?
          2. Project-specific configuration
        7. Compiling Irrlicht as a dynamic library using Visual Studio
          1. For 64-bit Windows
          2. Installing Microsoft's DirectX SDK
        8. Time for action - compiling Irrlicht as a dynamic library
          1. What just happened?
        9. Time for action - compiling the Irrlicht dynamic library with modifications
          1. What just happened?
          2. Additional configurations
        10. Building an example with Visual Studio
        11. Time for action - building an Irrlicht example
          1. What just happened?
        12. Using Irrlicht with CodeBlocks
        13. Time for action - creating an application using the CodeBlocks wizard
          1. What just happened?
          2. CodeBlocks under Linux
        14. Irrlicht on Linux
        15. Time for action - compiling the static library
          1. What just happened?
        16. Making Irrlicht available on the whole system
        17. Time for action - compiling "Hello World" on Ubuntu
          1. What just happened?
        18. Irrlicht on Mac OS X with Xcode
        19. Time for action - compiling the static library on Mac OS X
          1. What just happened?
        20. Time for action - compiling "Hello World" project with Xcode
          1. What just happened?
        21. Summary
      9. 2. Creating a Basic Template Application
        1. Creating a new empty project
          1. Visual Studio
          2. CodeBlocks
          3. Linux and the command line
          4. Xcode
        2. Time for action - creating the main entry point
        3. Using Irrlicht namespaces
        4. Irrlicht device
        5. Time for action - creating an Irrlicht device
          1. What just happened?
          2. The createDevice method
        6. The "game loop"
        7. Time for action - creating the "game loop"
          1. What just happened?
          2. beginScene
          3. endScene
          4. Pop quiz - namespaces and beginScene
          5. Have a go hero - creating the fade-in/fade-out effect
        8. Summary
      10. 3. Loading Meshes
        1. What is a mesh?
        2. Time for action - loading a mesh
          1. What just happened?
          2. Differences between mesh formats
            1. OBJ
            2. MD2/MD3
            3. COLLADA
            4. X
        3. Using textures
        4. Time for action - applying texture to a mesh
          1. What just happened?
        5. Time for action - manipulating our mesh
          1. What just happened?
        6. Time for action - animating our mesh
          1. What just happened?
          2. Have a go hero - switching animations
          3. Pop quiz
        7. Summary
      11. 4. Overlays and User Interface
        1. What is an overlay?
        2. Time for action - drawing a 2D image
          1. What just happened?
          2. Have a go hero - drawing an image
        3. Using a sprite sheet
        4. Time for action - using a sprite sheet
          1. What just happened?
        5. Making sprite sheets
        6. Time for action - making sprite sheets
          1. What just happened?
        7. Drawing primitives
        8. Time for action - drawing primitives
          1. What just happened?
          2. Rectangles
          3. Polygons
          4. Lines
          5. Have a go hero - drawing primitives
        9. Graphical user interface
        10. Displaying text on the screen
        11. Time for action - displaying text on the screen
          1. What just happened?
        12. Using the Irrlicht font tool
        13. Time for action - using the Irrlicht font tool
          1. What just happened?
        14. Adding buttons to our GUI
        15. Time for action - adding buttons to your GUI
          1. What just happened?
          2. Pop quiz
        16. Summary
      12. 5. Understanding Data Types
        1. Using C++ templates
          1. What are templates?
          2. Using templates
        2. Time for action - using templates
          1. What just happened?
        3. Type definitions
        4. Class types
          1. video::SColor
          2. video::SColorf
          3. core::rect
          4. core::dimension2d
          5. core::array
          6. core::list
        5. Vectors
          1. Dot product
          2. Cross product
          3. Magnitude (length)
          4. Unit vector
          5. Normalization
          6. Direction vector
        6. Time for action - moving a ball
          1. What just happened?
          2. Have a go hero - normalization
          3. Pop quiz
        7. Summary
      13. 6. Managing Scenes
        1. What is a scene?
        2. Getting CopperCube/IrrEditCopp
          1. Windows version
          2. Mac OS X version
        3. What is CopperCube?
        4. Why are we using CopperCube?
        5. Time for action - creating a new scene
          1. What just happened?
        6. Time for action - adding meshes to our scene
          1. What just happened?
        7. Time for action - adding lights
          1. What just happened?
        8. Time for action - adding geometrical objects
          1. What just happened?
        9. Time for action - finishing up our scene
          1. What just happened?
          2. Have a go hero - finishing up our scene
        10. Time for action - exporting our scene
        11. Time for action - loading an Irrlicht scene
        12. Summary
      14. 7. Using Nodes The Basic Objects of the Irrlicht 3D Engine
        1. What is a node?
        2. Overview of different nodes
          1. Scene node
          2. Camera scene node
          3. Billboard scene node
          4. Mesh scene node
          5. Light scene node
          6. Dummy transformation scene node
          7. Particle system scene node
          8. Terrain scene node
          9. Text scene node
        3. Working with nodes
        4. Time for action - working with nodes
          1. What just happened?
        5. Animating nodes
        6. Time for action - animating nodes
          1. What just happened?
          2. Fly circle
          3. Fly straight
          4. Follow spline
          5. Rotation
          6. Delete
          7. Texture
          8. Collision response
          9. Have a go hero - exploring other animators
        7. Adding a custom scene node
        8. Time for action - adding a custom scene node
          1. What just happened?
          2. Pop quiz
        9. Summary
      15. 8. Managing Cameras
        1. What is a camera?
        2. Extending our template application
        3. Time for action - extending our template application
          1. What just happened?
        4. Creating terrains
        5. Time for action - creating terrains
          1. What just happened?
        6. Adding a camera scene node
        7. Time for action - adding a camera scene node
          1. What just happened?
          2. Have a go hero - rotate and move the camera
        8. Adding prefabricated cameras
        9. Time for action - adding prefabricated cameras
          1. What just happened?
        10. Summary
      16. 9. Lightening the Scene
        1. Using irrEdit to set up lights
        2. Time for action - creating a global ambient light
          1. Ambient light
          2. Materials
          3. Emissive color
        3. Time for action - adding a light scene node
          1. Attenuation
        4. Time for action - setting up Irrlicht
          1. What just happened?
        5. Time for action - setting up global ambient light
          1. Have a go hero - a dark scene?
        6. Time for action - creating a custom light node
          1. What just happened?
          2. Directional light
          3. Point light
        7. Time for action - adding a spot light and an animator
          1. What just happened?
          2. Spot light
        8. Time for action - manipulating shininess and specular light color
          1. What just happened?
          2. Gouraud shading
        9. Time for action - adding a shadow
          1. What just happened?
        10. Summary
      17. 10. Creating Eye Candy Effects with Particle Systems
        1. Particle systems
        2. Time for action - creating a simple particle effect in irrEdit
          1. What just happened?
          2. Have a go hero - exploring particle systems in irrEdit
        3. Time for action - modifying the particle material
          1. What just happened?
          2. Have a go hero - playing around with the emitter properties
        4. Time for action - adding a particle system in Irrlicht
          1. What just happened?
        5. Time for action - adding a simple water surface
          1. What just happened?
          2. Have a go hero - adding some fog to the scene
        6. Time for action - adding a particle affector
          1. What just happened?
        7. Time for action - activating a particle effect on a mouse event
          1. What just happened?
        8. Summary
      18. 11. Handling Data and Files
        1. Loading data from an external file
        2. Time for action - loading data from an external file
          1. What just happened?
        3. Time for action - reading data in tokens, line-by-line
          1. What just happened?
        4. Time for action - saving data to a file
        5. Time for action - loading data from an XML file
          1. What just happened?
        6. Time for action - writing data to an XML file
        7. Time for action - reading specific data types from an XML file
        8. Time for action - reading data from an archive
          1. What just happened?
        9. Summary
      19. 12. Using Shaders in Irrlicht
        1. Rendering pipeline
        2. Shaders
        3. Vertex shaders
        4. Fragment /pixel shaders
        5. Geometry shaders
          1. Pop quiz - rendering the pipeline and shaders
        6. Time for action - setting up the GLSL demo
        7. Data communication
        8. Time for action - using a toon shader
          1. What just happened?
        9. Time for action - applying a gooch shader
        10. Going further with shaders
        11. Summary
      20. A. Deploying an Irrlicht Application
        1. What is meant by "deployment"?
        2. Deploying Irrlicht applications on Windows platforms
        3. Deploying the Irrlicht applications on Linux platforms
          1. Start helper script for Linux
        4. Deploying for Mac OS X platforms
          1. Creating universal applications and compatibility
        5. Deploying the source code
          1. Why deploy the source code?
          2. Deploying the source
        6. Summary
      21. B. Pop quiz - Answers
        1. Chapter 2, Creating a Basic Template Application
        2. Chapter 3, Loading Meshes
        3. Chapter 4, Overlays and User Interface
        4. Chapter 5, Understanding Data Types
        5. Chapter 7, Using Nodes—The Basic Objects of the Irrlicht 3D Engine
        6. Chapter 12, Using Shaders in Irrlicht