问题标签 [texture2d]

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 回答
714 浏览

iphone - 用于 JPEG 的 iPhone OpenGL ES 纹理管道

我无法让我的纹理管道为 JPEG 工作。一切都适用于 PNG,但转换一直是个问题。

我通过 UIImage 和 CGBitmapContextCreate 加载图像数据

然后我用调用设置我的 GLTexture ......

我怀疑这个 glTexImage2D 调用是问题所在。我一直在使用不同的组合来尝试让事情发挥作用。alpha 的 BitmapInfo 状态是“kCGImageAlphaNoneSkipLast”,所以我不确定我是否应该使用 RGBA 和 GL_UNSIGNED_SHORT_5_5_5_1,但到目前为止我没有尝试过任何组合。我得到的最接近的是...

这给了我非常夸张的纹理(颜色边缘可辨别,但一切都太亮了)

任何帮助都会很棒。我正在使用 JPEG 来尝试节省 PNG 的空间。

0 投票
1 回答
1969 浏览

opengl - 同一着色器中的 GLSL textureCube 和 texture2D

我似乎无法同时拥有texture2D()一个textureCube()着色器。当我这样做时,什么都没有出现,也没有错误。我用我自己的着色器加载器和 Apple GLSL 着色器构建器都试过了,同样的事情发生了。即使我textureCube()在顶点着色器和texture2D()片段中也会发生这种情况。他们似乎自己工作得很好,但是一旦他们被召集在一起,无论以何种顺序,都没有任何显示。

0 投票
1 回答
610 浏览

cocos2d-iphone - 如何在 cocos2d-iphone 中旋转 Texture2D

我正在使用 cocos2d-iphone 制作游戏,我想将 Texture2D 旋转 20 度,我该怎么办?

我试过glRotate(20.0f, 0.0f, 0.0f, 1.0f)了,但它不起作用。

那么有什么想法吗?

0 投票
3 回答
1485 浏览

java - Java OpenGL 屏幕大小的纹理映射四边形

我有一个 Java OpenGL (JOGL) 应用程序,我正在尝试创建一个覆盖整个屏幕的纹理映射四边形。在将一些像素绘制到缓冲区中,然后我想将这些像素读入纹理并在屏幕上重绘它们(应用了片段着色器)。我将纹理映射到视口的代码是:

最终结果是一个四边形,它没有覆盖整个视口(它部分打开)并且不包含缓冲区中的像素。我在这里做错了什么?

谢谢,杰夫

0 投票
1 回答
2648 浏览

c++ - 映射动态纹理导致“已映射错误”

我刚开始使用 Direct3D11,我正在尝试创建一个动态纹理,我计划每秒用新数据更新几次。我的问题是每次我用新数据更新纹理时,我都会从 D3D 调试器中得到这个错误:

