- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以告诉我看似不必要的复杂统一缓冲区吗?我已经阅读了 OpenGL Superbible 5 中的部分,我在博客上查看了一些示例,并且我已经阅读了官方规范,但我仍然不明白。
具体来说,所有示例似乎都需要一个着色器程序开始,以便最初使用 glGetActiveUniformsiv 设置统一缓冲区。我不明白这一点。为什么界面不允许您在不引用着色器程序的情况下定义结构,在链接时根据程序验证缓冲区格式?
其次,如果我从一个程序中获取结构布局,假设所有使用制服集的程序的结构布局都相同,那么结构是否保证具有相同的偏移量、数据大小等?我会这样认为。
第三,我不了解绑定(bind)点。我必须用索引调用glBindBufferBase,然后用 block 索引和我传递给glBindBufferBase的索引调用glUniformBlockBinding。我无法准确地想象这里发生了什么。 Superbible 缺乏清晰度,我看到的规范和 sample 也是如此。
最佳答案
std140
以外的任何内容。 .它使代码更加简洁。std140
,继续阅读。 packed
, shared
, 和 std140
. packed
意味着实现可以随意安排一切。这包括移除当前程序不使用的制服。因此布局是实现定义的,并且该布局中的某些制服可能已被优化掉。shared
意味着实现可以像 packed
一样自由排列数据.但是,它 必须为每件制服提供存储空间。这使得在程序之间共享统一布局成为可能,因此得名。 shared
还要求实现为跨程序的一致定义提供一致的布局。因此,您只需要对一种布局进行查询。shared
创建一个假程序。布局。您可以使用它来查询统一 block 的布局。然后,只要其他程序的布局是一致的(使用 shared
布局),所有的布局都是相同的。所以不需要专门的 API。std140
然而,这意味着统一 block 的布局是由 OpenGL 实现逐字节明确定义的。这隐含地允许共享,因为本规范下的两个相同的统一 block 将具有相同的布局。并且由于实现无法优化 std140
中的制服。布局 block ,一切都很完美。std140
.除非您受到非常非常严重的内存限制,否则不会。 glActiveTexture(GL_TEXTURE0 + i);glBindTexture()
, 其中 i
是纹理图像单元索引。您现在需要告诉着色器哪个采样器使用该图像单元。但是,OpenGL 不允许您直接与名称进行关联。您必须将采样器名称转换为索引位置。因此,您可以使用 glGetUniformLocation
获得特定采样器的统一位置。 .一旦有了统一的位置,就可以通过调用 glUniform1i(loc, i)
将纹理图像单元与该位置关联起来。 , 再次i
是将纹理绑定(bind)到的纹理图像单元。glBindBufferRange(GL_UNIFORM_BUFFER, i, ...)
, 其中 i
是统一缓冲区绑定(bind)点。您现在需要告诉着色器哪个统一 block 使用该绑定(bind)点。但是,OpenGL 不允许您直接与名称进行关联。您必须将统一 block 转换为索引位置。因此,您可以使用 glGetUniformBlockIndex
获得特定统一 block 的索引.获得索引后,您可以通过调用 glUniformBlockBinding(program, index, i)
将统一缓冲区绑定(bind)点与该索引相关联。 , 再次i
是将统一缓冲区绑定(bind)到的统一缓冲区绑定(bind)点。关于OpenGL统一缓冲区混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7367104/
我真的很困惑。我已经尝试使用带有 tomcat 的 Jax-rs 并使用所有注释,我能够使用 url 调用我的服务。因此,如果没有 Jax-rs,我可以简单地拥有一个 servlet 并调用我的服务。
是否有任何工具/商业混淆器可以混淆 WPF 控件中的 BAML 资源? 如果没有,就 IP 保护而言,这是一段艰难的时期,因为黑客可以通过使用 BAML 到 XAML 转换器轻松查看 BAML 资源。
嘿大家。我在尝试使用 COBOL 在 zOS 环境中解决的编码项目中遇到了一些麻烦。我需要读入一个文件并将它们放入索引表中(我知道将少于 90 条记录)。 让我感到困扰的是,我们受到项目参数的约束,以
我试图按照这个例子来理解 join() 方法: class PrintDemo { public void printCount() { try { for(int
当我编译我正在编写的代码,然后在 JD Gui 中查看时,方法显示带有如下标题: public void growSurface(Random paramRandom, int paramInt1,
我正在为重新分发准备 Android 库,它的代码必须进行混淆处理。我已经阅读了有关此主题的一些内容,并且决定使用 Android Library Project。它将作为 jar 分发(自动在/bi
两个混淆相关的问题: 1) 是否有任何工具可以将 F# 从 MSIL 目标形式反汇编回其源形式或接近它的形式?这不是通过默默无闻来实现安全性的尝试,但我想保护某些源代码免遭“盗窃”。 2) 我简要地查
谁能向我解释为什么 simulatedCase <- rbinom(100,1,0.5) simDf <- data.frame(CASE = simulatedCase) posterior_m0
我一直无法找到关于使用 AppDomains 时发生的事情的非常清楚的描述,所以希望有人能够启发我。我有一个简单的测试程序(基本上是扯掉了 MSDN example ): using System;
假设我有 2 个分支topic和 master如果我在 topic分支,然后运行 git rebase master它是 rebase master 还是 rebase 主题分支? 做 git r
我有一个类(class): public class LockTest { public void LockThis() { lock (this)
我正在尝试最小化/混淆我的 Angular 代码,但遇到了问题。我在这里阅读“缩小说明”http://docs.angularjs.org/tutorial/step_05但我定义我的 Control
我遇到了一些困惑的操作。 var a = 0.1; var b = 0.2; var c = 0.3; console.log(a); // 0.1 console.log(b); // 0.2 co
感谢您查看我的帖子 - 我正在尝试弄清楚如何在单击链接时关闭此下拉菜单,但我的 JavaScript 技能非常缺乏,而且代码似乎很困惑。这是 HTML:
混淆、哈希和加密之间有什么区别? 这是我的理解: 哈希是一种单向算法;无法逆转 混淆与加密类似,但不需要任何“ secret ”即可理解(ROT13 就是一个例子) 加密是可逆的,但需要“ secre
我有以下代码 my $content = $response->content; $content =~ /username=([\s\S]+?)&/; my $username = $1; prin
我在 .NET 中发现了一些与我预期的有点不同的东西。我粘贴的代码没有意义,但它是我拥有的一个复杂得多的函数的浓缩版。我实际上是在获取匿名类型信息作为参数(尚未创建匿名类型的实例),我需要创建该类型的
我正在努力解决 JavaFX 应用程序的混淆问题。使用此项目作为基础: https://github.com/openjfx/samples/tree/master/IDE/IntelliJ/Non-
是否可以制作一个与此类似的 CSV 阅读器 while((line = reader.readLine()) != null){ String[] values = line.
公共(public)类测试2 { 公共(public)静态无效主(字符串[]参数){ System.out.println("3 + 6"); System.out.println(3
我是一名优秀的程序员,十分优秀!