PacktLib: Irrlicht 1.7 Realtime 3D Engine Beginner's Guide

Irrlicht 1.7 Realtime 3D Engine

Credits

About the Authors

Acknowledgement

About the Reviewer

www.PacktPub.com

Preface

Installing Irrlicht

Irrlicht license

System requirements

Time for action - downloading Irrlicht

Contents of the Irrlicht package

Irrlicht on Windows with Visual Studio

Time for action - adding file references

Compiling Irrlicht as a dynamic library using Visual Studio

Time for action - compiling Irrlicht as a dynamic library

Time for action - compiling the Irrlicht dynamic library with modifications

Building an example with Visual Studio

Time for action - building an Irrlicht example

Using Irrlicht with CodeBlocks

Time for action - creating an application using the CodeBlocks wizard

Irrlicht on Linux

Time for action - compiling the static library

Making Irrlicht available on the whole system

Time for action - compiling "Hello World" on Ubuntu

Irrlicht on Mac OS X with Xcode

Time for action - compiling the static library on Mac OS X

Time for action - compiling "Hello World" project with Xcode

Summary

Creating a Basic Template Application

Creating a new empty project

Time for action - creating the main entry point

Using Irrlicht namespaces

Irrlicht device

Time for action - creating an Irrlicht device

The "game loop"

Time for action - creating the "game loop"

Summary

Loading Meshes

What is a mesh?

Time for action - loading a mesh

Using textures

Time for action - applying texture to a mesh

Time for action - manipulating our mesh

Time for action - animating our mesh

Summary

Overlays and User Interface

What is an overlay?

Time for action - drawing a 2D image

Using a sprite sheet

Time for action - using a sprite sheet

Making sprite sheets

Time for action - making sprite sheets

Drawing primitives

Time for action - drawing primitives

Graphical user interface

Displaying text on the screen

Time for action - displaying text on the screen

Using the Irrlicht font tool

Time for action - using the Irrlicht font tool

Adding buttons to our GUI

Time for action - adding buttons to your GUI

Summary

Understanding Data Types

Using C++ templates

Time for action - using templates

Type definitions

Class types

Vectors

Time for action - moving a ball

Summary

Managing Scenes

What is a scene?

Getting CopperCube/IrrEditCopp

What is CopperCube?

Why are we using CopperCube?

Time for action - creating a new scene

Time for action - adding meshes to our scene

Time for action - adding lights

Time for action - adding geometrical objects

Time for action - finishing up our scene

Time for action - exporting our scene

Time for action - loading an Irrlicht scene

Summary

Using Nodes The Basic Objects of the Irrlicht 3D Engine

What is a node?

Overview of different nodes

Working with nodes

Time for action - working with nodes

Animating nodes

Time for action - animating nodes

Adding a custom scene node

Time for action - adding a custom scene node

Summary

Managing Cameras

What is a camera?

Extending our template application

Time for action - extending our template application

Creating terrains

Time for action - creating terrains

Adding a camera scene node

Time for action - adding a camera scene node

Adding prefabricated cameras

Time for action - adding prefabricated cameras

Summary

Lightening the Scene

Using irrEdit to set up lights

Time for action - creating a global ambient light

Time for action - adding a light scene node

Time for action - setting up Irrlicht

Time for action - setting up global ambient light

Time for action - creating a custom light node

Time for action - adding a spot light and an animator

Time for action - manipulating shininess and specular light color

Time for action - adding a shadow

Summary

Creating Eye Candy Effects with Particle Systems

Particle systems

Time for action - creating a simple particle effect in irrEdit

Time for action - modifying the particle material

Time for action - adding a particle system in Irrlicht

Time for action - adding a simple water surface

Time for action - adding a particle affector

Time for action - activating a particle effect on a mouse event

Summary

Handling Data and Files

Loading data from an external file

Time for action - loading data from an external file

Time for action - reading data in tokens, line-by-line

Time for action - saving data to a file

Time for action - loading data from an XML file

Time for action - writing data to an XML file

Time for action - reading specific data types from an XML file

Time for action - reading data from an archive

Summary

Using Shaders in Irrlicht

Rendering pipeline

Shaders

Vertex shaders

Fragment /pixel shaders

Geometry shaders

Time for action - setting up the GLSL demo

Data communication

Time for action - using a toon shader

Time for action - applying a gooch shader

Going further with shaders

Summary

Deploying an Irrlicht Application

Deploying an Irrlicht Application

Deploying an Irrlicht Application

Deploying an Irrlicht Application

Deploying an Irrlicht Application

Deploying an Irrlicht Application

Deploying an Irrlicht Application

Pop quiz - Answers

Pop quiz - Answers

Pop quiz - Answers

Pop quiz - Answers

Pop quiz - Answers

Pop quiz - Answers

Pop quiz - Answers