Top Banner
Jean-Marc Le Roux @promethe42 http://blogs.aerys.in/jeanmarc-leroux
65

Minko stage3d 20130222

Jul 15, 2015

Download

Technology

Minko3D
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Minko stage3d 20130222

Jean-Marc Le Roux promethe42 httpblogsaerysinjeanmarc-leroux

Resources

Sources httpsgithubcomaerysminko

Forum httpanswersaerysin

Samples httpgithubcomaerysminko-examples

Documentation httphubaerysinindexphpMinkoTutorials httphubaerysinminkoreferenceindexhtml

Minko SDKs

Community SDK Free and open

source framework Free tools

Minko SDKs

Professional SDK Advanced Features

Community SDK Free and open

source framework Free tools

PART 1 SCRIPTING Community SDK

The bigger the app the cleaner you want to be

should

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 2: Minko stage3d 20130222

Resources

Sources httpsgithubcomaerysminko

Forum httpanswersaerysin

Samples httpgithubcomaerysminko-examples

Documentation httphubaerysinindexphpMinkoTutorials httphubaerysinminkoreferenceindexhtml

Minko SDKs

Community SDK Free and open

source framework Free tools

Minko SDKs

Professional SDK Advanced Features

Community SDK Free and open

source framework Free tools

PART 1 SCRIPTING Community SDK

The bigger the app the cleaner you want to be

should

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 3: Minko stage3d 20130222

Minko SDKs

Community SDK Free and open

source framework Free tools

Minko SDKs

Professional SDK Advanced Features

Community SDK Free and open

source framework Free tools

PART 1 SCRIPTING Community SDK

The bigger the app the cleaner you want to be

should

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 4: Minko stage3d 20130222

Minko SDKs

Professional SDK Advanced Features

Community SDK Free and open

source framework Free tools

PART 1 SCRIPTING Community SDK

The bigger the app the cleaner you want to be

should

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 5: Minko stage3d 20130222

PART 1 SCRIPTING Community SDK

The bigger the app the cleaner you want to be

should

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 6: Minko stage3d 20130222

The bigger the app the cleaner you want to be

should

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 7: Minko stage3d 20130222

I ndash or someone else ndash already did this I want to re-use the existing code

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 8: Minko stage3d 20130222

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 9: Minko stage3d 20130222

ISceneNode

Mesh Camera Group Light

AbstractController

ISceneNodeaddController()

AnimationController AbstractScriptController

DataProvider

ISceneNodebindingsaddDataProvider()

CameraDataProvider LightDataProvider M

odel

Co

ntro

ller

View

Material

MyScript

To create a script Extend AbstractScriptController Override the update() method

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 10: Minko stage3d 20130222

You can keep working the way you want You donrsquot have to use scripts or controllers

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 11: Minko stage3d 20130222

But with scripts amp controllershellip

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 12: Minko stage3d 20130222

Re-usable loosely coupled code Target multiple scene nodes with a single script Easily build and share your own library of useful scripts Easily fetch and use the communities code snippets

only 1 script var kbScript KeyboardMoveScript = new KeyboardMoveScript() but it controls 2 targets cubeaddController(kbScript) sphereaddController(kbScript)

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 13: Minko stage3d 20130222

Easy access to Mousekeyboard properties and signals time deltaTime Scene A lot of other properties useful to script stuffhellip

if the right arrow key is downhellip if (keyboardkeyIsDown(KeyboardRIGHT)) targettransformappendTranslation(1)

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 14: Minko stage3d 20130222

Similar to EventENTER_FRAME but Lighter Customisable per-script laquo frame rate raquo

execute this script only once per second thisframerate = 1

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 15: Minko stage3d 20130222

Example move objects with the keyboard

public class KeyboardMoveController extends AbstractScriptController override protected function update(target ISceneNode) void

if (keyboardkeyIsDown(KeyboardRIGHT))

targettransformappendTranslation(1)

if (keyboardkeyIsDown(KeyboardLEFT))

targettransformappendTranslation(-1)

if (keyboardkeyIsDown(KeyboardUP))

targettransformappendTranslation(0 1)

if (keyboardkeyIsDown(KeyboardDOWN))

targettransformappendTranslation(0 -1)

if (keyboardkeyIsDown(KeyboardPAGE_UP))

targettransformappendTranslation(0 0 1)

if (keyboardkeyIsDown(KeyboardPAGE_DOWN))

targettransformappendTranslation(0 0 -1)

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 16: Minko stage3d 20130222

Usage

