为什么在这个简单的 wgpu 程序中制服保持不变?

问题描述 投票:0回答:1

我刚刚开始学习 WebGPU,我的着色器没有使用我指定的颜色,这让我困扰了一段时间。

基本上代码是

self.app.queue.write_buffer(self.color.buffer(0, 0), 0, bytemuck::cast_slice(&[1.0, 0.0, 0.0, 1.0]));

但制服似乎保持

vec4(0.0, 1.0, 0.0, 1.0)

根据我的观察,如果红色通道为零,则颜色显示黑色,否则为绿色。

有人可以分享一些想法吗?

完整代码在这里https://github.com/bombless/wgpu-bug/blob/master/src/main.rs#L63

rust shader fragment-shader webgpu
1个回答
0
投票

因为它发送到着色器的数据是双点浮点,而着色器中使用的是单点浮点。

© www.soinside.com 2019 - 2024. All rights reserved.