khronos press update€¦ · - improved portability and testability • adds many clarifications...

17
© Copyright Khronos Group 2013 | Page 1 Khronos Press Update Neil Trevett Khronos President Vice President Mobile Content, NVIDIA March 2013

Upload: others

Post on 25-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 1

Khronos Press Update

Neil Trevett Khronos President

Vice President Mobile Content, NVIDIA March 2013

Page 2: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 2

Significant 3D Ecosystem Announcements

Creating the Industry’s most portable and secure 3D

execution platform

Creating the Industry’s most portable and reliable 3D asset

interchange format

Connecting the two with a new 3D run-time asset transmission format – glTF. A standards-based content pipeline for rich

native and Web 3D applications

Page 3: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 3

Creating a Web-ready 3D Platform

JavaScript Bindings to OpenGL ES 2.0 Functionality

Native platform 3D APIs

Extra run-time checks and API/language

restrictions for security

Bug reporting and fixing

Additional native API functions for security

Additional handling of multi-tasking and pre-emption in silicon

Page 4: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 4

Fully Compliant WebGL 1.0.1 Shipping! • Browser and GPU vendors working closely together

- Resolving GPU driver issues across multiple platforms

• Chrome 25 and Firefox 19 now 100% WebGL compliant

- Windows, Mac, Linux

• NVIDIA has first fully compliant Android WebGL browser on Tegra

- getContext("webgl") will now start to be supported

• Others to follow!

- Special thanks to AMD, Intel, NVIDIA, Chrome, Firefox and Safari teams, Mesa

A major cooperative milestone in bringing the

power of the GPU to the Web

Page 5: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 5

WebGL 1.0.2 in Ratification - Reliability • Significantly tightens specified behavior

- Improved portability and testability

• Adds many clarifications for specification behavioral precision

- Principally thanks to Mozilla

• Mandates support for certain combinations of framebuffer formats

- Eases developer adoption

• Clarifies interactions with the encompassing HTML5 platform

- Including the browser compositor and high-DPI displays

• Increases the number of conformance tests to 21,000 from 8,900

- To improve both the breadth and depth of test coverage - thanks principally to

work by Gregg Tavares at Google and the OpenGL ES working group

• Expecting formal release at end of April

Page 6: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 6

New WebGL Extensions in Ratification • Also expecting to be released in April

• JavaScript-level debugging of WebGL API calls and shaders

• Query to ensure lost context events are handled correctly

- Such as when a mobile device is powered off when WebGL is executing

• Additional 3D functionality from the OpenGL ES 2.0 ecosystem

- Anisotropic filtering, standard derivatives and vertex array objects

Page 7: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 7

COLLADA is Now ISO Standard • COLLADA is now an ISO Standard

- COLLADA 1.5.0 has been published as ISO PAS 17506 by ISO SC4 TC184

- “… to enable developers to create tools to process COLLADA resources to import to

or export from digital content creation (DCC) applications, 3D interactive

applications and tool chains, prototyping tools, real-time visualization applications”

• Provides a reliable, long-term international standard

- For 3D asset authoring and interchange

Page 8: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 8

OpenCOLLADA Import/Export • OpenCOLLADA upgraded and released as open source on Github

- High-quality, full functionality COLLADA importer/exporter

- Available free-of-charge for tools vendors to integrate

- https://github.com/KhronosGroup/OpenCOLLADA

• COLLADA conformance test suite released on GitHub

- Enables tools vendors, and their users, to test for conformant COLLADA IO

- https://github.com/KhronosGroup/COLLADA-CTS

No excuses left for low quality

COLLADA import/export!

Page 9: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 9

3D Needs a Transmission Format • Compression and streaming of 3D assets becoming essential

- Mobile and connected devices need access to increasingly large asset databases

• 3D is the last media type to define a compressed format

- 3D is more complex – diverse asset types and use cases

• Need to handle sophisticated 3D assets and scenes

- Scenegraph, geometry, textures, materials, animations…

Audio Video Images 3D

MP3 H.264 JPEG ? !

An effective and widely adopted codec ignites previously unimagined opportunities for a media type

Page 10: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 10

Authoring and Runtime 3D Formats • COLLADA solves interchange problem, but is NOT a format for rendering

- XML-text based, human readable but not optimized for size

- Requires significant processing to render COLLADA models with GL APIs

• Developers typically use custom conditioning pipelines

- To convert COLLADA to proprietary runtime formats

- No standardized methods for asset streaming or compression

• Losing advantages of a cross vendor standardized run-time format

- Optimized codec implementations in software or hardware

- Portable, reusable content

- Size-optimized asset stores, repositories and archives

Proprietary Run-time formats

Rendering

Custom Conditioner

Maya

Blender

Authoring Interchange

Apps

Page 11: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 11

glTF – OpenGL Transmission Format • glTF is a final-stage asset format driven by OpenGL APIs

- Bridges the gap between COLLADA and GL APIs

- OpenGL, OpenGL ES and WebGL

• Uses JSON to describe node hierarchy

- Platform neutral, many processing libraries available

• Node hierarchy refers to geometry, textures, materials, animations…

- Separate binary blob for geometry/texture assets

- Will enable parallel work on 3D asset streaming and compression

.json Node Hierarchy

.bin Vertices and

indices

.glsl Shaders

(materials)

astc, .png, .jpg, etc.

Textures

glTF File

Page 12: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 12

Building glTF • Khronos COLLADA working group driving the glTF specification design

- Draft specifications will be PUBLICLY available for industry review and feedback

• Prototype implementation: COLLADA2GLTF

- Uses OpenCOLLADA to convert COLLADA assets to JSON for use in WebGL

- Source uploaded on Github: https://github.com/KhronosGroup/glTF

• Format requirements driven by WebGL/OpenGL ES

- Unique indices buffer, requires shaders, split meshes > 65536 indices…

- Buffers description compliant with typed arrays

- Incorporate requirements from MPEG, Web3D and others

glTF

Rendering

COLLADA2GLTF

Maya

Blender

Authoring Interchange

Apps

JSON Scene Graph

Description

Open source sample

convertor

Page 13: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 13

Building a Complete Transmission Solution • gkTF is first step of three for complete 3D codec solution

- JSON Node Hierarchy encoding +

- REST3D APIs for Server/Client Negotiation +

- 3D Asset payload compression/streaming

3D Asset Server

3D Client

Encode 3D Asset Payload

Decode 3D Asset Payload

2. Use REST to negotiate asset selection, compression and streaming

1. Send JSON encoded scene graph

3. Compress and Stream Assets

Page 14: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 14

OpenGL 3D API Everywhere Desktop Windows Windows

Mac Linux

Mobile Android

iOS Blackberry

Ubuntu

Web Most desktops

Mobile in next 12 months

TV

EVERY Phone

Cars

Everywhere

Page 15: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 15

Thank you!

• Questions?

[email protected]

Page 16: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 16

WebGL 1.0.2 Ratification • A sweep through the specification for tightened behavior and clarifications for

improved application portability and enhanced security - WebGLHandlesContextLoss extended attribute to define context lost handling; tightened behavior

- Mandated certain combinations of framebuffer object attachments be supported

- Explicitly disallowed while and do-while loops in shaders

- Tightened behavior for out-of-range array accesses in shaders

- Tightened behavior when depth, stencil, or antialiased context creation attributes are false

- Clarified when drawing buffer is presented to HTML page compositor

- Specified behavior on high-DPI displays

- Many cleanups of IDL; most informed and verified by Mozilla

- Specified first pixel transferred during texImage2D taking HTML elements

- Specified texImage2D behavior with null pixels in a few more cases

- Clarified error for negative offset in vertexAttribPointer

- Clarified case-insensitivity of strings in getExtension

- Specified lack of default textures

- Enforced packing restrictions for uniforms and varyings

- Fixed bug in initial viewport

Page 17: Khronos Press Update€¦ · - Improved portability and testability • Adds many clarifications for specification behavioral precision - Principally thanks to Mozilla • Mandates

© Copyright Khronos Group 2013 | Page 17

WebGL Extensions • Specific WebGL extensions:

- WEBGL_debug_renderer_info

- WEBGL_debug_shaders

- WEBGL_lose_context

• Wrapping OpenGL ES Extensions

- OES_texture_float

- OES_texture_half_float

- WEBGL_compressed_texture_s3tc

- EXT_texture_filter_anisotropic

- OES_element_index_uint

- OES_standard_derivatives

- OES_vertex_array_object

- WEBGL_depth_texture