instanciate the script var kbScript KeyboardMoveScript = new KeyboardMoveScript()

add the script to a target

cubeaddController(kbScript)

remove the script from a target

cuberemoveController(kbScript)

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 17: Minko stage3d 20130222

More about scripts and controllershellip

Write your first controller A Script To Move Objects With The Keyboard Handle Mouse Focus With A Script Switching Material With a Controller Create Procedural 3D Animations

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 18: Minko stage3d 20130222

PART 2 SHADERS AND GPU PROGRAMMING

Community SDK

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 19: Minko stage3d 20130222

HDR Rendering Dynamic lights

Static lights Dynamic shadows

Static shadows Diffuse texture

Noise

Diffuse texture

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 20: Minko stage3d 20130222

Kids this is the story of how I met your shaderhellip

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 21: Minko stage3d 20130222

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Evolution of shader languages

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 22: Minko stage3d 20130222

What about AGAL

1992 2001 2004 2011

Mortal Kombat GTA III Doom 3 Crysis 2

1996

Language Features

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 23: Minko stage3d 20130222

In 1992 Flash was called FutureSplash Animator and written by a single man Jonathan Gay

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 24: Minko stage3d 20130222

learning AGAL = learning GPU programming AGAL is awesome for 3D engines developers Low-level binary assembly code Cross-platform

AGAL is a nightmare for 3D applications

developers

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 25: Minko stage3d 20130222

With Minko you can program the GPU using ActionScript 30

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 26: Minko stage3d 20130222

Minko embedded JIT Compiler

Shader ByteCode ActionScript Shader Code

public class MyShader public function getVertexPosition() SFloat return localToScreen(vertexXYZ) public function getPixelColor() SFloat return sampleTexture( meshBindingsgetTextureParameter(lsquotexturersquo) interpolate(vertexUV) )

m44 vt0 va0 vc0 m44 vt0 vt0 vc5 mov oc vt0 mov v0 va1 tex ft0 v0 ltlinear2dgt mov oc ft0

at runtime compilation

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 27: Minko stage3d 20130222

ActionScript Shader

bullUse all ActionScript 30 features bullgetOutputPosition =gt Vertex Shader bullgetOutputColor =gt Fragment Shader bullOOP style bullCPUGPU balancing

ASG

bullAbstract Shader Graph bullOptimizations bullConstants and temporary registers allocation bullOperations re-ordering for faster execution and optimal use of temporary registers

AGAL

bullDirect bytecode generation at runtime bullCustom compiler bullOptional debug data bullAGAL assembly output bullShader graph output bullMemory allocation map

Exec

utio

n

Full AS3 workflow Conditionnals and loops Classes and methods Dynamic OOP coding style

Exhaustive AGAL implementation

Extra high-level operations set Re-usable laquo shader parts raquo

Shaders compiled at-runtime

Just like any other AS3 code

Dynamic according to The scene properties The mesh propertiesmaterial Any constant variable etchellip

Redistributable as SWFSWC files

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 28: Minko stage3d 20130222

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 29: Minko stage3d 20130222

AC TIONSCRIPT IS NOW THE MOST POWERFUL S H A D E R L A N G U A G E

(as a language but not GPU feature wise because of Stage3D limitations )

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 30: Minko stage3d 20130222

More about shadershellip

JIT shaders for better performance Create your first shader Understanding vertex to fragment

interpolation Get ActionScript shaders compilations logs Create a shader rendering per-pixel normals Create a laquo black and white raquo post-processing

effect

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 31: Minko stage3d 20130222

PART 3 SCENE EDITOR Community SDK

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 32: Minko stage3d 20130222

WYSIWYG Editor

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 33: Minko stage3d 20130222

Fine tuning

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 34: Minko stage3d 20130222

Flash Pro-like symbols

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 35: Minko stage3d 20130222

dae 3ds obj hellip

Common File Formats

Publish MK Scenes

hellip

editor

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 36: Minko stage3d 20130222

MK File Format

Fully optimized for Minko More suitable for webmobile apps in general Binary Light Zip deflate or LZMA

Readable with AS3 PHP C++ and JavaScript

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 37: Minko stage3d 20130222

More about the editorhellip

Normal mapping and specular maps Importing Collada files

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 38: Minko stage3d 20130222

PROFESSIONAL SDK

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 39: Minko stage3d 20130222

Minko SDKs

Professional SDK

Community SDK

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 40: Minko stage3d 20130222

After this slide nothing is neither free nor open source (for nowhellip )

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 41: Minko stage3d 20130222

