View
764
Download
3
Category
Preview:
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
MERCI
Recommended