如何在webgpu中做纹理纵向反转
-
看了webGPU api 的翻译文档,也在网上查了但还是没找到如何在webgpu中将Texture进行vertically flip
在webgl中有类似的api, gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true)
texture的反转是不是在 device.createTexture() 或者是 device.queue.copyExternalImageToTexture() 调用?
我现在的做法是在片元着色器中转换UV,但是webgpu中有没有跟简单的方式?
-
@浮光_ 考虑你为什么需要做flip,可能是OpenGL或者WebGL的坐标系与WebGPU的不同,WebGL的原点是左下角,而DX12和Vulkan,也就是WebGPU的坐标原点都是左上角,如果你把webgl的代码放到webgpu的话,就需要转换坐标,可以在shader把UV的值改一下,比如
uv.y = 1 - uv.y
另外,gl.pixelStore只是改变了你上传texture的顺序,但是整个屏幕空间的坐标是不对应的,后面如果还需要处理比如render target,那么问题还会存在