GPU 上的内存大小分配 - opengl 纹理加载问题
我正在从 32 宽 x 32 高的图像加载像素。我加载它们的格式是通过 java 的 ARGB。当我将其绑定到视频卡时,我可以预期视频卡可能会使用大约 32*32*4 字节或 4K 的空间。
同样,1024 w,1024 h 将是 1024*1024*4 = 4MB。
我的理解正确吗?现在我明白所有的记忆都去哪里了!
I'm loading pixels from an image which is 32 w by 32 height. The format I'm loading them in is ARGB via java. When I bind this to the video card, I can expect that the video card might use somewhere around 32*32*4 bytes, or 4K.
Similarly, 1024 w, 1024 h would be 1024*1024*4 = 4MB.
Is my understanding correct? Now I understand where all the memory goes!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您无法计算所使用的确切内存量,因为每个实现都有其自己的(内部)纹理约束。其中:
简而言之,您可以估计内存使用量的下限,但最好为每个 GL 实现可能使用的其他内容添加一些空间。
(顺便说一句,mip 映射是您绝对应该考虑的事情。如果使用的话,它至少会添加基础层的 1/3)。
The exact amount of memory used is not something that you will be able to compute because each implementation has its own (internal) constraints on textures. Amongst them:
So in short, you can guestimate a lower-bound on memory usage, but you'd better add some room for additional stuff that each GL implementation might use.
(As a side note, mip-mapping is something you definitely should take into account. It adds at least 1/3 of the base layer if in use).