问题标签 [texturing]

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 投票
0 回答
356 浏览

ios - 使用 Quartz2D 在屏幕外绘制并将结果用作 iOS 中的 OpenGL ES 纹理

根据我读过的文档,使用 CGLayer 进行屏幕外绘图是进行 Quartz 2D 绘图的最高性能方式,因为它允许绘图由 GPU 和 VRAM 存储/管理。

当我完成绘图时,我想从 CGLayer 中获取像素缓冲区并将其用作 OpenGL 纹理。

我知道如何使用像素缓冲区创建纹理。

我已经看到了屏幕外渲染到 CGBitmapContext、检索像素、然后使用这些像素创建纹理的示例。

Quartz 2D 编程指南建议绘制到 CGBitmapContext 很慢并且在软件中完成(不涉及 GPU),所以我避免了这条路。

所以,他们说要快速绘图,我需要在 CGLayer 中进行绘图。如何将像素返回到可以发送到 glTexImage2D() 的内存缓冲区中?

非常感谢 !

0 投票
0 回答
676 浏览

opengl - OpenGL - 透明纹理重叠的问题

我对 OpenGL 很陌生,我一直在http://open.gl/上阅读教程。我试图将它们扩展为一个学校项目。我遇到了多个纹理无法正确渲染的问题。由于某种原因,前一个纹理在下一个纹理下方“徘徊”。我不确定这里发生了什么真的很感激一些洞察力。我在下面有一张问题的图片,我认为它清楚地显示了问题和下面的代码。

这是imgur上的链接,因为我还不能在这里发布图片: 问题图片

这是代码:

}

0 投票
1 回答
579 浏览

opengl - ogl纹理崩溃窗口上的lodepng

我正在使用 lodePNG 从 png 文件中加载纹理,但是当我加载纹理时程序崩溃了。

我用VS 2010编译,没有错误,但是调用glTexImage2D的时候就崩溃了。我的系统是 Windows 7,显卡支持 OGL 3.3。

我有另一个系统,它是 Mac OSX 10.6,我一直在移植代码,在 Mac 上完全没有问题。有没有我可以提出的修复建议,以便在 Windows 上正确加载纹理?

这是我获得 lodePNG 文件的网站:http: //lodev.org/lodepng/

0 投票
2 回答
797 浏览

opengl - 地形纹理

有没有办法以渐变方式混合 2 个纹理?前任。第一个纹理从顶部开始并到达底部,第二个纹理从底部开始并到达顶部。我想让它们像渐变一样不透明,以创建平滑的连接。可能吗?

也许还有其他方法可以创建这样的纹理?问题是我的地形中的高度差异看起来不太好 - 在一个正方形区域中,一个三角形的纹理与另一个不同。

0 投票
1 回答
5785 浏览

opengl - 在 OpenGL 中绑定零纹理

在我的程序中,我使用 2 个纹理:t0 和 t1。t1 是额外的,仅在某些情况下需要:

绘图着色器:

它工作正常:第二个纹理在需要时首先重叠。假设使用 glBindTexture( .. , 0 ) 返回零纹理 (0,0,0,0),但是在将 NVidia 驱动程序更新到 314.07 后,我的代码会产生黑屏,例如 glBindTexture( .. , 0 ) 返回 (0,0 ,0,1) 纹理。

我进行了一些测试:使用着色器

我在旧驱动程序(296、306)上得到绿屏,在新驱动程序上得到红屏。我在 2 台装有 Win 7 (GeForce 210) 和 win XP (GTX 260) 的计算机上对其进行了测试。

所以我的问题是:使用 0 作为第二个参数的 glBindTexture 是正确的,以及如何使用新驱动程序实现相同的结果( 0000 纹理)?

0 投票
2 回答
1439 浏览

opengl - OpenGL GL_R8 generates a 0x501, GL_RGB8 does not

This seems to be a rather straightforward problem (or at least as close as you can get). When I pass GL_RGB8, GL_RGBA8, or most any multiple-channel internal format, the below line produces no error.

However, when I pass GL_R8 or any 8-bit one-channel variant, glGetError returns 0x501 (Invalid Value).

Any idea what's going on here? The computer I'm presently using is rather outdated and low-power, but if that were the problem I doubt RGB8 or RGBA8 would work.

