问题标签 [texture-mapping]

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 投票
2 回答
1071 浏览

c++ - opengl 纹理映射

我在我的opengl项目中有一个纹理工作问题是它只允许我使用一个纹理我想知道如何更改它以便我可以使用多个纹理也许是一个数组?当我加载多个位图图像时,我似乎无法让它工作

这是我用来创建纹理的代码

谁能指出我正确的方向谢谢

0 投票
1 回答
2543 浏览

opengl-es - OpenGL ES 为什么我的纹理变成了 180 度?

我正在一个简单的平面上绘制纹理。渲染代码基本上是这样的:

使用 _vertextBuffer 作为

其中宽度和高度是正值。_textureBuffer 是

有了这个,纹理被翻转和镜像或翻转 180 度。我究竟做错了什么?

0 投票
1 回答
3783 浏览

opengl - 使用现代 OpenGL 的像素完美纹理映射

在决定尝试在现代 OpenGL 中进行编程后,我已经放弃了固定功能管道,并且我不完全确定能否获得与以前相同的功能。

我正在尝试用像素完美大小来纹理贴图四边形,匹配纹理大小。例如,一个 128x128 的纹理映射到一个大小为 128x128 的四边形。

这是我的顶点着色器。

这是我的片段着色器:

我的顶点数据就是这样,其中 w 和 h 是纹理的宽度和高度。

我加载了 128x128 纹理,使用这些着色器,我看到图像重复了 4 次:http: //i.stack.imgur.com/UY7Ts.jpg

鉴于 tw th、xpos、xpos 制服,任何人都可以就正确的翻译和缩放方式提供建议吗?

0 投票
1 回答
1394 浏览

android - 纹理/顶点的不同索引数组

我试图在 Android 中绘制一个地球仪,为此我使用 OpenGL。然而,为了更容易理解,我将从制作一个简单的 3D 立方体开始。我使用 Blender 创建我的 3D 对象(立方体),并在解包后将其导出为 .obj 文件以获取纹理坐标(vt)。问题是我得到 8 个不同的顶点和 9 个不同的纹理坐标。

V 1.000000 -1.0000 -1.000000 v
1.000000
-1.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 来 入 _ 1.000000 VT -1.000000 -1.000000 VT -1.000000 0.000000 VT 0.000000 1.000000 VT 1.000000 1.000000 VT 1.000000 VT 1.000000 0.000000 VT -1.000000 1.000000 1.000000 VT 1.000000 -1.000000 -1.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000 vt













因此,我也得到了一个真正混乱的索引设置,这使得无法重新排列纹理坐标的位置以匹配顶点中的位置。

f 5/1 1/2 4/3
f 5/1 4/3 8/4
f 3/1 7/5 8/6
f 3/1 8/6 4/7
f 2/1 6/5 3/4
f 6/7 7/1 3/2
f 1/1 5/5 2/4
f 5/7 6/1 2/2
f 5/5 8/8 6/1
f 8/1 7/2 6/9
f 1/1 2/2 3/3
f 1/1 3/3 4/4

由于我现在明白了,我只能使用一个数组作为索引,因为一个顶点由顶点和纹理坐标组成。因此,我需要重新排列其中一个 v/vt 数组。但我不能,因为如果我将 vt(在位置 1)移动到位置 5(第一行面),我需要再次移动它以使其一直通过索引数组。

所以基本上我想知道这是否是程序“Blender”的问题,或者是否有我可以应用的解决方案。

0 投票
1 回答
2810 浏览

android - Android OpenGL ES 纹理映射/绘图问题 - 倾斜图像

我在 Android 中使用 OpenGL 的纹理映射有问题。基本上问题是,大多数正方形(我用来绘制 2 个三角形的类)都被正确绘制,也就是说它们上的纹理完全符合它们应有的状态,并且一切都很甜美。但是有些方块画得有点奇怪。基本上,从顶部开始的每条下一条水平线都会向左移动大约 1 个像素。这是一个示例图像: http ://postimage.org/image/1la0mr99g/ 这就是它的绘制方式(上面的按钮是完全相同的,但纹理不同): http: //postimage.org /image/1lafildpg/

这是负责将图像绘制到屏幕的类。我还必须补充一点,一旦创建了 Square,我就会继续使用,并且以后可能会重新映射一些纹理,但是对于绘制错误的图像而言并非如此(实际上,我已经重新映射了一些其他图像以使其绘制得很好)。所以基本上,通过查看代码,我不知道可能出了什么问题,因为大多数正方形都被正确绘制,并且我看不到任何错误。此外,我实际上有 2 个按钮,它们的大小完全相同,它们的图像也大小相同 - 但其中一个被绘制得很好,而另一个被“歪斜”。创建这些按钮的代码实际上是相同的,所以我完全不知道出了什么问题。

}

