问题标签 [textures]

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.

0 投票
1 回答
1114 浏览

opengl - BlendFunc 用于具有变化背景的纹理字体

我正在尝试使用纹理字体,以便可以在我的 openGL 场景中显示文本。但是,我无法找到可行的 glBlendFunc 值。

将放置文本的背景是灰度图像,但在整个执行过程中会发生变化。因为背景发生了变化,所以文本可能位于从黑色到白色的任何颜色之上。

我发现的最佳值是 glBlendFunc(Gl.GL_SRC_COLOR, Gl.GL_ONE_MINUS_SRC_ALPHA)。这将使角色周围的黑框消失,但角色本身会随着背景变白而消失。

请帮忙!

0 投票
6 回答
5024 浏览

opengl - 在opengl中显示任意大小的二维图像

我需要使用纹理在 opengl 中显示 2d 图像。
图像尺寸不一定是 2 的幂。
我想创建一个更大的纹理并将显示限制在我正在使用的部分,但是图像数据将与 openCV 共享,所以我不想一次复制一个像素的数据变成更大的纹理。

编辑 - 事实证明,即使是 Windows 下最简单的英特尔板载显卡也支持非 2 次幂纹理。

EDIT2 - 即使您没有任意纹理大小,然后使您的图像更小并重新缩放到窗口大小,即使在低端硬件上也非常快

0 投票
4 回答
44024 浏览

opengl - 如何将纹理应用于 glutSolidCube

我可以找到有关将纹理映射到指定顶点等的多边形的教程,但没有关于如何将纹理应用于使用 glut (glutSolidCube) 绘制的立方体(或其他东西)的教程。

我正在做类似的事情:

这样做我将纹理应用于立方体,但整个立方体获得纹理中第一个字节的颜色!

使用 glutSolidCube 时,有没有办法将纹理映射到实体立方体(和其他实体)?

0 投票
2 回答
6703 浏览

c++ - OpenGL 和单色纹理

是否可以将单色(具有 1 位图像深度的图形数据)纹理泵入 OpenGL?

我目前正在使用这个:

我在 GL_LUMINANCE 模式下使用 8 位无符号整数的方阵(一个 8 位通道代表所有 3 个通道的亮度和完整的 alpha)来抽它,但它在 IMO 中非常无效,因为数组中的 onlu 值是 0x00 和 0xFF .

我可以(以及如何)以某种方式使用简单的每像素一位布尔数组吗?过大的数组大小会减慢数组上的任何其他操作:(

0 投票
4 回答
1761 浏览

opengl - 将新纹理加载到已定义的纹理名称中

我有一个 OpenGL 程序,我在其中使用纹理显示图像。我希望能够加载要显示的新图像。

在我的初始化函数中,我调用:

由于一次只会显示一张图像,因此我为每张图像使用相同的纹理名称。

每次加载新图像时,我都会调用以下命令:

第一个图像将按预期显示。但是,所有图像都在第一个之后加载,显示为全黑。

我究竟做错了什么?

0 投票
3 回答
2366 浏览

perl - 如何将 2 个或更多纹理贴图应用于 gluSphere OpenGL 对象?

我正在编写一个基本的行星查看器 OpenGL Perl 应用程序,只是为了好玩。我有基本的工作,与光荣的星球,通过gluSphere()应用经典地球纹理贴图的旋转实现。

现在,如果我想通过 OpenGL 应用第二个纹理贴图(比如“地球云”)怎么办?

当然,我可以自己在 PhotoShop 或其他图形应用程序中混合这两个纹理贴图,但是有没有通过 OpenGL API 的方法?

我尝试加载两个纹理并生成 mipmap,但显示的星球只应用了第一个纹理,而不是第二个。

0 投票
4 回答
3095 浏览

opengl - opengl 在纹理 blit 上慢

我每帧调用一次这个函数,它使我的 FPS 从 >400 到 33。为什么?

0 投票
2 回答
2354 浏览

opengl - GPU上的纹理图像处理?

我正在将某个场景渲染为纹理,然后我需要以某种简单的方式处理该图像。我现在这样做是使用读取纹理glReadPixels()然后在 CPU 上处理它。然而这太慢了,所以我正在考虑将处理转移到 GPU。

我能想到的最简单的设置是显示一个简单的白色四边形,它在正交投影中占据整个视口,然后将图像处理位写入片段着色器。这将允许处理的许多实例并行运行以及访问处理所需的纹理的任何像素。

这是一个可行的行动方案吗?以这种方式做事很常见吗?有没有更好的方法来做到这一点?

0 投票
2 回答
3801 浏览

opengl - 在 OpenGL 中显示大图像的首选方式是什么

我有几次这个问题。假设我想在 OpenGL 上下文中显示闪屏或其他东西(或 DirectX,这更像是一个概念性的东西),现在,我可以只加载 2048x2048 纹理并希望显卡能够应付它(我想现在大部分都会),但是随着老式显卡的增长,我有一种糟糕的良心靠在我身上,告诉我不应该使用那么大的纹理。

现在的首选方式是什么?是把那个东西塞进视频内存,平铺,还是让 CPU 完成工作和 glDrawPixels?或者更精细的东西?

0 投票
4 回答
3982 浏览

opengl - opengl topdown<->bottomup 纹理?

当我通过 FreeImage 加载图像时,这些位是从下到上的。我的 GL 代码要求所有图像都是自上而下的。当我将位复制到纹理时,翻转图像的最佳方法是什么?