问题标签 [glteximage2d]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何在 opengl 着色器中使用 unsigned short?
我正在尝试在着色器中上传带有未签名短裤的纹理,但它不起作用。
我尝试了以下方法:
我知道我正确绑定了纹理,因为我通过使用得到了一些结果
特别是,我在红色通道中获得了我的部分价值观。我想将纹理作为无符号字节或浮点数上传。但是,我无法正确获取 glTexImage2D 调用。此外,是否可以使用深度纹理进行类似的操作?我想对从 kinect 获得的深度信息做一些操作并显示出来。
c++ - 返回 stbi_load 函数的结果并将其用于 glTexImage2D 会导致内存冲突
我对 stbi 库有疑问,我想,也许你知道为什么这不起作用。我已经声明了一个这样的函数:
在此函数中,我将 stbi_load 的结果直接保存在 *pixel_data 变量中:
所以,现在我的 pixel_data 指针指向 stbi_load 结果的内存。现在我想在我之前的函数中将此结果与 glTexImage2D 方法一起使用。该函数在调用 OpenGL 的 glTexImage2D 方法之前调用 LoadTextureFile 方法,如下所示:
但是如果我这样做,那么我会在调用 glTexImage2D 时收到内存违规消息。如果我在使用 stbi_load 加载一个新的纹理文件后将整个魔法移动到 LoadTextureFile 中,那么它可以工作:
有人可以告诉我为什么会收到此消息以及如何解决此问题吗?
我想,这是保持保留内存安全的问题,但我不太确定如何解决它。我之前在一个简单的控制台应用程序中尝试过这个,它在那里工作。
谢谢您的帮助!
opengl-es - 关于 glteximage2d 使用 gl_luminance 的困惑
我遇到了一些关于使用 gl_luminance 定义 FBO 的问题。这是我使用的代码,
相关代码如下,
问题是当我使用时,
代码进展顺利。但如果使用 gl_luminance 代替,
我不知道为什么我不能使用 GL_LUMINANCE 来定义 FBO。有人有一些有用的建议来解决这个问题吗?
opengl - 立方体地图不适用于 Ubuntu 上的 optirun
在我不使用 Optirun 之前,我无法理解为什么这段代码可以工作
错误(无效操作)是当我使用 glTexImage2D(GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, ...) 创建立方体贴图的六个面时,我唯一能想象的是与 OpenGL 版本存在一些不兼容。
程序运行时打印的 OpenGL 信息:
当它不起作用时:
我怎样才能绕过这个问题?(对不起我的英语不好)
c# - 将 OpenGL GL.TexSubImage2D 用于 NPOT 纹理会导致伪影
我在 C# 中通过 OpenTK 使用 OpenGL,并尝试从通用位图中加载纹理。我的驱动程序不支持 NPOT 纹理,所以我所做的是使用 GL.TexImage2D 分配一个 POT 纹理,并通过 GL.TexSubImage2D 用我的位图填充它。但是,在绘制这些文本时我有工件。看起来,它还在纹理的底部和右侧绘制了一个额外的像素。我应该从比率中减去像素还是有其他问题?
创建代码:
绘图代码:
其中texture.WidhtRatio = DataSize.Width / W2;
c++ - OpenGL 从 4*float 格式上传像素数据(C++)
我有std::container
以下格式的图像数据:
所以它看起来像:
其中宽度和高度是我的图像的大小。
现在,我想将其推送到 OpenGL 中的纹理中。
(总共有 6 个,我的立方体贴图的每一侧都有一个。宽度和高度也与立方体贴图的要求相同)。
但我得到一个黑色的纹理。GLIntercept 没有给我任何问题的迹象。
因此,在查看https://www.opengl.org/sdk/docs/man/docbook4/xhtml/glTexImage2D.xml之后,我相信我应该这样称呼它:
变化是我表示我的像素数据是 32 位浮点数,每个像素有 4 个。
但是,这也给了我一个黑色纹理,以及 GLIntercept 告诉我这个调用正在生成一个GL_INVALID_ENUM
.
查看相同的文档告诉我,在某些情况下glTexImage2D
会导致 a GL_INVALID_ENUM
,我没有遇到过。
基本上,我只想将我的 4 个浮动容器放入纹理中。
html5-canvas - webgl 中的 globalcompositeoperation 等效项
Canvas 2D 使用 globalcompositeoperation 属性提供了以不同方式重叠图像的选项,如下所示http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_canvas_globalcompop
使用 texImage2D 函数渲染图像时,webgl 中是否有类似的选项?
c - 带有 OpenGL 的 FreeType 2
我试图将 FreeType2 与 OpenGL 一起使用,但我在写东西时只能写西班牙语询问标记。这是我加载所有字形的循环:
并显示:
我在 Windows 8.1 上使用 C 语言(如果您知道我们可以制作可移植程序的方式,我更愿意)。
python - 总线错误导致OpenGL python glTextImage2D崩溃
在我当前基于 python 的 OpenGL 项目中,我需要使用glTexImage2d创建一个 2d 纹理。当纹理宽度/高度大于 888x888 时,这样做我会遇到麻烦。
有时它工作,有时它不工作导致"Bus error: 10"。以下是调试中的一些细节:
硬件:mac book pro 视网膜(2013):
运行 OpenGL 核心配置文件 4.1:
在我研究这个问题的过程中,我 在 GLKViewController 中使用 glTexImage2D 的堆栈溢出 EXC_BAD_ACCESS发现了一个非常相似的问题。解决方案是在调用 glTexImage2d 期间设置“锁”。这个问题似乎适合我的问题的原因是调用似乎随机崩溃了大约 50% 的时间,这可能表明某种竞争条件问题。
有没有办法在我的 python 脚本中实现类似的锁,或者我应该以另一种方式初始化纹理?请注意,纹理在初始化时为空,因为纹理将由帧缓冲区写入。
更新已解决 因为我认为我尝试使用 None 而不是空字符串作为 glTexImage2d 中的初始值,所以我传递了这个空字符串。这段代码解决了这个问题
感谢 derhass 和 datenwolf 的帮助!
opengl-es - 在 OpenGL ES 2.0 中生成和更新 8 位灰度纹理
对于 OpenGL 纹理缓存,我需要初始化一个大的(≥ 2048x2048)纹理,然后经常更新它的一小部分。
以下(伪)代码有效:
但我发现完全不必要的 4MB int 缓冲区的创建至少可以说有点不可取。所以,我尝试了以下方法:
这给了我一个 GL_INVALID_OPERATION 错误,我认为这是由于帧缓冲区不包含 alpha 值这一事实引起的,因此调用失败而不是仅仅将其设置为 1。
下一次尝试:
这可行,但现在我的 glTexSubImage2D 调用因 GL_INVALID_OPERATION 而失败,因为它指定了 GL_ALPHA 而不是 GL_LUMINANCE。所以,我也改变了它以获得:
我更改了着色器以从组件r
而不是a
组件中读取值。
这适用于某些设备,但在 iPhone 3GS 上,我仍然在 glTexSubImage2D 调用中收到 GL_INVALID_OPERATION 错误。为什么?我该如何解决这个问题?有没有办法,例如,改变内部纹理格式?或者我可以创建一些其他的帧缓冲区,它有一个可以用作 glCopyTexImage2D 源的 alpha 组件?