写点什么

苹果公司提出名为 WebGPU 的新 3D 图形标准

  • 2017-02-27
  • 本文字数:1134 字

    阅读完需:约 4 分钟

苹果公司提出了一个针对浏览器的新 GPU API,名为 WebGPU 。Google 也正在开发另一种解决方案,名为 NXT

主流浏览器在都支持部分 WebGL 协议,当渲染 3D 图形时,浏览器会使用 GPU 提供的一些特性。但是苹果公司认为这还不够,希望能够集合社区开发新的标准以利用最新 GPU 能力,并原生跨平台。因此,他们组织了一个 W3C Web 社区组织,名为 WebGPU

根据其章程,这个新的标准应该包含:

  • 一套可以完美映射到现代 Web 平台设计模式的 API
  • 一套可以更好发挥应用程序性能的较低级别 API
  • 一套能够跨多设备并将现代 GPU 计算功能暴露出来的 API
  • 一种可以在所有具有现代低级别图形 API 平台上实现新标准的技术

并且应该提供如下接口:

  • 允许在屏幕上和屏幕外的绘图区域渲染现代图形
  • 允许执行计算任务,并获取这些任务的结果
  • 定义一种着色语言(Shading Language),用以描述图形和计算任务,并能够被转换或者编译成平台特定指令

这些 API 应该能够在使用现有 GPU 库之上的主流操作系统中运行,包括 DirectX 12、Metal 和 Vulkan。

来自 WebKit 团队的 Dean Jackson 提供了 WebGPU 的一些细节,他提到苹果公司已经完成了概念验证实现,值得注意的是这仅仅是一个 Metal API 到 JavaScript 的映射,但是他们不希望和 Metal 图形框架捆绑。WebGPU 原型实现使用了 Metal 着色语言,但是最终“将会接受一个使用中间表示格式(Intermediate Representation, IR)的着色器,类似于 DirectX 中间语言(DirectX Intermediate Language,DXIL)和标准可移植中间表示(Standard Portable Intermediate Representation,SPIR-V)”。Jackson 也提到,目前“Metal 框架和 Vulkan、D3D12 框架还有一些不是非常兼容”。

跟随这苹果公司的倡议,Google 也提交了他们的提案和原型,称为 NXT 。该提案仍然在进行中,NXT 是一个跨平台 API,其灵感源自于 DirectX、Metal 和 Vulkan。这些 API 能够被 JavaScript 和 WebAssembly 调用,目前只能运行在 OpenGL 和 Metal 框架下。Google 可以通过 OpenGL“轻松的”将 NXT 整合到 Chromium 中,目前已经有一个创建了一个论证项目 NXT-Chromium 。NXT 使用 SPIR-V 作为着色语言。

一些评论提到,苹果公司试图推进这项的议程,他们应该支持 Vulkan (一个来自 Kronos 集团公司的开源 GPU API)。Jackson 回应说,Vulkan 没有他们所需要的广泛支持,并且其 API 对于 web 标准来说太过于底层。他重申,苹果公司无意推进他们的议程,并在社交媒体说道:“应该说明的是,WebGPU 只是我们提议的起点。其他浏览器引擎也有他们自己的提议。目前这些工作都在W3C 组织。”

的确,苹果公司能够影响但是无法决定一个可能会被所有主流浏览器支持的web 标准。最终标准仍将由W3C 工作组决定。

查看英文原文: Apple Proposes a New 3D Graphics Standard Called WebGPU

2017-02-27 18:003671

评论

发布
暂无评论
发现更多内容

LeetCode题解:220. 存在重复元素 III,暴力法,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

FastApi-15-文件上传-3

Python研究所

FastApi 8月日更

Seata TCC模式原理与实战

码农参上

分布式事务 seata SpringCloud Alibaba 8月日更

docker的使用

Rubble

8月日更

智能时代的信任口诀:让计算远离算计

白洞计划

百亿级分布式文件系统之元数据设计

焱融科技

云计算 技术 分布式 高性能 文件存储

导播上云,把 “虚拟演播厅” 搬到奥运村

阿里云CloudImagine

阿里云 视频处理 视频直播 视频云 云导播

【Flutter 专题】68 图解基本约束 Box (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

从0开始的TypeScriptの九:接口Interfaces · 中

空城机

typescript 大前端 8月日更

Spark RDD模型

Geek_qsftko

spark

Fastdata for TSDB: SQL使时序数据可扩展

数据库 大数据 时序数据库 tsdb 数据智能

用Java仿一个低配版的Everything软件

Regan Yue

Java 8月日更 Everything

Compose 中的主题

Changing Lin

8月日更

架构实战营毕业总结

林子钧

架构实战营 毕业总结

传统企业数字化转型的三大技术误区

码猿外

数字化转型 敏捷精益

为什么区块链是互联网的100倍?

CECBC

区块链技术:为什么说波卡能加速区块链行业的发展?

CECBC

讲透学烂二叉树(六):二叉树的笔试题:翻转|宽度|深度

zhoulujun

二叉树 二叉树遍历 二叉树翻转

架构实战营 - 模块五作业

思梦乐

你真的了解 fail-fast 和 fail-safe 吗

4ye

Java 后端 并发 map 8月日更

【Vue2.x 源码学习】第三十七篇 - 组件部分 - 组件的合并

Brave

源码 vue2 8月日更

趣说开源|学生如何参与开源社区?

SphereEx

数据库 开源

数据加密和BCrypt哈希算法应用 | StartDT Tech Lab 15

奇点云

OpenYurt 联手 eKuiper,解决 IoT 场景下边缘流数据处理难题

阿里巴巴云原生

云计算 阿里云 开源 云原生 中间件

Excelize 发布 2.4.1 版本,新增并发安全支持

xuri

Excel Go 语言 Excelize #Github

Go语言:如何通过Go来更好的开发并发程序 ?

微客鸟窝

Go 语言

Python入门:ChainMap 有效管理多个上下文

华为云开发者联盟

Python 字典 上下文 映射 ChainMap

悄悄学习Doris,偷偷惊艳所有人 | Apache Doris四万字小总结

王知无

高并发中,那些不得不说的线程池与ThreadPoolExecutor类

华为云开发者联盟

Java 线程 高并发 线程池 ThreadPoolExecutor类

netty系列之:自定义编码解码器

程序那些事

Java Netty 程序那些事

手撸二叉树之递增顺序搜索树

HelloWorld杰少

数据结构与算法 8月日更

苹果公司提出名为WebGPU的新3D图形标准_JavaScript_Abel Avram_InfoQ精选文章