网站首页 > 精选文章 正文
最近忙着给 Vulkan 的官方代码修 bug,Vulkan 是一个互联网思维的奇葩,版本号每周都变,bug 到处都是。好处是你可以在 github 上 push 自己的代码,然后发一条帅气的朋友圈:
Vulkan SDK 里有我的代码。
回头看看这个专栏都长草了,舍不得大家,回来继续更新。I'm back!
上回我们提到 Instance和Device,等于是拿到了显卡的微信号加了她为好友。总得聊些啥吧,这聊天的话题便是Image和Buffer。
Image 就是让友谊的小船说翻就翻的图片,Buffer 就是马云的 100 句名言。
Image
额,说正经的,Image 类似 OpenGL 和 DirectX 中的 Texture,身为底层渲染 API,在创建 Image 时需要指定后头怎么使用它,比如说:
可写的 color attachment,打算将渲染的结果画到这个 Image 中。
可读的传统贴图,在 shader 中 配合 sampler 进行读取
可读可写,image load/store
创建时指定用途的概念在 DX 中很常见,对 GL 对开发者比较陌生。
此外,还需要指定 image 在显存中的存放格式,LINEAR或者OPTIMAL。OPTIMAL 么就是让显存尽可能优化地管理 image,至于它怎么管理的,你完全猜不透。LINEAR 么就是按照连续的方式存放,这种方式对 GPU 不友好,对人类友好。
有些(大部分)image 的格式是不支持 LINEAR 的,用前记得查询。
这还没完,Image 是不能直接用的,配套的还有个 ImageView,DX 的程序员眼前一亮,不就是 SRV嘛。眼前没亮的朋友也不用担心,ImageView 的概念很简单,Image 里包含不只一张图片,而我们只对其中部分感兴趣,比如下图中的最底部的六张小图片,那创建的 ImageView 里就只包含这个六张图片。
ImageView 还可以伪装 Image 的格式,比如把 UNORM的 Image 伪装成UINT格式的,DX 程序眼前再次一亮。
Buffer
Buffer 简单多了,创建时只需要指定尺寸和用法。
使用时,也可以直接用,毕竟只是一坨内存嘛。
但是,如果你想在 shader 里把它当作 texel buffer,需要提供一个额外的 BufferView。
---------------------------------
转载请保留作者名、注明源自微信公众号“黑客与画家”(HackerAndPainter),关注游戏开发、计算机视觉、图形学、虚拟现实、体感交互等好玩的内容。
猜你喜欢
- 2025-04-01 电脑版微信聊天图片的DAT文件转换成普通JPG图片,微信垃圾清理
- 2025-04-01 图片怎么批量抠图?3种方法轻松搞定!
- 2025-04-01 图片如何转化为pdf格式?这几种方法超好用!
- 2025-04-01 Qt QImag图像保存、格式转换(qt图片格式转换)
- 2025-04-01 还有比“Alt+鼠标点击”更快的图片保存方法吗?
- 2025-04-01 网页图片还在一张张保存?试试这3款批量下载图片神器
- 2025-04-01 把图片中的文字翻译并放在图片中,这几个工具厉害了
- 2025-04-01 Java 将Excel工作表中的图表转换为图片
- 2025-04-01 系统小技巧:在Windows 10中更好地使用RAW照片
- 2025-04-01 将图片转换成 PDF 文件的两个实用方法
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)