PART 1 PHYSICS Professional SDK

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 42: Minko stage3d 20130222

Fast robust and extensible Create new kind of forces force fieldshellip Add specialized shapes and collision detection

algorithms

Comprehensive set of shapes Box sphere cone cylinderhellip Triangle mesh Convex hull Heightmap

Triggers for scripting

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 43: Minko stage3d 20130222

listen to the CollidercollisionStarted signal redGoalCollidercollisionStartedadd( function (collision CollisionStarted) void _numPointB++ resetBall() ) do the same for CollidercollisionStoppedhellip

Working with triggers

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 44: Minko stage3d 20130222

Best practice implement triggers using scripts You will soon be able to bind them directly in the editor

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 45: Minko stage3d 20130222

PART 2 OPTIMIZATIONS FOR THE WEB AND MOBILE DEVICES

Professional SDK

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 46: Minko stage3d 20130222

MK Optimizations A new file format for 3D content Readable with AS3 PHP C++ and JavaScript

Optimized for the web Lossy and lossless 3D compression 3D streaming (WIP)

Optimized for mobile devices Automated shape-conservative 3D simplification Fast implementation Automated ATF compression for textures

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 47: Minko stage3d 20130222

dae 3ds obj hellip

Common File Formats

Publish Optimized MK Scenes

hellip

editor Automated optimizations

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 48: Minko stage3d 20130222

0

5000

10000

15000

20000

25000

30000

35000 dae

dae (rar)

obj

obj (rar)

3ds

mk

mk (simplification)

mk (compression)

mk (compression +simplification)

3D formats size comparison (lower is better)

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 49: Minko stage3d 20130222

3D formats comparison

0

20

40

60

80

100

120

140

File Size (MB) Downloading Time(seconds)

Parsing Time(seconds)

OriginalMK

(lower is better)

Collada

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 50: Minko stage3d 20130222

3D Scene Automated optimizations

ATF compression Texture resizing 3D simplification 3D compression

Publish

x10 faster rendering

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 51: Minko stage3d 20130222

3D Scene Automated optimizations

ATF compression 3D compression 3D streaming (WIP)

Publish

x20 faster download

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 52: Minko stage3d 20130222

3D Scene

Build your scene once publish it for each device automatically

myScenemks

myMobileScenemk

myWebScenemk

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 53: Minko stage3d 20130222

Simplification is also very cool to create multiple level of details for the same scene

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 54: Minko stage3d 20130222

Next

Public beta next week Everything for free (for nowhellip) Give us feedback

ShaderLab integration

httpwwwyoutubecomwatchv=yuR1e1PjU8Y

Editor plugins

Artificial intelligence frameworkeditor

Particles frameworkeditor

Animations editor

Terrain editor

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci
Page 55: Minko stage3d 20130222

MERCI

  • Slide Number 1
  • Resources
  • Minko SDKs
  • Minko SDKs
  • Part 1 scripting
  • Slide Number 6
  • Slide Number 7
  • Slide Number 8
  • Slide Number 9
  • Slide Number 10
  • Slide Number 11
  • Slide Number 12
  • Slide Number 13
  • Slide Number 14
  • Slide Number 15
  • Example move objects with the keyboard
  • Usage
  • More about scripts and controllershellip
  • Part 2 Shaders and GPU programming
  • Slide Number 20
  • Slide Number 21
  • Evolution of shader languages
  • What about AGAL
  • Slide Number 24
  • Slide Number 25
  • Slide Number 26
  • Slide Number 27
  • Slide Number 28
  • Slide Number 29
  • Slide Number 30
  • Slide Number 31
  • More about shadershellip
  • Part 3 Scene Editor
  • WYSIWYG Editor
  • Fine tuning
  • Flash Pro-like symbols
  • Slide Number 37
  • Slide Number 38
  • Slide Number 39
  • MK File Format
  • More about the editorhellip
  • Professional sdk
  • Minko SDKs
  • Slide Number 44
  • Part 1 Physics
  • Slide Number 46
  • Slide Number 47
  • Slide Number 48
  • Slide Number 49
  • Slide Number 50
  • Slide Number 51
  • Slide Number 52
  • Working with triggers
  • Slide Number 54
  • Part 2 Optimizations for the web and mobile devices
  • MK Optimizations
  • Slide Number 57
  • 3D formats size comparison
  • 3D formats comparison
  • Slide Number 60
  • Slide Number 61
  • Slide Number 62
  • Slide Number 63
  • Next
  • Merci