mach(zig):从webGPU api了解渲染通道&shader
https://github.com/AClon314/mach_demo
学opengl3.3教程,你将了解通用图形渲染api。
学vulkan,你将用1000+行代码画一个三角形。
学webGPUapi、WGSL教程,你将获得跨平台的图形api设计规范。
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递归地存储自己的地址,搁这按图索骥呢?