SlideShare a Scribd company logo
Stage3D Survival Guide:
Руководство по выживанию:


 Choosing the fittest Flash 3D engine on earth for
                 your AAA game.

                  By Michael Ivanov.
About Me.
Немного обо мне.
•
    Ivanov Michael,31,Israel.

•
    Lead Programmer R&D,Neurotech Solutions LTD and Geek.

•
    The Author of ”Away3D 3.6 Cookbook” by Packt Publishing.

•
    Spare Time:Stage3D,Unity,UnrealEngine,OpenGL.

•
    Visit my tech blog:http://blog.alladvanced.net
About you.
Немного о вас.
The problem.
Суть проблемы.
Neurotech Solutions Ltd: Рекомендации по Stage3D: выбор наиболее подходящего Flash 3D движка для Вашей {первой} AAA игры
Available Stage3D powered frameworks.
Движки работающие на основе Stage3D.
3D Engines.
ü
    Alternativa3D-free,binary distribution.

ü
    Flare3D-commercial,binary distribution.

ü
    Away3D-free,open source.

ü
    Yogurt3D-free,open source.

ü
    Noob3D-commercial,binary distribution.

ü
    Proscenium-free,open source by Adobe.

ü
    Minko-free,open source.

ü
    ND3D-free,open source.

ü
    And some more…
2D Engines



ü
    ND2D-free,open source.

ü
    Starling Framework-free , open source.

ü
    M2D(Discontinued?)-free , open source.
Particle Engines



ü
     FLINT Particles-robust particle engine .Free, open source.

ü
     ND2D –basic particles system.Free,open source.

ü
     Starling-basic particles system.Free,open source.




    Flint demo
3D Engines: Which is the best?
Какой движок самый лучший?
None!
Не один из них!
Each one wins or looses in one or more of
           these categories:
Каждый из них проигрывает в одной или более
          следующих категориях:



ü
    Performance.(Производительность.)
ü
    Features. (Функциональность)
ü
    Learning Curve.(Сложность изучения)
ü
    Productiveness.(Продуктивность)
ü
    Customization.(Специальные настройки)
ü
    Support. (Техническая поддержка)
ü
    Costs.(Затраты)
Performance.
Производительность.
Away3D             Alternativa3D




                     Flare3D




Performance demo
907200 Triangles




Skin performance demo
Features.
Функциональность.
Basic system modules in a typical 3D engine:


ü
     External assets handling.

ü
     Lightning system.

ü
     Rendering system.

ü
     Materials library & composing tools.

ü
     Primitives library.

ü
     Physics, AI, Particle engines.

ü
     Network.

ü
     GUI
External assets handling

          Away3D                  Alternativa3D   Flare3D
                          Geometry Formats
3DS       Yes                     Yes             No
Native          AWD1,AWD2                   A3D             F3D
Collada   No                      Yes             Yes
Bones     MD5.MD2                 Collada         F3D,Collada
Native    Maya ,Blender           3Ds Max only    3Ds Max only
plugin
Lightning system



              Away3D        Alternativa3D   Flare3D

Directional   Yes           Yes             Yes

Point(Omni)   Yes           Yes             Yes

Spot          No            Yes             No

Ambient       No            Yes             Yes
Material Library



                 Away3D           Alternativa3D   Flare3D
Wireframe        Yes              Yes             No
Color            Yes              Yes             Yes
Bitmap           Yes              Yes             Yes
Environment      Yes              ?               Yes
Video            Yes              Yes             Yes
Animated         Yes              Yes             Yes


Multi-material   ?                Yes             Yes
surfaces
Custom Shaders   AGAL             AGAL            FLSL Filters
Geometry types

                  Away3D       Alternativa3D        Flare3D

Cube              Yes          Yes                  Yes

Sphere            Yes          Yes                  Yes

Plane             Yes          Yes                  Yes

Cone              Yes          No                   Yes

Cylinder          Yes          No                   Yes

Capsule           Yes          No                   No

Line Segments     Yes          Yes(via WireFrame)   Yes (via Lines3D)

Sprite            Yes          Yes                  No

Animated Sprite   Yes          Yes                  No(via filter only)
Physics,AI,Particles



            Away3D                       Alternativa3D        Flare3D

Built-in    Away Bullet (alchemy)        Under dev            Under dev

3td party   JigLib                       JigLib               JigLib

AI          AwaySteer(OpenSteer) under   No                   No
            dev