0 投票
3 回答
6880 浏览

opengl - 在OpenGL中用正方形纹理映射梯形

我一直在尝试用方形纹理渲染 GL_QUAD(形状为梯形)。我想尝试使用 OpenGL 来解决这个问题。现在纹理变得严重扭曲,真的很烦人。

通常,我会加载纹理计算单应性,但这意味着大量工作和额外的线性编程库/直接线性变换函数。我的印象是 OpenGL 可以为我简化这个过程。

我浏览了网络并看到了“透视校正纹理、Q 坐标和 GLSL”“OpenGL 中的倾斜/剪切纹理映射”

这些似乎都假设您将进行某种类型的单应性计算或使用我不知道的 OpenGL 的某些部分......有什么建议吗?

更新:

我一直在阅读“使用图像空间简化和变形导航静态环境” [ PDF ] - 第 9 页附录 A。

看起来他们通过将 (s,t,r,q) 纹理坐标与模型的世界空间 z 分量的顶点相乘来禁用透视校正。

所以对于一个给定的纹理坐标 (s, r, t, q) 对于一个梯形的四边形,其中 4 个分量是:

这和 glTexCoord4f (s vert.z, r vert.z, t, q*vert.z) 一样简单吗?还是我错过了一些步骤?喜欢搞乱 GL_TEXTURE glMatrixMode?

更新#2:

那成功了!请记住,这个问题遍布网络,没有任何简单的答案。大多数涉及使用原始形状和转换后的形状之间的单应性直接重新计算纹理......也就是大量的线性代数和外部 BLAS lib 依赖项。

0 投票
1 回答
1656 浏览

opengl-es - openGLES 中的简单 2D UV 映射问题

我对低级openGL编码相当陌生,我有一个问题,也许我太累了,无法找到解决方案。我敢肯定答案很简单,我正在做一些非常愚蠢的事情,但是这里......

我有一个 1024 x 512 的纹理,我正在渲染一个 2D 四边形,它打算使用该纹理的一部分。四边形与我尝试渲染的纹理部分的大小相同,例如顶点之间的 100 x 100 以渲染 100 x 100 的纹理部分。假设基于零的像素坐标,纹理像素来自 0(s) 和 104(t),因此 UV(st) 被计算为 0 / 1024 和 104 / 512,范围为 100 / 1024 和 204 / 512。

然而,当我渲染四边形时,我从 103(t) 处的像素坐标中得到一条线,它是图像不同部分的一部分,所以它真的很突出。我可以通过将 UV 设置为 0 / 1024 和 105 / 512 来解决这个问题,但这对我来说似乎非常错误。

我一直在寻找一段时间,找不到我做错了什么。我在 glparams 中尝试了 GL_LINEAR、GL_NEAREST、clamping 等,但无济于事。有人可以指导我解决我的错误吗?

0 投票
2 回答
851 浏览

java - 使用 Ortho2D 在 OpenGL 中映射四边形的问题纹理

以下代码生成以下图像。我用于背景的图像是 640 x 480,displayMode 也是如此。纹理背景是 .bmp 文件,使用 Slick 纹理加载器加载。我很困惑为什么它没有填充 Quad 以及为什么它被反射。编辑:我的 OpenGL 场景的背景是粉红色的,你看到的黑色来自创建的 Quad。背景图像是带有 2px 浅蓝色边框的绿色块,上面贴着“测试”。

OpenGL纹理错误映射

现在,当我添加时,GL11.glTranslatef(20.0f, 20.0f, 0.0f);您会注意到出现了粉红色,这是在我的“initGL”方法中创建的颜色: GL11.glClearColor(1.0f, 0.75f, 0.796f, 0.0f);在此处输入图像描述

我的 GL_PROJECTION 在推送之前包含以下内容,调用 renderBackground() 时我的 GL_MODELVIEW 未修改。

0 投票
3 回答
591 浏览

opengl - 在OpenGL中绘制相邻的纹理映射矩形

我正在使用以下代码绘制许多纹理映射的矩形,它们彼此重叠:

这会以全尺寸正确呈现,但是当我用 调整它的大小时glScale,一些矩形之间会出现单像素间隙。

但是,如果我删除纹理贴图,矩形总是正确地相互邻接。

出了什么问题,我该如何解决?

0 投票
1 回答
1072 浏览

html - 你能推荐一个能够支持 SIMPLE 3d 的画布库吗

我需要做的是创建一个应用了正确纹理的我的世界“老兄”的简单预览。

我不关心复杂的动画(尚未)或详细的照明(尚未),但我想使用画布而不是依赖于 WebGL(还没有真正得到广泛支持)。

对于这组限制,您会推荐哪些技术?

啊,还有,我不需要编辑或保存皮肤什么的,只是一个简单的显示。