小编Tay*_*orP的帖子

设置OpenGL多个渲染目标

我已经看过很多关于这个主题的材料,但是我发现的例子之间存在一些差异,而且我很难深入了解正确的过程.希望有人可以告诉我,如果我走在正确的轨道上.我还应该提到我在OS X Snow Leopard和最新版本的Xcode 3上做这个.

举个例子,假设我想写两个目标,一个用于普通,一个用于颜色.为此,我创建了一个帧缓冲区并将两个纹理绑定到它,以及深度纹理:

glGenFramebuffersEXT(1, &mFBO);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, mFBO);

glGenTextures(1, &mTexColor);
glBindTexture(GL_TEXTURE_2D, mTexColor);
//<texture params>
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_TEXTURE_2D, mTexColor, 0);

glGenTextures(1, &mTexNormal);
glBindTexture(GL_TEXTURE_2D, mTexNormal);
//<Texture params>
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA8, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_TEXTURE_2D, mTexNormal, 0);

glGenTextures(1, &mTexDepth);
glBindTexture(GL_TEXTURE_2D, mTexDepth);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT24, w, h, 0, GL_DEPTH_COMPONENT, GL_UNSIGNED_BYTE, NULL);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_TEXTURE_2D, mTexDepth, 0);

glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0)
Run Code Online (Sandbox Code Playgroud)

在渲染之前,我会再次绑定帧缓冲,然后执行:

GLenum buffers[] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT };
glDrawBuffers(2, buffers); …
Run Code Online (Sandbox Code Playgroud)

opengl framebuffer

23
推荐指数
1
解决办法
2万
查看次数

某些设备上的"Cookie未启用错误"

我正在开发一个应用程序,它使用Facebook作为应用程序标准帐户创建流程的备用登录方法.在某些设备上,Facebook的Web对话框身份验证产生错误"您的浏览器未启用Cookie.请在您的安全首选项中进行调整".

到目前为止,我只在亚马逊的Kindle Fire和Galaxy Tab 10.1上看过它.我已经验证在两台设备上都启用了Cookie,并且设备可以使用其库存网络浏览器登录Facebook.在设备上重新安装我的应用程序没有任何效果,并且在启动Web对话框时,logcat中不存在任何错误或警告.我正在使用最新的Facebook SDK 3.0 for Android.

任何关于这个问题的见解将不胜感激.

编辑:我还应该补充一点,我不确定是否存在cookie问题.如果我输入了伪造的密码,FB对话框将尝试登录并失败并显示密码错误消息.如果我然后尝试再次登录,使用真实密码,对话框将通过,一切都将顺利处理.也正确创建了FB会话.仅当我首先尝试"真实"登录时才会出现Cookie错误,而不是第一次登录失败然后再次登录.

cookies android facebook facebook-authentication facebook-login

9
推荐指数
1
解决办法
7068
查看次数

iPhone上的快速反平方根

SGI/3dfx使用的快速反平方函数,尤其是在Quake中使用的快速反平方函数通常被引用为比汇编指令等效更快,但是帖子声称看起来很过时.我对它在更现代的硬件上的性能感到好奇,特别是在像iPhone这样的移动设备上.如果Quake sqrt不再是桌面系统上值得优化的话,我不会感到惊讶,但对于涉及大量3D数学的iPhone项目怎么样?这是否值得包括?

iphone floating-point optimization performance mathematical-optimization

6
推荐指数
1
解决办法
1394
查看次数

XMM注册Total或Per Core

在多核CPU中,每个内核是否都可以访问自己的XMM寄存器组?例如,如果芯片被列为具有16个XMM寄存器(XMM0-XMM15),那么每个核心16个寄存器还是16个共享寄存器?

我的理解是每个核心都有自己的寄存器库,我认为XMM寄存器也是如此,但是我无法找到支持这个假设的参考.

cpu sse multicore cpu-architecture cpu-registers

6
推荐指数
1
解决办法
1846
查看次数

在Mac上设置GLSL版本

如何在Mac上设置GLSL版本?这甚至可能吗?我正在运行片段着色器并想创建一个vec3数组,但着色器编译器产生一个错误,表明我需要使用更高的GLSL版本.具体错误是

'array of 3-component vector of float' : array type not supported here in glsl < 120 
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

opengl macos glsl

5
推荐指数
1
解决办法
2940
查看次数

基于 OpenGL 的 UI 的几何表示

我计划为我目前正在进行的项目之一编写一个基于 GL 的 UI。大多数 UI 不会有纹理(只是平面颜色),但某些元素需要支持单个图像。元素只需要缩放和平移 - 不需要复杂的动画或旋转。不过,UI 不一定是静态的 - 元素可能在应用程序的生命周期中出现/消失,并且在某些情况下需要简单的滑动动画。还需要鼠标悬停、单击、选择等状态。

我正在尝试确定管理和存储 UI 元素本身几何形状的最佳方法。我的第一个想法是创建一个包含一个四边形的单个顶点缓冲区,并将该四边形用于所有 UI 绘制调用。当然,变换将与四边形一起发送到着色器。

传统观点认为,最小化状态变化可以提高性能——这是使用单个 VB 的好处。但是,必须为每个 UI 元素转换四边形会增加成本。由于用户界面不会经常移动,这似乎有点多余。

在现代硬件上,转换单个四边形是否更便宜,或者发送转换数据的成本是否超过仅绑定单个 VB 的好处?我最好为每个 UI 元素维护单独的几何图形(可能在 CPU 上计算)吗?UI系统是否有其他常用的推荐方法?

c++ opengl performance user-interface glsl

2
推荐指数
1
解决办法
1043
查看次数