问题标签 [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 投票
3 回答
6033 浏览

iphone - OpenGL ES 中带有 8 位 Alpha 通道的调色板纹理

我可以在 OpenGL ES 中获得带有 RGB 调色板和 8 位 alpha 通道的调色板纹理吗?(我的目标是 iPhone OpenGL ES 实现。)在查看 OpenGL 文档后,在我看来,调色板中支持带有 alpha 的调色板纹理,即。纹理包含 8 位索引到具有 256 种 RGBA 颜色的调色板中。我想要一个包含 8 位索引到 RGB 调色板独立的 8 位 alpha 通道的纹理。(我试图节省内存,32 位 RGBA 纹理是相当奢侈的。)或者这应该是手工完成的,即。通过创建两个独立的纹理,一个用于颜色,一个用于 alpha 贴图,然后手动组合它们?

0 投票
2 回答
6671 浏览

opengl - GLSL:启用/禁用纹理+着色器

我正在寻找一种从着色器访问 OpenGL 状态的方法。GLSL 快速参考指南,一个很棒的资源,在这方面帮不上我的忙。

在我正在处理的示例中,我有以下两个着色器:

顶点:

分段:

当我渲染没有纹理的多边形时,它们的 alpha 值是正确的,但它们被分配了黑色。

1,我可以设置什么条件检查,以便在禁用vec4(1.0, 1.0, 1.0, 1.0)时设置变量“texel”而不是从纹理中采样?GL_TEXTURE_2D

2,如果我为不同的纹理模式编写不同的着色器并在我将使用glEnable/ glDisable( GL_TEXTURE_2D) 的位置在它们之间切换,处理会更快吗?

0 投票
2 回答
1694 浏览

opengl - 如何将颜色转换矩阵应用于 OpenGL 中的纹理

基本上,我有一个这样定义的颜色矩阵:

我想要做的是将函数“变换”应用于纹理中的每个像素,因为它被渲染到屏幕上。我实际上无法修改纹理,因为不同的颜色变换矩阵可以在一帧中多次应用于同一图像(我不知道在渲染纹理之前会应用什么),我可以'也不使用着色器。

考虑到这些要求,有没有办法做到这一点?(到目前为止,我唯一的想法是多纹理,但不知道如何应用它)

另外,我是 OpenGL 的新手,所以发布一些代码也会很有帮助,或者指向我的教程甚至是所需的函数/参数。

谢谢

编辑:我应该提到的另一件事是纹理包含预乘的 alpha,因此混合设置为glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);

0 投票
1 回答
2189 浏览

opengl - 通过阴影贴图和其他纹理的阴影 - 如何组合?OpenGL

再会。我使用阴影贴图方法绘制带有阴影的场景(当我们从光线的角度渲染场景以检索深度缓冲区,制作阴影纹理并将其投影到场景上,从相机的角度渲染时)当我使用阴影贴图纹理时,所有其他带纹理的对象当然会失去它们的纹理。但我真的想要带阴影的纹理场景:) 我读到了多纹理,我实际上尝试应用它,但失败了。我究竟应该怎么做?(我从 OpenGl superbible 获取代码)这是主要设置过程的代码。我用 //<==== 标记了新字符串(用于多重纹理的字符串)

这是阴影贴图生成过程:

场景渲染过程:

还有一个纹理对象绘制的例子:

C2DTexture 纹理生成过程:

0 投票
7 回答
5213 浏览

debugging - OpenGL纹理加载问题

这是一个非常模糊的问题,因此请随时澄清有关此项目的任何内容。

我正在开发一个非常大的应用程序,最近出现了一个关于纹理的非常令人困惑的错误。我们正在加载的一些纹理正在被加载——我已经逐步完成了代码,它运行了——但是这些纹理的所有 OpenGL 渲染都是一个奇怪的粉红色/白色条纹纹理。

