Bump mapping with object-space normal map

Bump mapping is one of the most favourite lighting methods being used today. It is easy to implement and produces high quality output with low poly models. It is also easy to apply with pixelbender shaders. First, shader calculates a bump mapped lighting, then combines it with a diffuse texture. After that single texture can be mapped to a mesh.

Dynamic textures


Texture objects can be easily updated with BitmapData.draw() method. Using different drawing sources like movieclips, videos, or even viewports produce various effects. For example, mapping a plane mesh with a properly rendered texture makes it a mirror.

Animation performance test

Skeletal animation requires lots of extra matrix operations that cut the performance off on the real time applications. Thanks to native Matrix3D class in flash player 10 it becomes quite faster now. In this example each one of sixteen models randomly plays a subsequence of a longer animation.

The next feature of the animation player will be blending. This will produce smooth transitions between animations. Finally partial blending will be added. In short, partial blending enables to play shooting animation fo the upper body while the lower body playing the walking sequence.

My ThreeDee library – First encounter

Here is the first example of my 3d library. Its development is in very early phase. There are features to add, methods to implement but it look promissing.

Here is a list of basic features:

Mesh

  • Import from ms3d file
  • Supports static and animated(with skeleton) meshes
  • Triangle grouping for faster sort(concave, convex, or both)

Material

  • All native filters can be applied
  • Extendable material interface
  • Currently implemented materials:
    • Wireframe
    • Solid( Color as diffuse source )
    • Textured ( Bitmap as diffuse source )
    • Bumpmapped and Solid( with object space normal maps)
    • Bumpmapped and Textured( with object space normal maps)

Animation

  • Import animation from ms3d files
  • Plays all or a part of animation sequence
  • Animation speed can be scaled

Light

  • Only directional light supported for now

Viewport

  • Bitmap caching