mach(zig):从webGPU api了解渲染通道&shader

https://github.com/AClon314/mach_demo

opengl3.3教程,你将了解通用图形渲染api。
学vulkan,你将用1000+行代码画一个三角形。
学webGPUapi、WGSL教程,你将获得跨平台的图形api设计规范。

reddit上有人说

OpenGL 只是与 3D 硬件连接的几个应用程序接口之一。所有这些应用程序接口的基本概念都是一样的,即使应用程序本身的方式略有不同。
如果你想学习这些概念,那就学习 3d API,至于学习哪种 API 并不重要(实际上,我建议学习 WebGL,因为它是一个宽容度更高的环境,尽管其社区要小得多)。
不过,除了着色器渲染通道外,除非你有兴趣自己编写一个 3D 渲染器,否则没有多少知识可以用到游戏引擎。

浏览器

测试你目前浏览器是否支持webGPU:https://webgpu.github.io/webgpu-samples/?sample=helloTriangle

首先,你需要一个开发版浏览器:chrome/edge/firefox/safari dev,开发版默认开启webGPU的支持,不过支持程度各异,点此查看

linux

  • 优先chrome canary:需要自己编译带GPU的选项。
  • firefox nightly dev(在linux上对GPU的调用更好)。不过firefox对wgsl语法支持还不完全。

windows/mac os

建议chrome canary(内核新)/edge canary(安装包大)。
safari也全面支持wgsl语法。

mach gpu

绑定了webgpu api:https://devlog.hexops.com/2022/perfecting-webgpu-native/

tour of WGSL

不允许使用指针参数进行别名

https://google.github.io/tour-of-wgsl/types/pointers/no_aliasing/
*x = &x;
隔着套娃呢,x递归地存储自己的地址,搁这按图索骥呢?

posted @ 2024-06-22 13:01  Nolca  阅读(27)  评论(0编辑  收藏  举报