Particles   Native,FLINT                 FLINT,Native(under   Native,FLINT
                                         dev?)
Learning Curve.
Сложность изучения.
Mastering a Flash 3D engine.
              Осваиваем 3D движок.


ü
    The APIs follow the same basic 3D engine paradigm.

ü
    Experience with the previous versions helps a lot.

ü
    Previous game development and Math experience
    contribute to the learning process.
Productiveness.
Продуктивность.
Flare3D.




ü
    “Flare3D Studio” (World editor IDE).

ü
    FLSL –GLSL like shader coding,AGAL free.

ü
    “For Dummies” like API.
Flare3D Studio IDE




           Character model by courtesy of Roman Zinchenko
                      http://www.wix.com/zinche/zra


Flare Studio demo
Flare3D Shading Language




ü
    FLSL =AGAL Abstraction.

ü
    GLSL/CG look.
OpenGL 3.3 GLSL                                                             Flare3D V2 FLSL

  #version 330

  layout(location = 0) in vec4 position;
  layout(location = 1) in vec4 color;
                                                                         < namespace:"flare", name:"TextureFilter" >
  smooth out vec4 theColor;
  uniform vec3 offset;                                                   public texture "texture";
  uniform mat4 perspectiveMatrix;                                        public float1 alpha = 1;
                                                                         input UV0 uv0;
  void main()                                                            interpolated float4 iUV;
  {
  vec4 cameraPos = position + vec4(offset.x, offset.y, offset.z, 0.0);   private void vertex0()
  gl_Position = perspectiveMatrix * cameraPos;                           {
  theColor = color;                                                      iUV = uv0;
  }                                                                      }

                                                                         private float4 fragmentTexture0()
                                                                         {
                                                                         return sample( "texture", iUV.xy, "2d,repeat,linear,miplinear" ) *
                                                                         alpha;
                                                                         }
  #version 330

  smooth in vec4 theColor;                                               technique “main"
                                                                         {
  out vec4 outputColor;                                                         vertex vertex0();
                                                                                fragment fragmentTexture0();
  void main()                                                            }
  {
    outputColor = theColor;
  }


FLSL Demos
Code Modularity.
                                    Компактный код .
        Alternativa3D vs Flare3D Skin Animation set up code
                              samples
