Molehill 3D

      :
About me
•       :

•       :

•           :     ,              ,        ,

•           : http://blog.jidolstar.com

•       : ACC, ACP,                       , Powerfl

•   :           SNS http://starpl.com
Goal


• Flash Player 11   Molehill 3D
  Adobe Flash Builder 4.5
                                  .
Adobe Flash Platform
Adobe Flash Builder 4.5

•   Eclipse    Flash              (IDE)

• Flex SDK, ActionScript 3.0
•
•                                (Java,
    ColdFusion, PHP, REST, SOAP )
Adobe Flash Player 11?

•          Flash Player

• Flash Player 11 Incubator
• http://labs.adobe.com/technologies/
  flashplatformruntimes/incubator
Molehill?
Molehill 3D?
•          2D        3D                    Flash Platform
    Runtime

•   low-level, GPU         3D API

•   Stage3D API

•           directX, Mac     Linux    OpenGL 1.3

•           OpenGL ES 2.0

•   z-buffering, stencil color buffer, fragment and vertex
    shader, cube textures
Molehill Performance
•           Flash Player      •   Molehill            Flash Player

    •              triangle       •              triangle


    •   z-buffer                  •   z-buffer


    •   GPU                       •   GPU


    •   30hz                      •   60Hz HD
Molehill Performance

• Display list                          2D
  http://www.bytearray.org/wp-content/projects/molehill2d/displaylist/


• Molehill                         2D
  http://www.bytearray.org/wp-content/projects/molehill2d/molehill/
Molehill 3D Demo


• http://blog.theflashblog.com/?p=2607
Molehill API
•   flash.display.DisplayObject

•          3D API                             API

•   Main Classes : Stage3D, Context3D

•   AGAL(Adobe Graphics Assembly Language)

•
    •   Flash Player 3D Future          : http://goo.gl/OpRKK

    •   Digging more into Molehill APIs : http://goo.gl/CXNH7

    •       API       : http://jidolstar.net/asdocs/incubator/
Main Classes
                        create/set
    Context3D                         Program3D


attach
                                       Texture3D      TextureCube3D

     Stage3D

                                     IndexBuffer3D
         Vector.<Stage3D>(4)


         Stage                       VertexBuffer3D
Stage3D Compositing
Stage3D Class
flash.display3D package
flash.display3D.textures
        package
VertexBuffer3D Class
           IndexBuffer3D Class


IndexBuffer3D                 1        2                4

VertexBuffer3D   XYZRGB   XYZRGB   XYZRGB   XYZRGB   XYZRGB   XYZRGB   ...
AGAL
•       Adobe Graphics Assembly Language

•       Adobe                           Low-level

•                (             )               /         /         /                 /                  /

•              binary bytecode, ByteArray

•       AGALMiniAssembler.as                            Pixel Bender 3D                                     AGAL

•         20            Opcodes
    •      Opcode[32] Destination[32] SourceA[64] Source[64]

    •      Data : MOV, SGE, SLT, ABS, NEG, SAT, MIN, MAX

    •      Arithmetic : ADD, SUB, MUL, DIV, RCP, RSQ, SQR, POW, LOG, EXP, SIN, COS, FRC, NRM, DP3, DP4, CRS, M44, M34, M33

    •      Special(Fragment only) : TEX, KIL


•       AGAL Register : AGAL Programs(sharders)                                                                              GPU

    •      Attribute Register, Constant Register, Temporary Register, Output Register,Varing Register, Texture Sampler


•       Program3D                               AGAL

    •      Vertex Program(Vertex Shader), Fragment Program(Pixel Shader)
Connecting the Pieces
Molehill Code Walkthrough
                                                                                                           Setup
                                                                                                           Render


GPU                  Stage3D[0]              Stage3D[1]           ...      Vector.<Stage3D>

                                               present()
                     requestContext3D()
                                                           setVertexBufferAt()   VertexBuffer3D
      setTexture()                                           drawTriangles()
                                                                                 IndexBuffer3D

  Texture3D                                                          createIndexBuffer()
                                            Context3D
                                                                                    createVertexBuffer()
TextureCube3D
                        createTexture()        clear()
                                               setProgram()
                                               setProgramContentsFromMatrix()          AGALMiniAssembler
                        createProgram()        setProgramContentsFromVector()
                                                                                       AGAL Vertex Program
                                                                upload()
                                          Program3D                                  AGAL Fragment Program
How does it work?
•   Low-Level Access
    •   flash.display3D package
    •   flash.displayStage3D class
    •   AGAL(Adobe Graphics Assembly Language)
•   High-Level Access
    •   Away3D, Alternativa 3D, Flare 3D, Sophie 3D,
        Minko, Coppercube,Yogurt3D, Zest3D, M2D, ND2D
Molehill 3D Development
      Environment
•           OS

    •   Win OS, Mac OS

•
    •   Flash Builder 4.5

