You are previewing 3D for iPhone® Apps with Blender and SIO2: Your Guide to Creating 3D Games and More with Open-Source Software.
O'Reilly logo
3D for iPhone® Apps with Blender and SIO2: Your Guide to Creating 3D Games and More with Open-Source Software

Book Description

Create exciting, interactive 3D apps for the iPhone and iPod Touch

What a combination-using free, open-source Blender software and the SI02 game engine to create very cool 3D characters and games for the very hot devices of the moment, the iPhone and iPod Touch. Whether you're coming to this as an iPhone developer or as a Blender artist, this book is for you. Learn how to create 3D content using Blender's WYSIWYG approach, find helpful information on Xcode and other iPhone SDK topics, master physical collisions, and acquire the skills you need to bridge both worlds with fun, compelling content.

  • Shows you what you need to know to use Blender software, the SI02 game engine, and iPhone SDK to create interactive 3D content for the iPhone and iPod Touch

  • Walks you through a series of tutorials that you can use as starting points for your own creations

  • Provides enough information on the iPhone software developer kit (SDK) to get you started quickly

  • Covers Blender's physics simulation library, Bullet, and Blender's robust collision functionality

Bridge the exciting worlds of Blender and iPhone app development in an easy-to-follow pipeline with this one-of-a-kind guide.