private function loadModel():void{                       private function loadModel():void{
   var loaderCollada:URLLoader = new URLLoader();        model =
   loaderCollada.dataFormat =                            scene.addChildFromFile( "assets/spyAnim.f3d“,scene);
URLLoaderDataFormat.TEXT;                                scene.addEventListener( Scene3D.COMPLETE_EVENT,
   loaderCollada.load(new                                completeEvent );
URLRequest("assets/SpyAnimCollada.DAE"));                }
 loaderCollada.addEventListener(Event.COMPLETE,          private function completeEvent(e:Event):void
onColladaLoad);                                          {
}                                                          scene.resume();
                                                           model.play();
private function onColladaLoad(e:Event):void {
                                                         }
   var parser:ParserCollada = new ParserCollada();
   parser.parse(XML((e.target as URLLoader).data),
"assets/");
   var mesh:Skin = parser.getObjectByName("spy") as
Skin;
   mesh.y =0;
   container.addChild(mesh);
   var animSwtich:AnimationSwitcher=new
AnimationSwitcher();
   var animClip:AnimationClip=parser.animations[0];
   var animAll:AnimationClip=animClip.slice(0,870/30);
   animContr=new AnimationController();
   animContr.root=animSwtich;
   for each (var resource:Resource in
scene.getResources(true)) {
        resource.upload(stage3D.context3D);
   }
}
Away3D.




ü
    Compact API ,but not like Flare3D.

ü
    Prefab3D- Visual IDE V2 .still under development.

ü
    Away3D 3x users benefit from smooth portability.
Customization.
Специальные настройки.
ü
       Open Source is the winner!

   ü
       Flare3D loans engine’s source code for payment.

   ü
       Alternativa3D -?




Kinect demo
Away3D core adjustments example

                                            Vector3D to screen fix:
Adding code to lens:
public function projectToScreenSpace(point3d:Vector3D,screenW:Number,screenH:Number):Point{
  var p:Point=new Point();
  var v:Vector3D=matrix.transformVector(point3d);
  p.x=((v.x*screenW)/(2*v.w))+screenW*0.5;
  p.y=(-(v.y*screenH)/(2*v.w))+screenH*0.5;
  return p;
}



 Adding code to Camera3D:
public function projectToScreen(point3d : Vector3D,screenW:Number,screenH:Number) : Point
{
return lens.projectToScreenSpace(inverseSceneTransform.transformVector(point3d),screenW,screenH);
}



Using:

var screenPoint:Point=_view.camera.projectToScreen(sp.position,_view.width,_view.height);
Technical Support.
Техническая поддержка.
ü
    Away3D has much larger community and learning
    materials like books and tutorials , than others.

ü
    Four books dedicated to Away3D development.

ü
    Away3D and Flare3D-both supply professional
    support for payment.
Costs.
Затраты.
Some “out-of-the-Flash” thoughts.
Размышление о других направлениях.
Neurotech Solutions Ltd: Рекомендации по Stage3D: выбор наиболее подходящего Flash 3D движка для Вашей {первой} AAA игры
Conclusion.
Подведем итоги.
Away3D = Features .(Функциональность)

Alternativa3D = Industrial Quality.(Высокое качество)

Flare3D = Ease of Use.( Удобство эксплуатации)
But what really matters …
Но самое главное - это...
Determination to make a great game!
  Желание создать лучшую игру!
Thank you!
Спасибо большое!

More Related Content

PPTX
Flash Gamm 2011,"Stage3D survival guide"
PPT
Java 5 Features
PDF
openFrameworks freakDay S03E02 Diederick Huijbers - C++/Physics/Cloth Animati...
PDF
Getting rid of backtracking
PDF
Building DSLs with Xtext - Eclipse Modeling Day 2009
PDF
Aspect oriented programming_with_spring
KEY
Java Performance MythBusters
PDF
CodeFest 2010. Иноземцев И. — Fantom. Cross-VM Language
Flash Gamm 2011,"Stage3D survival guide"
Java 5 Features
openFrameworks freakDay S03E02 Diederick Huijbers - C++/Physics/Cloth Animati...
Getting rid of backtracking
Building DSLs with Xtext - Eclipse Modeling Day 2009
Aspect oriented programming_with_spring
Java Performance MythBusters
CodeFest 2010. Иноземцев И. — Fantom. Cross-VM Language

What's hot (7)

PDF
Audio SPU Presentation
PDF
Minko stage3d workshop_20130525
PPTX
Getting started with C# Programming
PDF
Javascript the Language of the Web
ODP
jsbasics-slide
PPTX
Building native Android applications with Mirah and Pindah
Audio SPU Presentation
Minko stage3d workshop_20130525
Getting started with C# Programming
Javascript the Language of the Web
jsbasics-slide
Building native Android applications with Mirah and Pindah
Ad

Viewers also liked (17)

PDF
Play with AIR for Android
PDF
2011.05.27 ACC 기술세미나 : Adobe Flash Builder 4.5를 환경에서 Molehill 3D를 이용한 개발 소개
KEY
Getting Some Perspective: Away 3D 4.0 & Friends by Rob Bateman
DOCX
Some Useful Flash API
PDF
AwayJS - Open Source Workflow for WebGL
PDF
Away3d: A million little triangles
PDF
Tom Krcha: Building Games with Adobe Technologies
PDF
New adventures in 3D
PPTX
Away3D 4.1 パーティクル入門
PDF
Away3D update
PDF
Rob Bateman: Away3D for the accelerated age
PDF
Starling Deep Dive
PDF
Realtime 3D on the web - a toy or a useful tool?
PDF
Adobe gaming today tomorrow Trento
PDF
Augmented Reality with Open Source Software
PDF
Away3d workshop slides
KEY
theFactor.e 3D
Play with AIR for Android
2011.05.27 ACC 기술세미나 : Adobe Flash Builder 4.5를 환경에서 Molehill 3D를 이용한 개발 소개
Getting Some Perspective: Away 3D 4.0 & Friends by Rob Bateman
Some Useful Flash API
AwayJS - Open Source Workflow for WebGL
Away3d: A million little triangles
Tom Krcha: Building Games with Adobe Technologies
New adventures in 3D
Away3D 4.1 パーティクル入門
Away3D update
Rob Bateman: Away3D for the accelerated age
Starling Deep Dive
Realtime 3D on the web - a toy or a useful tool?
Adobe gaming today tomorrow Trento
Augmented Reality with Open Source Software
Away3d workshop slides
theFactor.e 3D
Ad

Similar to Neurotech Solutions Ltd: Рекомендации по Stage3D: выбор наиболее подходящего Flash 3D движка для Вашей {первой} AAA игры (20)

ZIP
Adobe AIR: Stage3D and AGAL
PDF
Casing3d opengl
PDF
Modern Graphics Pipeline Overview
PPT
CS 354 GPU Architecture
PPTX
COLLADA to WebGL (GDC 2013 presentation)
PDF
Ujug07presentation
PDF
iOS Visual F/X Using GLSL
PPTX
Making a game with Molehill: Zombie Tycoon
PDF
Getting Started with 3D Game Development on Nokia Series 40 Asha Phones
PPTX
Penn graphics
PPT
Anatomy of a Texture Fetch
PDF
WebGL 3D player
PDF
Starling基于stage3 d开发gpu加速的2d游戏
PDF
GeForce 8800 OpenGL Extensions
PPTX
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
PPTX
FGS 2011: Flash+ A Whole New Dimension for Games
PPTX
WebGL - It's GO Time
PDF
Stage3D and AGAL
PDF
Chameleon game engine
PPTX
COLLADA & WebGL
Adobe AIR: Stage3D and AGAL
Casing3d opengl
Modern Graphics Pipeline Overview
CS 354 GPU Architecture
COLLADA to WebGL (GDC 2013 presentation)
Ujug07presentation
iOS Visual F/X Using GLSL
Making a game with Molehill: Zombie Tycoon
Getting Started with 3D Game Development on Nokia Series 40 Asha Phones
Penn graphics
Anatomy of a Texture Fetch
WebGL 3D player
Starling基于stage3 d开发gpu加速的2d游戏
GeForce 8800 OpenGL Extensions
4,000 Adams at 90 Frames Per Second | Yi Fei Boon
FGS 2011: Flash+ A Whole New Dimension for Games
WebGL - It's GO Time
Stage3D and AGAL
Chameleon game engine
COLLADA & WebGL

More from DevGAMM Conference (20)

PPTX
The art of small steps, or how to make sound for games in conditions of war /...
PPTX
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
PPTX
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
PPTX
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
PPTX
AI / ML for Indies / Tyler Coleman (Retora Games)
PDF
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
PPTX
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
PDF
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
PDF
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
PDF
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
PDF
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
PDF
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
PDF
How to increase wishlists & game sales from China? Growth marketing tactics &...
PDF
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
PDF
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
PPTX
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
PDF
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
PPTX
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
PPTX
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
PPTX
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...
The art of small steps, or how to make sound for games in conditions of war /...
Breaking up with FMOD - Why we ended things and embraced Metasounds / Daniel ...
How Audio Objects Improve Spatial Accuracy / Mads Maretty Sønderup (Audiokine...
Why indie developers should consider hyper-casual right now / Igor Gurenyov (...
AI / ML for Indies / Tyler Coleman (Retora Games)
Agility is the Key: Power Up Your GameDev Project Management with Agile Pract...
New PR Tech and AI Tools for 2023: A Game Changer for Outreach / Kirill Perev...
Playable Ads - Revolutionizing mobile games advertising / Jakub Kukuryk (Popc...
Creative Collaboration: Managing an Art Team / Nastassia Radzivonava (Glera G...
From Local to Global: Unleashing the Power of Payments / Jan Kuhlmannn (Xsolla)
Strategies and case studies to grow LTV in 2023 / Julia Iljuk (Balancy)
Why is ASO not working in 2023 and how to change it? / Olena Vedmedenko (Keya...
How to increase wishlists & game sales from China? Growth marketing tactics &...
Turkish Gaming Industry and HR Insights / Mustafa Mert EFE (Zindhu)
Building an Awesome Creative Team from Scratch, Capable of Scaling Up / Sasha...
Seven Reasons Why Your LiveOps Is Not Performing / Alexander Devyaterikov (Be...
The Power of Game and Music Collaborations: Reaching and Engaging the Masses ...
Branded Content: How to overcome players' immunity to advertising / Alex Brod...
Resurrecting Chasm: The Rift - A Source-less Remastering Journey / Gennadii P...
How NOT to do showcase events: Behind the scenes of Midnight Show / Andrew Ko...

Recently uploaded (20)

PDF
August Patch Tuesday
PPTX
Tartificialntelligence_presentation.pptx
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Mushroom cultivation and it's methods.pdf
PPTX
OMC Textile Division Presentation 2021.pptx
PPTX
A Presentation on Artificial Intelligence
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
August Patch Tuesday
Tartificialntelligence_presentation.pptx
Accuracy of neural networks in brain wave diagnosis of schizophrenia
Network Security Unit 5.pdf for BCA BBA.
Group 1 Presentation -Planning and Decision Making .pptx
NewMind AI Weekly Chronicles - August'25-Week II
Advanced methodologies resolving dimensionality complications for autism neur...
Mushroom cultivation and it's methods.pdf
OMC Textile Division Presentation 2021.pptx
A Presentation on Artificial Intelligence
Building Integrated photovoltaic BIPV_UPV.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A comparative study of natural language inference in Swahili using monolingua...
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
Reach Out and Touch Someone: Haptics and Empathic Computing
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...

Neurotech Solutions Ltd: Рекомендации по Stage3D: выбор наиболее подходящего Flash 3D движка для Вашей {первой} AAA игры

  • 1. Stage3D Survival Guide: Руководство по выживанию:  Choosing the fittest Flash 3D engine on earth for your AAA game. By Michael Ivanov.
  • 3. Ivanov Michael,31,Israel. • Lead Programmer R&D,Neurotech Solutions LTD and Geek. • The Author of ”Away3D 3.6 Cookbook” by Packt Publishing. • Spare Time:Stage3D,Unity,UnrealEngine,OpenGL. • Visit my tech blog:http://blog.alladvanced.net
  • 7. Available Stage3D powered frameworks. Движки работающие на основе Stage3D.
  • 8. 3D Engines. ü Alternativa3D-free,binary distribution. ü Flare3D-commercial,binary distribution. ü Away3D-free,open source. ü Yogurt3D-free,open source. ü Noob3D-commercial,binary distribution. ü Proscenium-free,open source by Adobe. ü Minko-free,open source. ü ND3D-free,open source. ü And some more…
  • 9. 2D Engines ü ND2D-free,open source. ü Starling Framework-free , open source. ü M2D(Discontinued?)-free , open source.
  • 10. Particle Engines ü FLINT Particles-robust particle engine .Free, open source. ü ND2D –basic particles system.Free,open source. ü Starling-basic particles system.Free,open source. Flint demo
  • 11. 3D Engines: Which is the best? Какой движок самый лучший?
  • 13. Each one wins or looses in one or more of these categories: Каждый из них проигрывает в одной или более следующих категориях: ü Performance.(Производительность.) ü Features. (Функциональность) ü Learning Curve.(Сложность изучения) ü Productiveness.(Продуктивность) ü Customization.(Специальные настройки) ü Support. (Техническая поддержка) ü Costs.(Затраты)
  • 15. Away3D Alternativa3D Flare3D Performance demo
  • 18. Basic system modules in a typical 3D engine: ü External assets handling. ü Lightning system. ü Rendering system. ü Materials library & composing tools. ü Primitives library. ü Physics, AI, Particle engines. ü Network. ü GUI
  • 19. External assets handling Away3D Alternativa3D Flare3D Geometry Formats 3DS Yes Yes No Native AWD1,AWD2 A3D F3D Collada No Yes Yes Bones MD5.MD2 Collada F3D,Collada Native Maya ,Blender 3Ds Max only 3Ds Max only plugin
  • 20. Lightning system Away3D Alternativa3D Flare3D Directional Yes Yes Yes Point(Omni) Yes Yes Yes Spot No Yes No Ambient No Yes Yes
  • 21. Material Library Away3D Alternativa3D Flare3D Wireframe Yes Yes No Color Yes Yes Yes Bitmap Yes Yes Yes Environment Yes ? Yes Video Yes Yes Yes Animated Yes Yes Yes Multi-material ? Yes Yes surfaces Custom Shaders AGAL AGAL FLSL Filters
  • 22. Geometry types Away3D Alternativa3D Flare3D Cube Yes Yes Yes Sphere Yes Yes Yes Plane Yes Yes Yes Cone Yes No Yes Cylinder Yes No Yes Capsule Yes No No Line Segments Yes Yes(via WireFrame) Yes (via Lines3D) Sprite Yes Yes No Animated Sprite Yes Yes No(via filter only)
  • 23. Physics,AI,Particles Away3D Alternativa3D Flare3D Built-in Away Bullet (alchemy) Under dev Under dev 3td party JigLib JigLib JigLib AI AwaySteer(OpenSteer) under No No dev Particles Native,FLINT FLINT,Native(under Native,FLINT dev?)
  • 25. Mastering a Flash 3D engine. Осваиваем 3D движок. ü The APIs follow the same basic 3D engine paradigm. ü Experience with the previous versions helps a lot. ü Previous game development and Math experience contribute to the learning process.
  • 27. Flare3D. ü “Flare3D Studio” (World editor IDE). ü FLSL –GLSL like shader coding,AGAL free. ü “For Dummies” like API.
  • 28. Flare3D Studio IDE Character model by courtesy of Roman Zinchenko http://www.wix.com/zinche/zra Flare Studio demo
  • 29. Flare3D Shading Language ü FLSL =AGAL Abstraction. ü GLSL/CG look.
  • 30. OpenGL 3.3 GLSL Flare3D V2 FLSL #version 330 layout(location = 0) in vec4 position; layout(location = 1) in vec4 color; < namespace:"flare", name:"TextureFilter" > smooth out vec4 theColor; uniform vec3 offset; public texture "texture"; uniform mat4 perspectiveMatrix; public float1 alpha = 1; input UV0 uv0; void main() interpolated float4 iUV; { vec4 cameraPos = position + vec4(offset.x, offset.y, offset.z, 0.0); private void vertex0() gl_Position = perspectiveMatrix * cameraPos; { theColor = color; iUV = uv0; } } private float4 fragmentTexture0() { return sample( "texture", iUV.xy, "2d,repeat,linear,miplinear" ) * alpha; } #version 330 smooth in vec4 theColor; technique “main" { out vec4 outputColor; vertex vertex0(); fragment fragmentTexture0(); void main() } { outputColor = theColor; } FLSL Demos
  • 31. Code Modularity. Компактный код . Alternativa3D vs Flare3D Skin Animation set up code samples private function loadModel():void{ private function loadModel():void{ var loaderCollada:URLLoader = new URLLoader(); model = loaderCollada.dataFormat = scene.addChildFromFile( "assets/spyAnim.f3d“,scene); URLLoaderDataFormat.TEXT; scene.addEventListener( Scene3D.COMPLETE_EVENT, loaderCollada.load(new completeEvent ); URLRequest("assets/SpyAnimCollada.DAE")); } loaderCollada.addEventListener(Event.COMPLETE, private function completeEvent(e:Event):void onColladaLoad); { } scene.resume(); model.play(); private function onColladaLoad(e:Event):void { } var parser:ParserCollada = new ParserCollada(); parser.parse(XML((e.target as URLLoader).data), "assets/"); var mesh:Skin = parser.getObjectByName("spy") as Skin; mesh.y =0; container.addChild(mesh); var animSwtich:AnimationSwitcher=new AnimationSwitcher(); var animClip:AnimationClip=parser.animations[0]; var animAll:AnimationClip=animClip.slice(0,870/30); animContr=new AnimationController(); animContr.root=animSwtich; for each (var resource:Resource in scene.getResources(true)) { resource.upload(stage3D.context3D); } }
  • 32. Away3D. ü Compact API ,but not like Flare3D. ü Prefab3D- Visual IDE V2 .still under development. ü Away3D 3x users benefit from smooth portability.
  • 34. ü Open Source is the winner! ü Flare3D loans engine’s source code for payment. ü Alternativa3D -? Kinect demo
  • 35. Away3D core adjustments example Vector3D to screen fix: Adding code to lens: public function projectToScreenSpace(point3d:Vector3D,screenW:Number,screenH:Number):Point{ var p:Point=new Point(); var v:Vector3D=matrix.transformVector(point3d); p.x=((v.x*screenW)/(2*v.w))+screenW*0.5; p.y=(-(v.y*screenH)/(2*v.w))+screenH*0.5; return p; } Adding code to Camera3D: public function projectToScreen(point3d : Vector3D,screenW:Number,screenH:Number) : Point { return lens.projectToScreenSpace(inverseSceneTransform.transformVector(point3d),screenW,screenH); } Using: var screenPoint:Point=_view.camera.projectToScreen(sp.position,_view.width,_view.height);
  • 37. ü Away3D has much larger community and learning materials like books and tutorials , than others. ü Four books dedicated to Away3D development. ü Away3D and Flare3D-both supply professional support for payment.
  • 39. Some “out-of-the-Flash” thoughts. Размышление о других направлениях.
  • 42. Away3D = Features .(Функциональность) Alternativa3D = Industrial Quality.(Высокое качество) Flare3D = Ease of Use.( Удобство эксплуатации)
  • 43. But what really matters … Но самое главное - это...
  • 44. Determination to make a great game! Желание создать лучшую игру!