away3d workshop slides
DESCRIPTION
Slides from my gotoAndSki workshop (http://www.gotoandski.com)TRANSCRIPT
Workshop gotoAndSki(1);
Wednesday, June 16, 2010
Intro
3D in the Flash Player
Wednesday, June 16, 2010
Flash 3(D) faking it
Wednesday, June 16, 2010
Sandy 3D (2005)
Wednesday, June 16, 2010
Papervision3D (2006)
Wednesday, June 16, 2010
Away3D (2007)
Wednesday, June 16, 2010
• Alternativa Platform
• WireEngine3D
• ND3D
• Five 3D (vektor-basert)
• Sophie 3D
• DirectFlex
• Sharikura 3D
• Wick3D
• FreeSpin 3D
• Project3D
• Silverback3D
• Electric 3D
• Flare 3D
• Yogurt 3D
• Ambiera CopperCube
• NewX 3D
Other engines
Wednesday, June 16, 2010
3D engine in 10 lines
Making a basic engine isn’t hard
Wednesday, June 16, 2010
Why and why not make your own?
Wednesday, June 16, 2010
Engine comparisons
Why it’s difficult to compare
Wednesday, June 16, 2010
3D Engine Features
Sandy Papervision3D Away3D
Camera types
Material types
Shaders
Primitives
Advanced modeling
3D vectors
Import
Export
Unique features
Documentation
Engine pet
2 4 4
5 26 22
color, texture, phong, goraud, cel, outline color, texture, phong, goraud, cel, outline, bump
color, texture, phong, outline, flat, enviro, bump, normal map, fresnel, glass, lambert
11 7 29
Extrusions - Extrusions, Lathe, Explode, Weld, Mirror, Replicate, Merge, Bezier patch
- ✓ ✓
3DS, ASE, Collada, MD2 3DS, ASE, Collada, DAE, KMZ, MD2, Sketchup, SketchupCollada
3DS, ASE, Collada, Kmz, MD2, MD2Still, obj
- Collada Obj, AS3 class, elevation
Starfield, Actionscript 2 version Particles, ASCollada, bitmap effects Camera lenses, Blockers, NURBS,Triangle caching, facelink, Awaybuilder
★★☆☆☆ ★☆☆☆☆ ★★★☆☆
Cat Cow Turtle
Wednesday, June 16, 2010
Why Away3D?
• Constant development
• Solid base API
• Open Source
• Solid and supportive team
• Ease of use
• Documentation
• Technical features
Wednesday, June 16, 2010
Flash 3D limitations and how to live with them
Wednesday, June 16, 2010
Flash 3D competition X3D, Unity3D and O3D (WebGL)
Wednesday, June 16, 2010
Flash 3D limitations and how to love them
Wednesday, June 16, 2010
Flash has something important...
... that the others can only dream of!
Wednesday, June 16, 2010
Flash 3D strengths the upside
•98% install base
•Simple install for remaining 2%
•One player - endless options
•This is only the second generation...
Wednesday, June 16, 2010
Away3D flavors
Away3DAway3D Lite
Wednesday, June 16, 2010
Setting up for Away3D
http://away3d.com/downloads/http://away3d.googlecode.com/svn/
Flash Pro, FlashDevelop, Flash Builder, IntelliJ IDEA, FDT?
Wednesday, June 16, 2010
Checklist
✓Have created a Workshop folder?
✓Have downloaded Away3D source files?
✓Have added Away3D files to Workshop folder?
✓Have created an empty class in Workshop folder?
✓Have created a new FLA and set the new class as Document Class(Flash users only)?
✓Have copied the workshop files?
Wednesday, June 16, 2010
5 lines to get started
var view:View3D = new View3D({x:250,y:200});
addChild(view);
var sphere:Sphere = new Sphere();
view.scene.addChild(sphere);
view.render();
Wednesday, June 16, 2010
Complete class
package{ import away3d.containers.View3D; import away3d.primitives.Sphere; import flash.display.Sprite; [SWF(width="500", height="400", frameRate="60", backgroundColor="#FFFFFF")] public class T01_class extends Sprite { public function T01_class() { // create a viewport var view:View3D = new View3D({x:250,y:200}); addChild(view); // create a sphere and put it on the 3D stage var sphere:Sphere = new Sphere(); view.scene.addChild(sphere); // render the view view.render(); } }}
Wednesday, June 16, 2010
The viewport
View3DClipping
Wednesday, June 16, 2010
The Scene
Scene3D
Wednesday, June 16, 2010
The Cameras
Camera3DTargetCamera3DHoverCamera3DSpringCam
Lenses
Wednesday, June 16, 2010
Rendering
view.render()
Renderer.BASICRenderer.CORRECT_Z_ORDERRenderer.INTERSECTING_OBJECTS
Wednesday, June 16, 2010
Use your hand to think...Working in 3D
Wednesday, June 16, 2010
3D building blocks
VerticesFacesUV coordinates
Wednesday, June 16, 2010
Primitives
29 totalSome more useful than other
Wednesday, June 16, 2010
Primitives
PositioningMesh resolutionInverting facesBothsidedOwnCanvas
Wednesday, June 16, 2010
Tweening in 3D
Just as in 2D, just add the Z
Wednesday, June 16, 2010
ObjectContainer3D
For nesting objects
Wednesday, June 16, 2010
Pre-made models
SoftwareFormatsLoadingDebug tools
Wednesday, June 16, 2010
Light
Limits apply!
Wednesday, June 16, 2010
Materials
Color materialsBitmap materialsComposite materialsPixelBender shaders
Wednesday, June 16, 2010
Making models
from scratch
Wednesday, June 16, 2010
Planning
for expandability
Wednesday, June 16, 2010
UV Coordinates How mapping works
Wednesday, June 16, 2010
User Interaction
MouseKeyboard
Wednesday, June 16, 2010
Workshop exampleshttp://www.flashgamer.com/workshop/gotoAndSki/
Cooliris.as - (original plugin example)
Wednesday, June 16, 2010
Away3D resources
Away3D documentationhttp://away3d.com/livedocs/
Developers grouphttp://groups.google.com/group/away3d-dev
Away3Dhttp://away3d.com/
Flashmagazine tutorialshttp://www.flashmagazine.com/Tutorials/category/away3d/
Tartiflop tutorialshttp://blog.tartiflop.com/first-steps-in-away3d/
Advanced modeling tutorialshttp://blog.closier.nl/
Advanced texthttp://www.lidev.com.ar/?cat=3
Wednesday, June 16, 2010