舉報

會員
OpenSceneGraph 3.0: Beginner's Guide
最新章節:
Index
Writtenwithafast-pacedbutfriendlyandengagingapproach,thisPacktBeginner'sGuideisdesignedtobeplacedalongsidethecomputerasyourguideandmentor.Step-by-steptutorialsarebolsteredbyexplanationsofthereasoningbehindwhatyouaredoing.Youwillquicklypickupthenecessaryskills,tips,andtricksforcreatingsuccessful3Dgraphicswithpracticalexamplesthathelpyoutolearnbyexperimentandplay.ThisbookisintendedforsoftwaredeveloperswhoarenewtoOpenSceneGraphandconsideringusingitintheirapplications.ItisassumedthatyouhavebasicknowledgeofC++beforeusingthisbook,especiallythestandardtemplatelibrary(STL)constructs,ofwhichOSGmakesextensiveuse.SomefamiliaritywithdesignpatternsasimplementedinC++isalsouseful,butisnotrequired.YouneedtobefamiliarwithOpenGL,thestandardcross-platformlow-level3DgraphicsAPI.We'llmeetsomemathsinthebook—geometryandlinearalgebra—andfamiliaritywiththesetopicswillbegreat,butyoudon'tneedtobeamathswhiztousethisbook.
- Index 更新時間:2021-03-27 00:36:28
- Chapter 12
- Chapter 11
- Chapter 10
- Chapter 9
- Chapter 8
- Chapter 7
- Chapter 6
- Chapter 5
- Chapter 4
- Chapter 3
- Chapter 2
- Appendix A. Pop quiz—Answers
- Summary
- Time for action—building a quad-tree for massive rendering
- Making use of the quad-tree
- Paging huge scene data
- Time for action—sharing textures with a customized callback
- Improving your application
- Time for action—adding occluders to a complex scene
- Occluders and occludees
- Dynamic scene culling
- Time for action—switching between different threading models
- Understanding multithreaded rendering
- Time for action—using a separate data receiver thread
- OpenThreads basics
- Chapter 12. Improving Rendering Efficiency
- Summary
- Playing with more NodeKits
- Time for action—drawing the outline of models
- Implementing special effects
- Time for action—receiving and casting shadows
- Creating shadows on the ground
- Time for action—building a fountain in the scene
- Creating particle animations
- Time for action—creating texts in the world space
- Creating 3D texts
- Time for action—writing descriptions for the Cessna
- Creating texts
- Time for action—creating banners facing you
- Creating billboards in a scene
- Chapter 11. Developing Visual Components
- Summary
- Time for action—creating serializers for user-defined classes
- Creating serializers
- Serializing OSG native scenes
- Time for action—designing and parsing a new file format
- Handling the data stream
- Writing your own plugins
- Time for action—adding libcurl support for OSG
- Configuring third-party dependencies
- Time for action—reading files from the Internet
- The pseudo-loader
- Supported file formats
- Discovery of specified extension
- Understanding file I/O plugins
- Chapter 10. Saving and Loading Files
- Summary
- Time for action—attaching OSG with a window handle in Win32
- Integrating OSG into a window
- Time for action—configuring the traits of a rendering window
- The Traits class
- Windows graphics contexts and cameras
- Time for action—clicking and selecting geometries
- Intersection
- Picking objects
- Time for action—creating a user timer
- Adding customized events
- Time for action—driving the Cessna
- Handling mouse and keyboard inputs
- Various events
- Chapter 9. Interacting with Outside Elements
- Summary
- Time for action—creating and driving a character system
- Loading and rendering characters
- Time for action—managing animation channels
- Channels and animation managers
- Creating complex key-frame animations
- Time for action—rendering a flashing spotlight
- Playing movies on textures
- Time for action—fading in
- Changing rendering states
- Time for action—making use of the animation path
- Animating the transformation nodes
- Understanding ease motions
- Time for action—drawing a geometry dynamically
- Avoiding conflicting modifications
- Time for action—switching nodes in the update traversal
- List of callbacks
- Taking references to functions
- Chapter 8. Animating Scene Objects
- Summary
- Time for action—drawing aircrafts on a loaded terrain
- Frame buffer pixel buffer and FBO
- Rendering to textures
- Time for action—rendering anaglyph stereo scenes
- Stereo visualization
- Time for action—enabling global multisampling
- Changing global display settings
- Time for action—rendering more scenes at one time
- Using a composite viewer
- Time for action—customizing the simulation loop
- Digging into the simulation loop
- Using a single viewer
- Time for action—creating an HUD camera
- Rendering order of cameras
- The Camera class
- From world to screen
- Chapter 7. Viewing the World
- Summary
- Time for action—generating a Bezier curve
- Working with the geometry shader
- Time for action—implementing a cartoon cow
- Using uniforms
- Understanding graphics shaders
- Time for action—achieving the translucent effect
- Handling rendering order
- Time for action—loading and applying 2D textures
- The basis of texture mapping
- The Image class
- Time for action—creating light sources in the scene
- Lights and light sources
- Time for action—applying simple fog to models
- Playing with fixed-function effects
- Time for action—lighting the glider or not
- Inheriting render states
- Time for action—setting polygon modes of different nodes
- Attributes and modes
- Encapsulating the OpenGL state machine
- Chapter 6. Creating Realistic Rendering Effects
- Summary
- Time for action—analyzing the Cessna structure
- Visiting scene graph structures
- The visitor design pattern
- Time for action—animating the switch node
- Customizing your own NodeKits
- Time for action—loading a model at runtime
- Proxy and paging nodes
- Time for action—constructing a LOD Cessna
- Level-of-detail nodes
- Time for action—switching between the normal and damaged Cessna
- Switch nodes
- Time for action—performing translations of child nodes
- The MatrixTransform class
- Understanding the matrix
- Transformation nodes
- Traversing the scene graph
- Time for action—adding models to the scene graph
- Managing parent nodes
- The Group interface
- Chapter 5. Managing Scene Graph
- Summary
- Time for action—creating the famous OpenGL teapot
- Using OpenGL drawing calls
- Implementing your own drawables
- Time for action—collecting triangle faces
- Customizing a primitive functor
- Rereading geometry attributes
- Time for action—tessellating a polygon
- Using polygonal techniques
- Time for action—drawing an octahedron
- Indexing primitives
- Time for action—drawing a colored quad
- Specifying drawing types
- Vertices and vertex attributes
- Storing array data
- Time for action—quickly creating simple objects
- Rendering basic shapes
- Geode and Drawable classes
- How OpenGL draws objects
- Chapter 4. Building Geometry Models
- Summary
- Time for action—saving the log file
- Redirecting the notifier
- Tracing with the notifier
- Time for action—reading the model filename from the command line
- Parsing command-line arguments
- Time for action—monitoring counted objects
- Tracing the managed entities
- Collecting garbage: why and how
- ref_ptr<> and Referenced classes
- Understanding memory management
- Time for action—improving the "Hello World" example
- Using a root node
- Time for action—building applications with CMake
- Constructing your own projects
- Chapter 3. Creating Your First OSG Program
- Summary
- Configuring environment variables
- Time for action—building with a UNIX makefile
- Generating packages using gcc
- Time for action—building with a Visual Studio solution
- Generating packages using Visual Studio
- Setting up options
- Time for action—running CMake in GUI mode
- Starting CMake
- Cross-platform building
- Prebuilts making trouble?
- Time for action—creating your solution with one click
- Using the project wizard
- Time for action—playing with osgviewer
- Running utilities
- Time for action—installing OSG
- Using the installer
- System requirements
- Chapter 2. Compilation and Installation of OpenSceneGraph
- Summary
- Live in community
- Time for action—say "Hello World" OSG style
- Have a quick taste
- Who uses OSG?
- Why OSG?
- Components
- The Birth and development of OSG
- Scene graphs
- A quick overview of rendering middleware
- Chapter 1. The Journey into OpenSceneGraph
- Customer support
- Reader feedback
- Time for action—heading
- Conventions
- Who this book is for
- What you need for this book
- What this book covers
- Preface
- Support files eBooks discount offers and more
- www.PacktPub.com
- About the Reviewers
- Acknowledgement
- About the Authors
- Foreword
- Credits
- OpenSceneGraph 3.0
- 封面
- 封面
- OpenSceneGraph 3.0
- Credits
- Foreword
- About the Authors
- Acknowledgement
- About the Reviewers
- www.PacktPub.com
- Support files eBooks discount offers and more
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Time for action—heading
- Reader feedback
- Customer support
- Chapter 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
- Live in community
- Summary
- Chapter 2. Compilation and Installation of OpenSceneGraph
- System requirements
- Using the installer
- Time for action—installing OSG
- Running utilities
- Time for action—playing with osgviewer
- Using the project wizard
- Time for action—creating your solution with one click
- Prebuilts making trouble?
- Cross-platform building
- Starting CMake
- Time for action—running CMake in GUI mode
- Setting up options
- Generating packages using Visual Studio
- Time for action—building with a Visual Studio solution
- Generating packages using gcc
- Time for action—building with a UNIX makefile
- Configuring environment variables
- Summary
- Chapter 3. Creating Your First OSG Program
- Constructing your own projects
- Time for action—building applications with CMake
- Using a root node
- Time for action—improving the "Hello World" example
- Understanding memory management
- ref_ptr<> and Referenced classes
- Collecting garbage: why and how
- Tracing the managed entities
- Time for action—monitoring counted objects
- Parsing command-line arguments
- Time for action—reading the model filename from the command line
- Tracing with the notifier
- Redirecting the notifier
- Time for action—saving the log file
- Summary
- Chapter 4. Building Geometry Models
- How OpenGL draws objects
- Geode and Drawable classes
- Rendering basic shapes
- Time for action—quickly creating simple objects
- Storing array data
- Vertices and vertex attributes
- Specifying drawing types
- Time for action—drawing a colored quad
- Indexing primitives
- Time for action—drawing an octahedron
- Using polygonal techniques
- Time for action—tessellating a polygon
- Rereading geometry attributes
- Customizing a primitive functor
- Time for action—collecting triangle faces
- Implementing your own drawables
- Using OpenGL drawing calls
- Time for action—creating the famous OpenGL teapot
- Summary
- Chapter 5. Managing Scene Graph
- The Group interface
- Managing parent nodes
- Time for action—adding models to the scene graph
- Traversing the scene graph
- Transformation nodes
- Understanding the matrix
- The MatrixTransform class
- Time for action—performing translations of child nodes
- Switch nodes
- Time for action—switching between the normal and damaged Cessna
- Level-of-detail nodes
- Time for action—constructing a LOD Cessna
- Proxy and paging nodes
- Time for action—loading a model at runtime
- Customizing your own NodeKits
- Time for action—animating the switch node
- The visitor design pattern
- Visiting scene graph structures
- Time for action—analyzing the Cessna structure
- Summary
- Chapter 6. Creating Realistic Rendering Effects
- Encapsulating the OpenGL state machine
- Attributes and modes
- Time for action—setting polygon modes of different nodes
- Inheriting render states
- Time for action—lighting the glider or not
- Playing with fixed-function effects
- Time for action—applying simple fog to models
- Lights and light sources
- Time for action—creating light sources in the scene
- The Image class
- The basis of texture mapping
- Time for action—loading and applying 2D textures
- Handling rendering order
- Time for action—achieving the translucent effect
- Understanding graphics shaders
- Using uniforms
- Time for action—implementing a cartoon cow
- Working with the geometry shader
- Time for action—generating a Bezier curve
- Summary
- Chapter 7. Viewing the World
- From world to screen
- The Camera class
- Rendering order of cameras
- Time for action—creating an HUD camera
- Using a single viewer
- Digging into the simulation loop
- Time for action—customizing the simulation loop
- Using a composite viewer
- Time for action—rendering more scenes at one time
- Changing global display settings
- Time for action—enabling global multisampling
- Stereo visualization
- Time for action—rendering anaglyph stereo scenes
- Rendering to textures
- Frame buffer pixel buffer and FBO
- Time for action—drawing aircrafts on a loaded terrain
- Summary
- Chapter 8. Animating Scene Objects
- Taking references to functions
- List of callbacks
- Time for action—switching nodes in the update traversal
- Avoiding conflicting modifications
- Time for action—drawing a geometry dynamically
- Understanding ease motions
- Animating the transformation nodes
- Time for action—making use of the animation path
- Changing rendering states
- Time for action—fading in
- Playing movies on textures
- Time for action—rendering a flashing spotlight
- Creating complex key-frame animations
- Channels and animation managers
- Time for action—managing animation channels
- Loading and rendering characters
- Time for action—creating and driving a character system
- Summary
- Chapter 9. Interacting with Outside Elements
- Various events
- Handling mouse and keyboard inputs
- Time for action—driving the Cessna
- Adding customized events
- Time for action—creating a user timer
- Picking objects
- Intersection
- Time for action—clicking and selecting geometries
- Windows graphics contexts and cameras
- The Traits class
- Time for action—configuring the traits of a rendering window
- Integrating OSG into a window
- Time for action—attaching OSG with a window handle in Win32
- Summary
- Chapter 10. Saving and Loading Files
- Understanding file I/O plugins
- Discovery of specified extension
- Supported file formats
- The pseudo-loader
- Time for action—reading files from the Internet
- Configuring third-party dependencies
- Time for action—adding libcurl support for OSG
- Writing your own plugins
- Handling the data stream
- Time for action—designing and parsing a new file format
- Serializing OSG native scenes
- Creating serializers
- Time for action—creating serializers for user-defined classes
- Summary
- Chapter 11. Developing Visual Components
- Creating billboards in a scene
- Time for action—creating banners facing you
- Creating texts
- Time for action—writing descriptions for the Cessna
- Creating 3D texts
- Time for action—creating texts in the world space
- Creating particle animations
- Time for action—building a fountain in the scene
- Creating shadows on the ground
- Time for action—receiving and casting shadows
- Implementing special effects
- Time for action—drawing the outline of models
- Playing with more NodeKits
- Summary
- Chapter 12. Improving Rendering Efficiency
- OpenThreads basics
- Time for action—using a separate data receiver thread
- Understanding multithreaded rendering
- Time for action—switching between different threading models
- Dynamic scene culling
- Occluders and occludees
- Time for action—adding occluders to a complex scene
- Improving your application
- Time for action—sharing textures with a customized callback
- Paging huge scene data
- Making use of the quad-tree
- Time for action—building a quad-tree for massive rendering
- Summary
- Appendix A. Pop quiz—Answers
- Chapter 2
- Chapter 3
- Chapter 4
- Chapter 5
- Chapter 6
- Chapter 7
- Chapter 8
- Chapter 9
- Chapter 10
- Chapter 11
- Chapter 12
- Index 更新時間:2021-03-27 00:36:28