| |
Back to BOOK PAGE
Table of ContentsPreface Chapter 1: Setting Up Chapter 2: Building Your First Application Chapter 3: Primitives Chapter 4: Materials Chapter 5: Cameras Chapter 6: Moving Things Around Chapter 7: Shading Chapter 8: External Models Chapter 9: Z-Sorting Chapter 10: Particles Chapter 11: Filters and Effects Chapter 12: 3D Vector Drawing and Text Chapter 13: Optimizing Performance Index
- Chapter 1: Setting Up
- Downloading Papervision3D
- Difference between compiled and non-compiled source code
- What is Subversion?
- What's inside the ZIP?
- And what's inside the SWC?
- Choosing between the SWC, the ZIP, and the SVN
- Downloading the non-compiled source using SVN
- Downloading the non-compiled source in the ZIP file
- Downloading the compiled source
- Configuring your authoring tool for Papervision3D
- Configuring Flash
- Set the path to the non-compiled source code in Flash (CS3 and CS4)
- Set the path to the compiled source code in Flash (Only CS4)
- Running an example in Flash
- Configuring Flex Builder and Flash Builder
- Importing an example project
- Setting the path to the non-compiled source code in Flex and Flash Builder
- Setting the path to the SWC in Flex and Flash Builder
- Running the example in Flex Builder and Flash Builder
- Where to find the Papervision3D documentation
- Summary
- Chapter 2: Building Your First Application
- Introduction to classes and object-oriented programming
- Creating a custom class
- Inheritance
- Working with the Document Class/Main Application File
- Setting up the document class for Flash
- Setting up the document class for Flex Builder and Flash Builder
- Basics of a 3D scene in Papervision3D
- Scene
- Camera
- Viewport
- 3D Objects
- Material
- Render engine
- Left-handed Cartesian coordinate system
- Creating a basic class for Papervision3D
- The basic document class
- Finalizing your first application
- Smart programmers use less code
- Preparing for the book examples
- Working with the BookExampleTemplate class
- Chapter 3: Primitives
- The basic elements of 3D objects
- The rendering pipeline
- Creating and adding primitives
- Plane
- Sphere
- Cylinder
- Cone
- Cube
- PaperPlane
- Arrow
- Nesting
- World space versus local space
- Creating a pivot point with DisplayObject3D
- Accessing vertices
- Example—building a sphere of spheres
- Chapter 4: Materials
- Introduction to materials
- Basic materials
- Wireframe material
- Color material
- Three ways of using bitmaps as a material
- BitmapMaterial
- Using a bitmap shape as material that is generated by code
- Manually loading and assigning an external bitmap as material
- BitmapFileMaterial
- BitmapAssetMaterial
- Two ways of using a movie clip as material
- MovieMaterial
- MovieAssetMaterial
- VideoStreamMaterial
- Combining materials
- Interactivity
- Material interactivity
- Using ButtonMode
- Defining the event listeners
- Tips and tricks
- Tiling
- Flipping your material
- Power of two textures
- Example—creating a carousel
- Summary
- Chapter 5: Cameras
- Cameras inherit from DisplayObject3D
- Basic camera settings
- Focus and field of view
- Zoom
- Zoom, focus, and field of view relate to each other
- Near and far
- Camera types
- The target camera
- The free camera
- Demonstrating the difference between the free camera and the target camera
- Switching between the free camera and the target camera
- The debug camera
- The spring camera
- Adding basic navigation
- Putting the spring camera to work
- Setting a target with the lookAt() method
- Culling
- Types of culling in 3D computer graphics
- Two levels of culling in Papervision3D
- Applying frustum culling
- Applying culling on viewport level
- Seeing culling at work
- Clipping
- Clipping in Papervision3D with FrustumClipping
- Seeing frustum clipping at work
- Culling and clipping in the rendering pipeline
- Chapter 6: Moving Things Around
- What can we move around?
- How can we move things around?
- Rotating objects
- Alternatives for local rotation—pitch(), yaw(), and roll()
- Another type of rotation—rotationX, rotationY, and rotationZ
- Demonstrating the difference between rotation and local rotation
- Mouse interaction
- Getting the distance from the mouse to the center of the stage
- Basic mouse interaction
- Mouse interaction with easing
- Using mouse interaction to rotate an object
- Orbiting the camera around an object
- Orbiting the camera by moving the mouse
- Orbiting the camera by dragging the mouse
- Clamping the camera rotation
- Animating with Tweener
- Downloading Tweener
- Tweening 3D objects
- Tweening the camera over a curved path
- Example—the galaxy extended
- Creating a class for user input
- Creating a class for the galaxy
- Creating a class for the paper plane
- Initializing the application in our document class
- Controlling the camera
- Adding dynamic zoom
- Adding a third-person camera
- Adding a first-person camera
- Adding random camera perspectives
- Switching back to the default view
- Chapter 7: Shading
- Introduction to shading
- Flat shading
- FlatShadeMaterial for color-based shading
- FlatShader for bitmap-based shading
- Gouraud shading
- Cell shading
- Phong shading
- Bumping your materials
- Reflection mapping
- Example—shading the Earth in our galaxy
- Adding a shader and a bump map
- Chapter 8: External Models
- Modeling for Papervision3D
- Keep your polygon count low
- Add polygons to resolve artifacts
- Keep your textures small
- Use textures that Flash can read
- Use UV maps
- Baking textures
- Use recognizable names for objects and materials
- Size and positioning
- Finding the balance between quality and performance
- Creating a template class to load models
- Creating models in Autodesk 3ds Max and loading them into Papervision3D
- Installing COLLADA Max
- Creating the Utah teapot and export it for Papervision3D
- Importing the Utah teapot into Papervision3D
- Exporting and importing the Utah teapot in 3ds format
- Importing animated models
- Creating and loading models using SketchUp
- Exporting a model from Google's 3D Warehouse for Papervision3D
- Importing a Google Earth model into Papervision3D
- Creating and loading models using Blender
- Exporting a textured cube from Blender into Papervision3D
- Keeping control over your materials
- Summary
- Chapter 9: Z-Sorting
- What is z-sorting
- The painter's algorithm
- Sorting triangles
- Layering your renders
- Creating a viewport layer
- Creating a viewport layer using useOwnContainer
- Creating and sorting a viewport layer using getChildLayer
- Creating a viewport layer by instantiating a new ViewportLayer
- Sorting layers
- Sorting layers with ViewportLayerSortMode.Z_SORT
- Sorting layers with ViewportLayerSortMode.ORIGIN_SORT
- Sorting layers with ViewportLayerSortMode.INDEX_SORT
- Creating and sorting sublayers
- Quadtree rendering
- Summary
- Chapter 10: Particles
- What particles are and why to use them
- Billboarding
- Particle systems
- Creating particles
- A template class for all the examples
- ParticleMaterial
- BitmapParticleMaterial
- Using a dynamically drawn bitmap as BitmapParticleMaterial
- Passing a ParticleBitmap instance to the BitmapParticleMaterial constructor
- Using a loaded bitmap as BitmapParticleMaterial
- MovieAssetParticleMaterial
- Creating an animated movie clip for Flash, Flex Builder, and Flash Builder
- Exporting the animated clip as an SWC for Flex Builder and Flash Builder to use
- Creating the document class for Flash, Flex Builder, and Flash Builder
- Adding interactivity to MovieAssetParticleMaterial
- Embedding a bitmap in Flex Builder and Flash Builder as the source of MovieAssetParticleMaterial
- Creating particle fields with the ParticleField class
- Particles don't have to be tiny—a billboard example
- The Flint particle system
- Downloading the Flint particle system
- Creating a fountain of shiny balls with Flint
- The emitter
- The counter
- Initializers
- Actions
- The renderer
- Chapter 11: Filters and Effects
- What are filters and effects?
- Using Flash filters to create effects
- Applying BlurFilter, DropShadowFilter, and GlowFilter to a 3D object
- Setting the transparency and blend mode of a viewport layer
- Changing filters, alpha, and blend mode dynamically
- Applying filters on viewport level
- Directly apply filters to the entire viewport
- Apply filters on viewport level with BitmapViewport3D
- Built-in Papervision3D effects
- Creating an effect layer
- Methods to affect the way the effect is displayed
- Adding a color effect with BitmapColorEffect
- Adding a fire effect with BitmapFireEffect
- Adding a pixelating effect with BitmapPixelateEffect
- Adding a motion effect with BitmapMotionEffect
- Adding a Flash filter as an effect with BitmapLayerEffect
- Combining effects
- Adjusting the effect with BitmapDrawCommand
- Adding fog with FogFilter
- Adding reflection with ReflectionView
- Adding objects with no reflection
- Example—creating depth of field
- Summary
- Chapter 12: 3D Vector Drawing and Text
- VectorVision: 3D vector text and drawing
- Creating a template class for the 3D text examples
- How to create and add 3D text
- Font creation
- Adding interactivity to 3D vector text and shapes
- Adding interactivity to 3D text
- Drawing vector shapes—lines, circles, and rectangles
- Drawing lines with Lines3D
- How drawing with Lines3D works
- Straight lines
- Curved lines
- Adding lines with addNewLine()
- Creating segmented lines
- Adding interactivity to Lines3D lines
- Growing lines example
- Chapter 13: Optimizing Performance
- Measuring performance
- Basic optimization strategies
- Stage quality
- Other general Flash optimizations
- Destroy unwanted objects
- Viewport size
- Camera frustum and field of view
- Culling
- Creative thinking
- Optimizing materials
- Transparency
- Tiled
- Power of two textures
- Material size
- Animated materials
- Optimizing objects
- Remove objects that are behind other objects
- Level of detail
- Optimizing shading
- Optimizing rendering
- Only render when you need to
- Selective rendering
- Viewport scaling
Back to BOOK PAGE
| |
|