OpenSceneGraph 3.0: Beginner's Guide
eBook - ePub

OpenSceneGraph 3.0: Beginner's Guide

Rui Wang, Xuelei Qian

Share book
  1. 412 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

OpenSceneGraph 3.0: Beginner's Guide

Rui Wang, Xuelei Qian

Book details
Book preview
Table of contents
Citations

About This Book

Written with a fast-paced but friendly and engaging approach, this Packt Beginner's Guide is designed to be placed alongside the computer as your guide and mentor. Step-by-step tutorials are bolstered by explanations of the reasoning behind what you are doing. You will quickly pick up the necessary skills, tips, and tricks for creating successful 3D graphics with practical examples that help you to learn by experiment and play. This book is intended for software developers who are new to OpenSceneGraph and considering using it in their applications. It is assumed that you have basic knowledge of C++ before using this book, especially the standard template library (STL) constructs, of which OSG makes extensive use. Some familiarity with design patterns as implemented in C++ is also useful, but is not required. You need to be familiar with OpenGL, the standard cross-platform low-level 3D graphics API. We'll meet some maths in the book—geometry and linear algebra—and familiarity with these topics will be great, but you don't need to be a maths whiz to use this book.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is OpenSceneGraph 3.0: Beginner's Guide an online PDF/ePUB?
Yes, you can access OpenSceneGraph 3.0: Beginner's Guide by Rui Wang, Xuelei Qian in PDF and/or ePUB format, as well as other popular books in Informatik & Informationstechnologie. We have over one million books available in our catalogue for you to explore.

Information

Year
2010
ISBN
9781849512831

OpenSceneGraph 3.0

Beginner's Guide


Table of Contents

OpenSceneGraph 3.0
Credits
Foreword
About the Authors
Acknowledgement
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Time for action—heading
What just happened?
Pop quiz—heading
Have a go hero—heading
Reader feedback
Customer support
Errata
Piracy
Questions
1. The Journey into OpenSceneGraph
A quick overview of rendering middleware
Scene graphs
The Birth and development of OSG
Components
Why OSG?
Who uses OSG?
Have a quick taste
Time for action—say "Hello World" OSG style
What just happened?
Live in community
Summary
2. Compilation and Installation of OpenSceneGraph
System requirements
Using the installer
Time for action—installing OSG
What just happened?
Running utilities
Time for action—playing with osgviewer
What just happened?
Pop quiz—dependencies of osgviewer
Have a go hero—playing with osgconv
Using the project wizard
Time for action—creating your solution with one click
What just happened?
Have a go hero—constructing "Hello World" with the wizard
Prebuilts making trouble?
Cross-platform building
Starting CMake
Time for action—running CMake in GUI mode
What just happened?
Setting up options
Generating packages using Visual Studio
Time for action—building with a Visual Studio solution
What just happened?
Pop quiz—the difference between ALL_BUILD and 'build all'
Generating packages using gcc
Time for action—building with a UNIX makefile
What just happened?
Have a go hero—checking mis-compiled parts
Configuring environment variables
Summary
3. Creating Your First OSG Program
Constructing your own projects
Time for action—building applications with CMake
What just happened?
Pop quiz—configuring OSG path options yourselves
Have a go hero—testing with different generators
Using a root node
Time for action—improving the "Hello World" example
What just happened?
Understanding memory management
ref_ptr<> and Referenced classes
Collecting garbage: why and how
Tracing the managed entities
Time for action—monitoring counted objects
What just happened?
Have a go hero—returning from a function
Pop quiz—release a smart pointer
Parsing command-line arguments
Time for action—reading the model filename from the command line
What just happened?
Tracing with the notifier
Redirecting the notifier
Time for action—saving the log file
What just happened?
Summary
4. Building Geometry Models
How OpenGL draws objects
Geode and Drawable classes
Rendering basic shapes
Time for action—quickly creating simple objects
What just happened?
Storing array data
Vertices and vertex attributes
Specifying drawing types
Time for action—drawing a colored quad
What just happened?
Pop quiz—results of different primitive types
Indexing primitives
Time for action—drawing an octahedron
What just happened?
Pop quiz—optimizing indexed geometries
Have a go hero—challenges with cubes and pyramids
Using polygonal techniques
Time for action—tessellating a polygon
What just happened?
Rereading geometry attributes
Customizing a primitive functor
Time for action—collecting triangle faces
What just happened?
Have a go hero—analyzing topology of a geometry
Implementing your own drawables
Using OpenGL drawing calls
Time for action—creating the famous OpenGL teapot
What just happened?
Summary
5. Managing Scene Graph
The Group interface
Managing parent nodes
Time for action—adding models to the scene graph
What just happened?
Pop quiz—fast dynamic casting
Traversing the scene graph
Transformation nodes
Understanding the matrix
The MatrixTransform class
Time for action—performing translations of child nodes
What just happened?
Pop quiz—matrix multiplications
Have a go hero—making use of the PositionAttitudeTransform class
Switch nodes
Time for action—switching between the normal and damaged Cessna
What just happened?
Level-of-detail nodes
Time for action—constructing a LOD Cessna
What just happened?
Proxy and paging nodes
Time for action—loading a model at runtime
What just happened?
Have a go hero—working with the PagedLOD class
Customizing your own NodeKits
Time for action—animating the switch node
What just happened?
Have a go hero—creating a tracker node
The visitor design pattern
Visiting scene graph structures
Time for action—analyzing the Cessna structure
What just happened?
Summary
6. Creating Realistic Rendering Effects
Encapsulating the OpenGL state machine
Attributes and modes
Time for action—setting polygon modes of different nodes
What just happened?
Inheriting render states
Time for action—lighting the glider or not
What just happened?
Playing with fixed-function effects
Time for action—applying simple fog to models
What just happened?
Have a go hero—searching for more effects
Lights and light sources
Time for action—creating light sources in the scene
What just happened?
Pop quiz—lights without sources
The Image class
The basis of texture mapping
Time for action—loading and applying 2D textures
What just happened?
Have a go hero—making use of filters and wrapping modes
Handling rendering order
Time for action—achieving the translucent effect
What just happened?
Understanding graphics shaders
Using uniforms
Time for action—implementing a cartoon cow
What just happened?
Pop quiz—replacements of built-in uniforms
Have a go hero—setting vertex attributes to shaders
Working with the geometry shader
Time for action—generating a Bezier curve
What just happened?
Have a go hero—having fun with shaders
Summary
7. Viewing the World
From world to...

Table of contents