•
    •   Flash Player Incubator       playerglobal.swc

    •   Flex 4.5 SDK

    •   (        )Away3D 4.0 Alpha

    •   (        )Alternative 3D 8
Useful Links


• http://goo.gl/pcIzG
When should you start
      studing?


 Right Now!
Let’s start
  http://goo.gl/uXuH2

2011.05.27 ACC 기술세미나 : Adobe Flash Builder 4.5를 환경에서 Molehill 3D를 이용한 개발 소개

  • 1.
  • 2.
    About me • : • : • : , , , • : http://blog.jidolstar.com • : ACC, ACP, , Powerfl • : SNS http://starpl.com
  • 3.
    Goal • Flash Player11 Molehill 3D Adobe Flash Builder 4.5 .
  • 4.
  • 5.
    Adobe Flash Builder4.5 • Eclipse Flash (IDE) • Flex SDK, ActionScript 3.0 • • (Java, ColdFusion, PHP, REST, SOAP )
  • 6.
    Adobe Flash Player11? • Flash Player • Flash Player 11 Incubator • http://labs.adobe.com/technologies/ flashplatformruntimes/incubator
  • 7.
  • 8.
    Molehill 3D? • 2D 3D Flash Platform Runtime • low-level, GPU 3D API • Stage3D API • directX, Mac Linux OpenGL 1.3 • OpenGL ES 2.0 • z-buffering, stencil color buffer, fragment and vertex shader, cube textures
  • 9.
    Molehill Performance • Flash Player • Molehill Flash Player • triangle • triangle • z-buffer • z-buffer • GPU • GPU • 30hz • 60Hz HD
  • 10.
    Molehill Performance • Displaylist 2D http://www.bytearray.org/wp-content/projects/molehill2d/displaylist/ • Molehill 2D http://www.bytearray.org/wp-content/projects/molehill2d/molehill/
  • 11.
    Molehill 3D Demo •http://blog.theflashblog.com/?p=2607
  • 12.
    Molehill API • flash.display.DisplayObject • 3D API API • Main Classes : Stage3D, Context3D • AGAL(Adobe Graphics Assembly Language) • • Flash Player 3D Future : http://goo.gl/OpRKK • Digging more into Molehill APIs : http://goo.gl/CXNH7 • API : http://jidolstar.net/asdocs/incubator/
  • 13.
    Main Classes create/set Context3D Program3D attach Texture3D TextureCube3D Stage3D IndexBuffer3D Vector.<Stage3D>(4) Stage VertexBuffer3D
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    VertexBuffer3D Class IndexBuffer3D Class IndexBuffer3D 1 2 4 VertexBuffer3D XYZRGB XYZRGB XYZRGB XYZRGB XYZRGB XYZRGB ...
  • 19.
    AGAL • Adobe Graphics Assembly Language • Adobe Low-level • ( ) / / / / / • binary bytecode, ByteArray • AGALMiniAssembler.as Pixel Bender 3D AGAL • 20 Opcodes • Opcode[32] Destination[32] SourceA[64] Source[64] • Data : MOV, SGE, SLT, ABS, NEG, SAT, MIN, MAX • Arithmetic : ADD, SUB, MUL, DIV, RCP, RSQ, SQR, POW, LOG, EXP, SIN, COS, FRC, NRM, DP3, DP4, CRS, M44, M34, M33 • Special(Fragment only) : TEX, KIL • AGAL Register : AGAL Programs(sharders) GPU • Attribute Register, Constant Register, Temporary Register, Output Register,Varing Register, Texture Sampler • Program3D AGAL • Vertex Program(Vertex Shader), Fragment Program(Pixel Shader)
  • 20.
  • 21.
    Molehill Code Walkthrough Setup Render GPU Stage3D[0] Stage3D[1] ... Vector.<Stage3D> present() requestContext3D() setVertexBufferAt() VertexBuffer3D setTexture() drawTriangles() IndexBuffer3D Texture3D createIndexBuffer() Context3D createVertexBuffer() TextureCube3D createTexture() clear() setProgram() setProgramContentsFromMatrix() AGALMiniAssembler createProgram() setProgramContentsFromVector() AGAL Vertex Program upload() Program3D AGAL Fragment Program
  • 22.
    How does itwork? • Low-Level Access • flash.display3D package • flash.displayStage3D class • AGAL(Adobe Graphics Assembly Language) • High-Level Access • Away3D, Alternativa 3D, Flare 3D, Sophie 3D, Minko, Coppercube,Yogurt3D, Zest3D, M2D, ND2D
  • 23.
    Molehill 3D Development Environment • OS • Win OS, Mac OS • • Flash Builder 4.5 • • Flash Player Incubator playerglobal.swc • Flex 4.5 SDK • ( )Away3D 4.0 Alpha • ( )Alternative 3D 8
  • 24.
  • 25.
    When should youstart studing? Right Now!
  • 26.
    Let’s start http://goo.gl/uXuH2