你有什么建议甚至开始调试这种情况?

  • 该项目是多线程的,但互斥锁确保所有 OpenGL 调用都不会被其他任何东西打断。
  • 有些纹理正在加载,有些则没有。它们都以完全相同的方式加载。
  • 我确保所有纹理都存在
  • “粉色/白色”纹理肯定会加载到内存中——在我将任何其他纹理加载到 OpenGL 后不久,它们就会变得可见。

我很困惑,不知道还有什么问题。是否有可以在 glTexImage 之后调用的 OpenGL 命令来强制纹理变得可用?

编辑:这与命令失败无关,主要是时间问题。粉红色/白色纹理会显示一段时间,直到加载更多纹理。就好像纹理在排队,而队列只是在某个时间暂停。

下一个编辑:我让 glIntercept 日志正常工作,这就是它输出的内容(在整个程序崩溃之前)

http://freetexthost.com/1kdkksabdg

下一个编辑:我知道纹理加载在 OpenGL 内存中,但由于某种原因,它们没有在程序本身中渲染。

0 投票
1 回答
824 浏览

java - 使用 JOGL 时的纹理大小

在我的下一个项目中,我正在尝试学习 JOGL。结果应该是一个简单的二维动画。

我听说,纹理的大小必须为 2^n*2^n。我还可以使用没有这个尺寸的图像,还是必须提前编辑所有图像?使用此类纹理时,我需要注意什么?

例如,我想展示一种进度条,它的图片大小为 1024*96px。我是否必须定义一个四边形(例如,如果您计算像素,大小为 1024*1024)并使用 alpha 混合仅显示“填充”部分?或者纹理坐标是要走的路?

[编辑] 工作,解决方案看起来像这样(使用正交投影):

[/编辑]

0 投票
2 回答
313 浏览

iphone - 打开 GL ES 纹理图像质量

一段时间以来,我在这个问题上遇到了一些麻烦,并决定寻求帮助!

我的 iphone 应用程序中有一个带纹理的 1024 x 1024 区域。我正在使用我使用 Apples texturetool 转换为 .pvr4 格式的图像对其进行纹理化。

现在用户可以选择放大这个纹理对象......

问题是图像质量在最高缩放级别时不够好。

我该如何改进呢?

我应该看mip映射吗?

任何指向正确方向的指针将不胜感激。

谢谢

汤姆

0 投票
2 回答
2461 浏览

opengl - 纹理 VBO(顶点缓冲区对象)

我目前正在开发一种程序行星生成工具,该工具通过获取一个立方体,将其映射到一个球体,然后将高度图应用于每个面以生成地形。

我为使用以下方法创建的每个面使用 VBO:

我省略了 setIndexBufferObject() 方法,因为它工作正常。

然后我使用这种方法渲染球体:

纹理正在使用免费图像加载,正如您从上面的代码中看到的那样,我只是使用了 freeimage 附带的示例纹理管理器。

为什么绑定纹理不起作用?

0 投票
3 回答
359 浏览

c++ - OpenGL 纹理

很抱歉请求帮助,但我很沮丧。

我不知道为什么,但我似乎从来没有能够让纹理在 OpenGL 中工作。我真的很感激一个最小的例子,只要它只使用 /gl.h /glu.h 和标准 C++ 库。任何其他见解将不胜感激。

很抱歉只是要求您为我编写一个完整的程序,但我真的可以使用它,因为我看到的每个互联网示例都使用 glut。由于某种原因我无法编译它,这很烦人。

谢谢。

0 投票
2 回答
1341 浏览

opengl - openGL 固定功能管道 - 缩放纹理强度超过 1.0

除了多纹理或多通道渲染之外,还有其他方法可以使用固定功能管道将纹理的强度缩放到因子 1.0 以上吗?

它可以通过多通道渲染来实现。例如,因子 1.5 可以通过一次以全强度渲染纹理,然后使用加色混合第二次使用颜色(0.5,0.5,0.5,1.0)来实现。

但是还有一种方法可以通过单次传递而无需多重纹理来实现这一目标吗?