Table of Contents

  1. Copyright
  2. Dear Reader,
  3. Acknowledgments
  4. About the Author
  5. Foreword
  6. Introduction
    1. 0.1. What You Will Learn from This Book
    2. 0.2. Why Blender/SIO2?
    3. 0.3. What Else You Need to Know
    4. 0.4. Who Should Read This Book
    5. 0.5. How to Use This Book
    6. 0.6. How This Book Is Organized
    7. 0.7. Hardware and Software Considerations
    8. 0.8. The Book's Online Project Archive
    9. 0.9. Contact the Author
  7. 1. Getting Started with 3D Development for the iPhone
    1. 1.1. Getting Started
    2. 1.2. Getting the Software
      1. 1.2.1. The iPhone SDK
      2. 1.2.2. Getting Blender
      3. 1.2.3. Getting SIO2
    3. 1.3. Setting Up Your Development Environment
      1. 1.3.1. Building the SIO2 Template in Xcode
      2. 1.3.2. Troubleshooting
  8. 2. Introducing Graphics Programming in SIO2
    1. 2.1. The SIO2 Template
    2. 2.2. A Simple OpenGL Demo
      1. 2.2.1. Creating Graphical Content in OpenGL ES
      2. 2.2.2. Looking Closer at Transformations
        1. 2.2.2.1. Transformation Order
        2. 2.2.2.2. Using the Matrix Stack
    3. 2.3. Introduction to Interactivity
    4. 2.4. The Complete Code
  9. 3. Saying Hello to the Blender/SIO2/iPhone World
    1. 3.1. The Blender/SIO2/Xcode Workflow
    2. 3.2. An Overview of SIO2
    3. 3.3. Hello 3D World! Creating Your World in Blender
      1. 3.3.1. Modeling and Texturing the World and Background
      2. 3.3.2. Lights, Camera, and Background
    4. 3.4. Exporting to the SIO2 File Format
      1. 3.4.1. The Exporter Script
      2. 3.4.2. Exporting the World
      3. 3.4.3. The .sio2 File Format
  10. 4. Going Mobile with SIO2
    1. 4.1. Initializing SIO2 and Loading Assets
      1. 4.1.1. Headers and Prototypes
      2. 4.1.2. The templateLoading Function
    2. 4.2. Rendering
      1. 4.2.1. Making the World Go 'Round
      2. 4.2.2. And Then There Was Light
      3. 4.2.3. Troubleshooting
    3. 4.3. Touch Screen Interaction
      1. 4.3.1. Spin Control
      2. 4.3.2. Handling the Screen Tap and Touch Move
    4. 4.4. The Complete Code
  11. 5. Extending Interactive Feedback with Picking and Text
    1. 5.1. Object Picking
      1. 5.1.1. A Simple Picking Example in Blender
      2. 5.1.2. Implementing Color-Based Picking in SIO2
      3. 5.1.3. A Closer Look at the Picking Code
      4. 5.1.4. Adding Picking to Hello3DWorld
    2. 5.2. Working with Text and Fonts
      1. 5.2.1. Bitmap Fonts
      2. 5.2.2. Fonts and Materials in SIO2
        1. 5.2.2.1. Loading Fonts
        2. 5.2.2.2. Rendering Fonts
    3. 5.3. Using Multi-touch Functionality
    4. 5.4. Packaging Your App
    5. 5.5. The Complete Code
  12. 6. Creating an Immersive Environment in SIO2
    1. 6.1. Modeling the Ground and the Sky
      1. 6.1.1. Creating a Ground Plane in Blender
      2. 6.1.2. Solid Ground for SIO2
      3. 6.1.3. Creating a Convincing Sky Dome
      4. 6.1.4. Exporting the .sio2 File
    2. 6.2. Creating an Immersive Environment in SIO2
      1. 6.2.1. Setting Up the Scene
        1. 6.2.1.1. The templateLoading Function
        2. 6.2.1.2. The templateRender Function
        3. 6.2.1.3. The templateScreenTap Function
      2. 6.2.2. Setting Up Physics Simulation
    3. 6.3. Exploring the Environment with a Moving Camera
      1. 6.3.1. Movement in templateRender
      2. 6.3.2. Movement in templateScreenTap
      3. 6.3.3. The templateScreenTouchMove Function
    4. 6.4. The Complete Code
      1. 6.4.1. EAGLview.mm
      2. 6.4.2. EAGLview.mm
  13. 7. Props and Physical Objects
    1. 7.1. Texture Face Objects and Transparency
      1. 7.1.1. Alpha Texturing in Blender
      2. 7.1.2. Rendering Alpha Transparency in SIO2
    2. 7.2. Fast Foliage with Billboards
    3. 7.3. Physics for Interactive Objects
      1. 7.3.1. Rigid Body Objects
      2. 7.3.2. Static Physics for Obstacles
    4. 7.4. Pseudo-instancing for Efficient Object Handling
    5. 7.5. Working with Low-Poly Collision Maps
    6. 7.6. The Complete Code
  14. 8. Animating a Character
    1. 8.1. Animating a Character in Blender
      1. 8.1.1. Creating a Simple Walk Cycle
      2. 8.1.2. Creating the Default Motion and NLA Strips
    2. 8.2. Getting Action in SIO2
    3. 8.3. Taking a Walk
    4. 8.4. Quick and Dirty Real-Time Shadows
    5. 8.5. The Complete Code
  15. 9. Working with Widgets
    1. 9.1. Making a Splash with Widgets
      1. 9.1.1. Choosing Image Formats
      2. 9.1.2. Widget Graphics for iFrankie
    2. 9.2. Creating Active Widgets in SIO2
      1. 9.2.1. Declaring Variables for Widgets
      2. 9.2.2. Loading Widgets and Assets
      3. 9.2.3. The Button Callback Function
      4. 9.2.4. The Template Render Function
      5. 9.2.5. Game Render Function
    3. 9.3. The Complete Code
  16. A. Blender Basics
    1. A.1. Interface and Navigation
      1. A.1.1. Windows and Headers
      2. A.1.2. Layers
      3. A.1.3. Navigating 3D Space
        1. A.1.3.1. Rotating, Panning, and Zooming in Space
        2. A.1.3.2. Using the Number Pad Keys
      4. A.1.4. The 3D Cursor
    2. A.2. Modeling
      1. A.2.1. Objects and Object Mode
        1. A.2.1.1. Selecting
        2. A.2.1.2. 3D Transforms
        3. A.2.1.3. Deleting and Adding Objects
      2. A.2.2. Meshes and Edit Mode
        1. A.2.2.1. Selecting
        2. A.2.2.2. 3D Transforms
        3. A.2.2.3. Mesh Modeling Tools
        4. A.2.2.4. Proportional Editing
        5. A.2.2.5. Normals
      3. A.2.3. Armatures and Rigging
    3. A.3. Materials and Textures
      1. A.3.1. Materials
      2. A.3.2. UV Texturing
        1. A.3.2.1. Unwrapping and Mapping
        2. A.3.2.2. Texture Settings
        3. A.3.2.3. Texture Baking
    4. A.4. Animation
      1. A.4.1. Ipo Curves
      2. A.4.2. Actions and Nonlinear Animation
  17. B. Key Concepts for Graphics Programming
    1. B.1. Coordinate Systems, Matrices, and Transformations
      1. B.1.1. Matrix Notation
      2. B.1.2. Transformations
        1. B.1.2.1. Model/View Transformation
        2. B.1.2.2. Projection Transformation
    2. B.2. Transformations by Matrix Multiplication
      1. B.2.1. Multiplying Matrices
      2. B.2.2. Matrix Transformations
      3. B.2.3. 3D Matrix Transformations
    3. B.3. Matrices and OpenGL
  18. C. SIO2 Reference
    1. C.1. SIO2 Learning Resources
      1. C.1.1. Official SIO2 Tutorials and Code Samples
      2. C.1.2. Transcending Your Limits with SIO2 Meditation Garden
      3. C.1.3. Shooting to Score with Hoops Frenzy
      4. C.1.4. Powering Up with SIO2 Backyard War
      5. C.1.5. The SIO2 Forum
    2. C.2. The .sio2 File Format
    3. C.3. SIO2 Flag Values
    4. C.4. SIO2 Functions