For those curious, fontImgSize == 2048, the maximum texture size on my computer.

Edit: It appears GL_RG8 and 2-channel/16-bit formats also produce a 0x501

0 投票
2 回答
13270 浏览

c++ - OpenGL将纹理映射到球体

我有 OpenGL 程序,我想用地球的位图对球体进行纹理处理。我在 Blender 中准备了网格并将其导出为 OBJ 文件。程序正确加载适当的网格数据(顶点、uv 和法线)和位图 - 我已经检查了它与骨骼位图的纹理立方体。

我的程序是纹理球体,但不正确(或以我不期望的方式)。该球体的每个三角形都包含该位图的变形副本。我检查了位图,uv 似乎没问题。我尝试了多种尺寸的位图(2 的幂、2 的倍数等)。

这是纹理:

地球纹理

我的程序的屏幕截图(就像它会忽略我的 UV 坐标):

在此处输入图像描述

我以这种方式完成了 Blender 中的 UV 映射:

在此处输入图像描述

加载后的代码设置纹理(除了向VBO添加纹理的代码-我认为没关系):

是否需要任何额外的代码来正确映射此纹理?

[编辑] 初始化纹理(之前提供的代码在 LoadTextureBMP_custom() 函数中)

我的主循环:

对比:

外星人:

0 投票
2 回答
1041 浏览

opengl - 在 Blender 中将几个纹理合二为一

我在 Blender 中有一些模型。我想:

  1. 将几个不同的纹理连接成一个并将其保存为位图
  2. 为这些连接的纹理制作 UV 映射

我需要为OpenGL中的纹理模型解决这个问题。我有数据结构,可以将一个纹理绑定到一个模型中,所以我希望每个模型都有一个纹理。我知道我可以使用 Texture GL_TEXTURE_xD_ARRAY,但我不想让我的项目复杂化。我知道如何在 Blender 中进行简单的 UV 映射。

我的问题:

  • 我可以只在 Blender 中进行 1. 和 2. 阶段吗?
  • Blender Bake技术是我正在寻找的吗?
  • 是否有一些教程显示如何做到这一点?(针对这一具体问题)
  • 也许有人建议我另一种 Blender 技术(或 OpenGL 解决方案)
0 投票
2 回答
1096 浏览

opengl - GL_TEXTURE_2D_ARRAY 中纹理的正确存储分配

假设我有 GL_TEXTURE_2D_ARRAY 包括 6 个纹理,我正在加载它:

在此代码之前,我必须为每个纹理分配存储空间,如果我很好理解,我可以使用 glTexImage3D() 或 glTexStorage3D() 来执行此操作,例如:

或者

==================================================== ============================== 但是当我为表中的每个纹理分配大小时,我只有一对 [width ,height] 纹理。如果我希望每个纹理图像都有另一个维度怎么办?如果不在图形编辑器中将每个纹理缩放到一个尺寸,是否有任何解决方案?

另一个问题是我在第三个代码截断器上展示的 glTexStorage3D() 导致我的程序崩溃的事实。我在那里找到了有关 glTexStorage3D() 的信息:
http ://www.opengl.org/wiki/Array_Texture

0 投票
1 回答
153 浏览

opengl - LWJGL OpenGL 纹理不正确

我正在尝试在 OpenGL/LWJGL 中制作一个简单的按钮,

我可以正确渲染我的 2D QUAD,但是当我实现纹理时,整个四边形只有大约 3/4 部分被纹理化,如下所示:https ://dl.dropboxusercontent.com/u/60223805/glerror1.png

如果我删除纹理坐标,我会得到这个:https ://dl.dropboxusercontent.com/u/60223805/glerror2.png

其中 none 是纹理(来自 slick-util 库),函数 Enable2D_GUI 和 Disable2D_GUI 只是启用和禁用正交和东西。

有什么问题?我对 OpenGL 很陌生,所以如果我的问题有点不耐烦,我很抱歉

这是我的 Enable2D_GUI 和 Disable2D_GUI 函数:

现在,当我使用 3D QUAD 对其进行测试时,它也不起作用,结果相同。这是我的 OpenGL 初始化代码: