首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么采样器不能成为OpenGL中统一块的一部分,以及任何绕过它的方法?

为什么采样器不能成为OpenGL中统一块的一部分,以及任何绕过它的方法?
EN

Stack Overflow用户
提问于 2014-12-07 09:17:47
回答 1查看 3K关注 0票数 4

我想渲染一个场景纹理,并分享纹理采样器在几个程序。类似于在多个程序中共享项目视图矩阵。与可以放入统一块的项目视图矩阵不同,“采样器不能是统一块的一部分”。(GLSL)

一些讨论这里描述了为什么:

多个问题: GLSL采样器包含两方面的内容:纹理数据的来源和如何从中过滤(最近、线性、mipmapping、各向异性等)。 样本是不透明的东西,要将它们放置到一个统一的缓冲区对象中,它们需要有一个定义良好的(和跨平台的)大小。 这些问题加在一起使它变得很危险。

我想看到一些解释,为什么这不能处理,以及任何其他方式,以实现共享纹理采样器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-07 10:55:10

解释就在这里:

样本是不透明的东西,要将它们放置到一个统一的缓冲区对象中,它们需要有一个定义良好的(和跨平台的)大小。

统一块的目的是,您可以使用来自(客户端)程序中单个结构的单个OpenGL调用进行设置。但要使其工作,必须知道此结构的内存布局,以便编译器生成的内存布局与着色器统一块的内存布局相匹配。

但是由于没有定义采样器的内存布局,所以无法确定内存布局。没有明确的内存布局--没有结构,没有结构--没有块。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27341260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档