Table of Contents
[
vi 
]
Time for ac瑩on – receiving and cas瑩ng shadows 
311
Implemen瑩ng special effects 
315
Time for ac瑩on – drawing the outline of models 
316
Playing with more NodeKits 
318
Summary 
319
Chapter 12: Improving Rendering Efficiency 
321
OpenThreads basics 
322
Time for ac瑩on – using a separate data receiver thread 
322
Understanding mul瑩threaded rendering 
328
Time for ac瑩on – switching between different threading models 
328
Dynamic scene culling 
335
Occluders and occludees 
336
Time for ac瑩on – adding occluders to a complex scene 
337
Improving your applica瑩on 
341
Time for ac瑩on – sharing textures with a customized callback 
343
Paging huge scene data 
347
Making use of the quad-tree 
348
Time for ac瑩on – building a quad-tree for massive rendering 
348
Summary 
357
Appendix: Pop Quiz Answers 
359
Chapter 2 
359
Dependencies of osgviewer 
359
The difference between ALL_BUILD and 'build all' 
359
Chapter 3 
360
Configuring OSG path op瑩ons yourselves 
360
Release a smart pointer 
360
Chapter 4 
360
Results of different primi瑩ve types 
360
Op瑩mizing indexed geometries 
360
Chapter 5 
361
Fast dynamic cas瑩ng 
361
Matrix mul瑩plica瑩ons 
361
Chapter 6 
361
Lights without sources 
361
Replacements of built-in uniforms 
361
Chapter 7 
362
Changing model posi瑩ons in the HUD camera 
362
Another way to display the same scene in different views 
362
Chapter 8 
362
Adding or se瑴ng callbacks 
362
Pdf will no pages selected - Split, seperate PDF into multiple files in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Explain How to Split PDF Document in Visual C#.NET Application
split pdf into individual pages; break a pdf into multiple files
Pdf will no pages selected - VB.NET PDF File Split Library: Split, seperate PDF into multiple files in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET PDF Document Splitter Control to Disassemble PDF Document
break up pdf into individual pages; break pdf password
Table of Contents
[
vii 
]
Choosing the alpha se瑴er and the callback 
363
Chapter 9 
363
Handling events within nodes 
363
Global and node-related events 
363
Chapter 10 
363
Ge瑴ng rid of pseudo-loaders 
363
Understanding the inheritance rela瑩ons 
364
Chapter 11 
364
Text posi瑩ons and the projec瑩on matrix 
364
Chapter 12 
364
Carefully blocking threads 
364
Number of created levels and files 
365
Index 
367
VB.NET TWAIN: TWAIN Image Scanning in Console Application
First, there is no SelectSourceDialog in VB.NET TWAIN console Here we will illustrate the benefits of this VB.NET how to scan multiple pages to one PDF or TIFF
pdf no pages selected; split pdf
VB.NET PowerPoint: Convert & Render PPT into PDF Document
on and VB.NET PDF editing add-on will be used. As our VB.NET PowerPoint to PDF conversion add-on and edit .pptx document file independently, no other external
split pdf by bookmark; break a pdf into separate pages
C# Image: Create C#.NET Windows Document Image Viewer | Online
C# Windows Document Image Viewer Features. No need for viewing multiple document & image formats (PDF, MS Word The following list will give you a broad overview
break pdf file into multiple files; pdf split
VB.NET Word: Use VB.NET Code to Convert Word Document to TIFF
VB.NET Word to TIFF image converting application, no external Word free to contact us and we will offer you more user guides with RasteEdge .NET PDF SDK using
break a pdf into parts; cannot select text in pdf
Preface
Real-瑩me rendering is in quite demand in computer science today, and OpenSceneGraph, 
being one of the best 3D graphics toolkits, is being used widely in the fields of virtual reality, 
scien瑩fic visualiza瑩on, visual simula瑩on, modeling, games, mobile applica瑩ons, and so 
on. Although you can use the powerful OpenSceneGraph, which is based on the low-level 
OpenGL API, to implement applica瑩ons that simulate different environments in the 3D 
world, developing picture-perfect applica瑩ons is easier said than done.
This book has been wri瑴en with the goal of helping readers become familiar with the 
structure and main func瑩onali瑩es of OpenSceneGraph, and guiding them to develop  
virtual-reality applica瑩ons using this powerful 3D graphics engine. This book covers the 
essence of OpenSceneGraph, providing programmers with detailed explana瑩ons and 
examples of scene graph APIs.
This book helps you take full advantages of the key features and func瑩onali瑩es of 
OpenSceneGraph. You will learn almost all of the core elements required in a virtual reality 
applica瑩on, including memory management, geometry crea瑩on, the structure of the scene 
graph, realis瑩c rendering effects, scene naviga瑩on, anima瑩on, interac瑩on with input devices 
and external user interfaces, file reading and wri瑩ng, and so on.
With the essen瑩al knowledge contained in this book, you will be able to start using 
OpenSceneGraph in your own projects and research fields, and extend its func瑩onali瑩es by 
referring to OpenSceneGraph's source code, official examples, and API documenta瑩on.
This handy book divides the core func瑩onali瑩es of the proved and comprehensive 
OpenSceneGraph 3D graphics engine into different aspects, which are introduced in separate 
chapters. Each chapter can be treated as an individual lesson that covers one important 
field of OpenSceneGraph programming, along with several examples illustra瑩ng concrete 
usages and solu瑩ons. The sequence of the chapters is organized from the easy topics to 
the more difficult concepts, to help you to gradually build your knowledge and skills in with 
OpenSceneGraph.
C# HTML5 PDF Viewer SDK deployment on IIS in .NET
This page will navigate users how to deploy HTML5 PDF to the place where you store XDoc.PDF.HTML5 Viewer The site configured in IIS has no sufficient authority
pdf print error no pages selected; acrobat split pdf into multiple files
VB.NET PDF - VB.NET HTML5 PDF Viewer Deployment on IIS
This page will navigate users how to deploy HTML5 PDF to the place where you store XDoc.PDF.HTML5 Viewer The site configured in IIS has no sufficient authority
break password pdf; acrobat split pdf
Preface
[
]
By the end of the whole book, you will have gained a ready-to-use OpenSceneGraph 
development environment for yourself, and will have the ability to develop OpenSceneGraph 
-based applica瑩ons and extend prac瑩cal func瑩onali瑩es for your own purposes.
With plenty of examples to get you started quickly, you'll master developing with 
OpenSceneGraph in no 瑩me.
What this book covers
Chapter 1The Journey into OpenSceneGraph introduces the history, structure and features 
of OpenSceneGraph (OSG), and introduces the general concept of scene graph.
Chapter 2Compila瑩on and Installa瑩on of OpenSceneGraph guides readers through 
compiling, installing and configuring an OSG development environment, either by using the 
prebuilt binaries or building an environment wholly from the source code.
Chapter 3Crea瑩ng Your First OSG Program shows how to code an OSG-based applica瑩on, 
highligh瑩ng the u瑩liza瑩on of smart pointers, no瑩fying system, object instances and data 
variances.
Chapter 4Building Geometry Models explains how to create a geometry en瑩ty simply with 
ver瑩ces and the drawing primi瑩ves defined within OSG.
Chapter 5Managing Scene Graph is all about the implementa瑩on of a typical scene graph 
using OSG, and shows the usages of the various types of scene graph nodes with special 
focus on some commonly-used node types.
Chapter 6Crea瑩ng Realis瑩c Rendering Effects introduces some basic knowledge about OSG 
implementa瑩on of rendering states, texture mapping, shaders, and the render-to-texture 
technique.
Chapter 7Viewing the World shows the means by which developers can encapsulate the 
cameras, manipulators, and stereo supports, and have them work together.
Chapter 8Anima瑩ng Scene Objects shows OSG's capability of crea瑩ng animated graphic 
presenta瑩ons by using the built-in anima瑩on library, and showcases the implementa瑩ons 
of path anima瑩ons, vertex-level anima瑩ons, state and texture anima瑩ons, and character 
anima瑩ons that a 3D applica瑩on can use.
Chapter 9Interac瑩ng with Outside Elements focuses on the implementa瑩on of human 
computer interac瑩on using OSG, including input device handling and GUI toolkit integra瑩on.
Chapter 10Saving and Loading Files explains in detail the working mechanism of reading 
and wri瑩ng scene data, and gives 瑩ps for crea瑩ng user-customized I/O plugins.
VB.NET TIFF: .NET TIFF Printer Control; Print TIFF Using VB.NET
TIFF document printing add-on has no limitation on VB.NET TIFF printing API will automatically send powerful & profession imaging controls, PDF document, image
break apart a pdf file; break pdf file into multiple files
C# Word: C#.NET Word Rotator, How to Rotate and Reorient Word Page
Remarkably, no other external products, including Microsoft page rotation control SDK will integrate the & profession imaging controls, PDF document, image to
break apart pdf; split pdf into multiple files
Preface
[
]
Chapter 11Developing Visual Components covers a wide range of advanced scene 
graph components, including billboards, texts, height mapped terrains, shadows, and  
volume rendering.
Chapter 12Improving Rendering Efficiency introduces the techniques necessary for building 
a fast real 瑩me rendering system. It helps users to load, organize, and render massive 
datasets in a very efficient manner.
What you need for this book
To use this book, you will need a graphics card with robust OpenGL support, with the latest 
OpenGL device driver from your graphics hardware vendor installed.
You will also need a working compiler that can transform C++source code into executable 
files. Some recommended ones include: 
.gcc
.mingw32
, and Visual Studio. For Windows 
users, there is a free Visual Studio Express Edi瑩on for use (
express/Windows/
). However, you should read the documenta瑩on in order to consider its 
limita瑩ons carefully.
Who this book is for
This book is intended for so晴ware developers who are new to OpenSceneGraph and are 
considering using it in their applica瑩ons. 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 pa瑴erns as implemented in C++ is 
also useful, but is not required.
You need to be familiar with OpenGL—the standard cross-pla瑦orm low-level 3D graphics  
API. We'll meet some math in the book, including geometry and linear algebra. Familiarity 
with these topics will be great, but you don't need to be a math whiz to use this book.
Conventions
In this book, you will find several headings appearing frequently.
To give clear instruc瑩ons of how to complete a procedure or task, we use:
Time for action – heading
1. 
Ac瑩on 1
2. 
Ac瑩on 2
3. 
Ac瑩on 3
Preface
[
]
Instruc瑩ons o晴en need some extra explana瑩on so that they make sense, so they are 
followed with:
What just happened?
This heading explains the working of tasks or instruc瑩ons that you have just completed.
You will also find some other learning aids in the book, including:
Pop quiz – heading
These are ques瑩ons intended to help you test your own understanding.
Have a go hero – heading
These set prac瑩cal challenges and give you ideas for experimen瑩ng with what you have 
learned.
You will also find a number of styles of text that dis瑩nguish between different kinds of 
informa瑩on. Here are some examples of these styles, and an explana瑩on of their meaning.
Code words in text are shown as follows: "CMake will generate an 
OpenSceneGraph.sln
file at the root of the build directory".
A block of code is set as follows: 
Any command-line input or output is wri瑴en as follows:
New terms and important words are shown in bold. Words that you see on the screen, in 
menus or dialog boxes for example, appear in the text like this: "Start the installer and you will 
see the Choosing Language dialog, the Welcome page, and the License Agreement page".
Warnings or important notes appear in a box like this.
Preface
[
]
Tips and tricks appear like this.
Reader feedback
Feedback from our readers is always welcome. Let us know what you think about this  
book—what you liked or may have disliked. Reader feedback is important for us to  
develop 瑩tles that you really get the most out of.
To send us general feedback, simply send an e-mail to 
, and 
men瑩on the book 瑩tle via the subject of your message.
If there is a book that you need and would like to see us publish, please send us a note in  
the SUGGEST A TITLE form on 
www.packtpub.com
or e-mail 
.
If there is a topic that you have exper瑩se in and you are interested in either wri瑩ng or 
contribu瑩ng to a book, see our author guide on 
.
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you 
to get the most from your purchase.
Downloading the example code for this book
You can download the example code files for all Packt books you have purchased 
from your account at . If you purchased this 
book elsewhere, you can visit  and 
register to have the files e-mailed directly to you.
Errata
Although we have taken every care to ensure the accuracy of our content, mistakes do 
happen. If you find a mistake in one of our books—maybe a mistake in the text or the  
code—we would be grateful if you would report this to us. By doing so, you can save other 
readers from frustra瑩on and help us improve subsequent versions of this book. If you 
find any errata, please report them by visi瑩ng 
selec瑩ng your book, clicking on the errata submission form link, and entering the details 
of your errata. Once your errata are verified, your submission will be accepted and the  
errata will be uploaded on our website, or added to any list of exis瑩ng errata, under the 
Errata sec瑩on of that 瑩tle. Any exis瑩ng errata can be viewed by selec瑩ng your 瑩tle from 
.
Preface
[
]
Piracy
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, 
we take the protec瑩on of our copyright and licenses very seriously. If you come across any 
illegal copies of our works, in any form, on the Internet, please provide us with the loca瑩on 
address or website name immediately so that we can pursue a remedy.
Please contact us at 
with a link to the suspected pirated 
material.
We appreciate your help in protec瑩ng our authors, and our ability to bring you valuable 
content.
Questions
You can contact us at 
if you are having a problem with any 
aspect of the book, and we will do our best to address it.
1
The Journey into 
OpenSceneGraph
Before looking into various rendering effects and playing with carefully selected 
code snippets, let us first get a glimpse of the history of OpenSceneGraph, learn 
about its structures and capabili瑩es, and join a web community to learn and 
discuss OSG online. You will also have the chance to create a "Hello World" 
applica瑩on in OSG style, through which you will gain necessary informa瑩on 
about OSG's syntax and structure.
In this book, OSG is short for OpenSceneGraph. It will be used from 瑩me to 
瑩me to replace OpenSceneGraph's full name, for convenience.
In this chapter, we will:
‹
Have a brief overview of the concept of scene graph and a history of OSG
‹
Look into the fundamental structure and features of the latest OSG distribu瑩on
‹
Have a first-hand taste of OSG with a very simple example
‹
Establish a fast connec瑩on for interac瑩ng with the OSG community
Documents you may be interested
Documents you may be interested