D3D11:错误:ID3D11DeviceContext::Map:此资源已被映射![RESOURCE_MANIPULATION 错误#2097213:RESOURCE_MAP_ALREADYMAPPED]

在运行应用程序一段时间后,最终会从 Map 调用中变成 E_OUTOFMEMORY 错误。

我正在创建这样的纹理:

并像这样更新其数据:

在创建纹理并将数据映射到它之前,我在程序中所做的就是初始化 Direct3D 设备。我完全被自己做错了什么难住了。我一直在尝试在 msdn 上尽可能多地阅读有关此内容的信息,但没有任何东西可以帮助我弄清楚出了什么问题。根据 msdn,我正在采取适当的步骤:

http://msdn.microsoft.com/en-us/library/ff476905(v=vs.85).aspx#Dynamic

我相当确定我也正确填写了纹理描述。

问题可能源于我对 d3d 设备的初始化吗?我是否滥用了地图功能?我没有提供足够的背景信息吗?关于发生了什么的任何想法?

附加信息:当我尝试将数据映射到顶点着色器的常量缓冲区时,出现相同的“资源已映射”错误。另外,我在另一台计算机上对其进行了测试,并遇到了相同的映射问题。

更新:我下载了一些 D3D11 的教程代码,并在教程代码完成初始化 d3d 后立即将我的纹理创建和映射代码放入其中。我只是想看看我是否会收到映射错误。正如预期的那样,我没有收到“资源已映射”错误。此外,当我从教程中复制 d3d 初始化代码并将其替换为我的时,我仍然得到资源已映射错误,这甚至让我更加困惑,因为我在初始化 d3d 之前所做的只是创建一个窗口。

0 投票
1 回答
2578 浏览

jquery - 如何将从 JQuery.get 下载的数据转换为 ArrayBuffer?

在过去的三天里,我试图用我知道的各种关键字来寻找答案,但没能走得更远。我是 JavaScript/WebGL 的新手,所以这可能是我完全的无知,如果是这样,请原谅我。

这就是我从服务器下载二进制文件(自定义图像文件格式)并从下载的数据中读取前四个字节(Int32)的方法:

下载的数据“imageData”的大小(imageData.length)与服务器上的文件一样,所以我认为下载成功。

我打算读入下载的文件,并提取标题信息(并使用 WebGL Texture2D 中的其余图像数据进行显示)。那么问题来了:这是处理下载的自定义图像(在 WebGL 中用作纹理)的方式吗?如果没有,那么您的建议是什么?

0 投票
1 回答
6454 浏览

xna - XNA 在运行时在 Texture2D 上绘制/绘制

早上好(如果你所在的地方是早上)

我一直在环顾四周,并没有看到令人满意的方法来做到这一点,所以我想我会四处询问......

理想世界我希望能够生成一个透明的 Texture2D 对象。将此绘制到屏幕上我希望能够“绘制”它,即当鼠标左键按下时,光标所在的任何像素都应设置为黑色。在此之后,我将需要能够使用此纹理。

使用纹理是简单的部分,我们可以简单地为“绘画”对象创建一个新的 Texture2D 属性,并在 SpriteBatch.Draw 方法中使用它。两个棘手的部分是

  1. 生成指定大小的 texture2D 对象,在代码中填充透明度。
  2. 即时编辑该纹理2D(即能够改变像素颜色)

如果有人对这些有任何经验,您将不胜感激。

0 投票
1 回答
784 浏览

texture2d - 多个纹理不显示

我是DirectX10的新手。现在我正在开发一个 Direct10 应用程序。它混合了两个根据用户输入手动填充的纹理。当前的实现是

  1. 使用 D3D10_USAGE_STAGING 创建两个空纹理。
  2. 创建两个资源着色器视图以绑定到像素着色器,因为着色器需要它。
  3. 通过调用 CopyResource 将纹理复制到 GPU 内存。

现在的问题是我只能看到第一个纹理,但看不到第二个。在我看来,绑定不适用于第二个纹理。

我不知道它有什么问题。这里的任何人都可以告诉我吗?

谢谢,马歇尔

COverlayTexture 类负责创建纹理、创建资源视图、使用来自另一个应用程序的映射位图填充纹理并将资源视图绑定到像素着色器。

我使用 COverlayTexture 类的两个实例,每个实例分别将自己的位图填充到其纹理中,并使用序列 COverlayTexture[1] 然后 COverlayTexture[0] 进行渲染。

FX 文件中的混合状态设置定义如下:

FX 文件中的像素着色器定义如下:

再次感谢。

为保罗编辑:

非常感谢,保罗。问题是对象的哪个实例应该绑定到 alpha 纹理或漫反射纹理。作为测试,我将 COverlayTexture[0] 绑定到 alpha 并将 COverlayTexture[1] 绑定到漫反射纹理。

我为这两个资源视图调用了 PSSetShaderResources。

结果是我什么都看不到。我还尝试了通道 x,y,z,w。

0 投票
0 回答
526 浏览

iphone - iPhone OpenGL ES 背景纹理问题

我正在尝试将 .png 文件设置为我在 OpenGL 中的背景,希望在其上绘制更多对象。我有一张 320x480 RGB 图像。我设置我的顶点,如下所示:

当我运行代码时,它显示为小于全屏灰色框,而不是我的图像。任何想法我做错了什么?

0 投票
3 回答
572 浏览

c# - XNA new Texture2D 保留旧数据

我有一个奇怪的问题,我认为我对 XNA 框架的知识相对缺乏,这使我无法修复。

基本上,我有一个 Texture2D 引用,它设置为 Texture2D 的一个新实例。在运行期间,它的一些像素被设置,这一切都很好地工作,因为它在游戏循环中绘制。

奇怪的是,如果我将引用设置为 null,(它只会在不为 null 的情况下绘制)它不会按预期绘制。

稍后,我将引用设置为新的 Texture2D 并开始将其绘制到屏幕上。问题是它保存了原始 Texture2D 对象的所有数据。

编辑

对不起,我之前没有说清楚。

我所拥有的是这样的......

第二次编辑

我还设置了一个 for 循环,并在创建纹理后手动将纹理的每个像素设置为一种颜色。这可行,但它仍将像素显示为我之前设置的颜色。这很奇怪。


请忽略此线程。这个问题非常尴尬是我自己做的。我有一些代码可以缓冲要更改的像素,是的……您猜对了,我没有清除它,它正在新的纹理实例上重新进行工作。

好尴尬……