问题标签 [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 回答
1581 浏览

xna - 在 XNA 中缩小 Texture2D

我想将一个 Texture2D 对象缩小为 XNA 中的另一个 Texture2D 对象。

原因是使用缩小的对象进行基于像素的碰撞检测。

这可以做到吗?

0 投票
1 回答
2670 浏览

iphone - Texture2D iPhone SDK openGL

我在使用 OpenGL ES 的 iPhone 游戏中使用 Texture2D 类。

他们有什么好的教程来理解 Texture2D 类吗?

具体来说,我正在查看用于打印文本的 initWithString 方法。作为它的实现方式,当你使用它时你会得到白色的文本。我想修改方法,以便可以指定文本的 RGB 颜色。任何帮助/指示?

0 投票
2 回答
650 浏览

xna - 如何在 Zune XNA 中加载图片而不会耗尽内存?

我正在编写一个 XNA 程序,用于显示 Zune 上特定相册中的图片。问题是,如果我从相册中的所有图片加载纹理,程序就会耗尽内存。一旦用户移动到下一张图片,我尝试一张一张地加载并在上一张图片纹理上调用 Dispose。这可行,但是一旦处理后我就无法从上一张图片中取回纹理,因此用户无法在不重新启动程序的情况下查看过去的图片!

0 投票
3 回答
263 浏览

opengl - 是否有更有效的方法来处理 OpenGL ES 纹理的 2^n 像素大小要求?

对不起,如果我的问题不清楚。让我详细说明。

我有一个大小为 100 x 200 的矩形,我有一个适合该矩形的图形大小为 100 x 200。由于 OpenGL 要求所有纹理都具有 2^n 的宽度和高度,因此我基本上将 100 x 200 的图形直接放入 128 x 256 的图像中。它适用于 OpenGL,因为我只是要求它仅在矩形上绘制我需要的一部分纹理。然而,让我烦恼的是,在 128 x 256 的纹理中,有很多未使用的空间。

在这种情况下,有没有更好的方法来处理这些未使用的空间?或者这应该是要走的路?

0 投票
1 回答
685 浏览

c++ - 如何将从后台缓冲区获取的像素数据绘制回自身?

我正在使用OpenGLES为 Symbian 5th edition 开发一个移动应用程序。
这个应用程序是一个非常标准的 2D 应用程序,我没有使用 DepthBuffer。

我需要抓取显示的快照,然后将相同的快照绘制回后台缓冲区。

我正在使用glReadPixels((GLint)0, (GLint)0, (GLint)nWidth-1, (GLint)nHeight-1, GL_RGB, GL_UNSIGNED_BYTE, m_pPixelData)

为了获得我需要的像素数据,但我对 OpenGLES 很陌生,我不知道如何将数据绘制回后台缓冲区。(在 OpenGL 中很容易使用 DrawPixels ..)

我读过我应该从数据中生成纹理,所以我做到了。但现在我不确定如何绘制这种纹理。

我需要将它绘制为矩形元素的纹理吗?如果是这样,我应该如何定义这个矩形?(坐标对我来说没有意义..)

显示尺寸为 480x640,这是我要用于绘制矩形的代码:

请注意,上面的代码是我一路上学到的,我认为这是我应该做的事情的大纲。随时让我离开这条赛道。:)

我感谢你的时间。

0 投票
1 回答
614 浏览

c# - XNA:将结构作为纹理获取到 GPU

我使用 XNA 作为我在 CPU 上进行的一些图形处理的一个很好的简单基础,因为它已经提供了很多我需要的东西。目前,我的“rendertarget”是我编写的自定义颜色数组struct,由三个浮点字段组成:R、G、B。

当我想在屏幕上渲染它时,我struct通过简单地将结果钳制在 0-255 的字节范围内,手动将此数组转换为 XNA 提供的颜色(每个通道只有 8 位精度)。然后我将这个新数组设置为 a 的数据Texture2D(它有 a SurfaceFormatof SurfaceFormat.Color)并用 a 渲染纹理SpriteBatch

我正在寻找一种方法来摆脱 CPU 上的这种转换过程,只需将我的后备缓冲区作为某种纹理直接发送到 GPU,我想做一些基本的后处理。而且我确实需要比 8 位更高的精度(不一定是 32 位,但由于我所做的不是 GPU 密集型的,所以我猜它不会受到伤害)。

我该怎么做呢?

我想如果我给 Color 一个 32 字节的显式大小(所以 8 字节填充,因为我的三个通道只填充 24 位)StructLayout并设置使用to (32 字节大)SurfaceFormat渲染的纹理并填充纹理有了它,它可能会起作用。但我得到了这个例外:SpriteBatchSurfaceFormat.Vector4SetData<Color>

您在此方法中用于 T 的类型是此资源的无效大小。

是否可以使用任意组合struct并将其解释为 GPU 中的纹理数据,就像您可以通过VertexDeclaration指定其布局方式来处理顶点一样?

0 投票
1 回答
1095 浏览

iphone - iPhone:从应用程序文档中的文件加载图像时,创建 Texture2D 的速度要慢得多,为什么?

比什么慢?比从应用程序包加载的图像创建相同的纹理要慢。慢多少?在 iPhone 上慢 80 倍,在 Mac 上类似(但总体上更快)。

我下面的示例显示了使用 imageNamed: 加载图像:从第一张图像创建纹理;将图像保存到应用程序的 Documents 目录中的文件;从该文件加载图像;从第二个图像创建纹理。

图像为 640x640 png,每种情况下创建 100 个 64x64 纹理。创建时间为 0.51 秒与 41.3 秒。

谁能解释这个巨大的差异,并指出加快第二种情况的方法和方法,如果可能的话,使其与第一种情况一样快?

鲁迪夫

0 投票
2 回答
1079 浏览

iphone - 像这样加载openGL纹理是否正确?

几个月前我开始了一个越来越大的 OpenGL 项目……我从 crashLanding 示例开始,我使用 Texture2D。

我还使用单例类来加载我的纹理,这是纹理加载的样子:

等等近50张照片

它在 3GS 上运行良好,但有时在 3G 上存在一些问题。

我错了吗?

谢谢

0 投票
1 回答
1033 浏览

iphone - 如果使用多个 EAGLView,则不绘制纹理

我对 Apples EAGLView 和 Texture2D 有一点问题。如果我创建一个 EAGLView 实例并绘制一些纹理,它会很好用。但是,每当我创建 EAGLView 的第二个实例时,都不会绘制新视图中的纹理。
作为 OpenGL 的新手,我现在完全知道是什么导致了这种行为。如果有人愿意提供帮助,我创建了一个重现该行为的小项目。该项目可以在http://www.cocoabeans.se/OpenGLESBug.zip找到

非常感谢,
蒂姆安德森

更新
我尝试使用共享组,但我不确定我是否正确使用它们。但是,它确实稍微改变了行为;而不是仅在第一个实例化视图中绘制纹理,它现在在最后一个实例化视图中绘制纹理并在其他视图中绘制白色矩形。我不知道这是好是坏,但至少现在其他视图中出现了一些东西。
这让我发疯,如果有人能帮助我解决这个问题,我将不胜感激。我已经在http://www.cocoabeans.se/OpenGLESBug.zip更新了项目以反映这些变化。

干杯,
蒂姆

第二次更新
在尝试了更多的事情之后,似乎问题与 Apple 的 Texture2D 类有关,但我不确定究竟是什么导致了这种行为。我认为最好的办法是编写我自己的纹理类(它将帮助我理解 OpenGL 如何处理纹理,这可能会派上用场)。

0 投票
1 回答
144 浏览

iphone - 如何从 AtlasSpriteManager 创建纹理?

我想要做的是使用 1024x1024 图像创建一个巨大的纹理(宽度超过 1024)。我可以使用 AtlasSpriteManager 检索图像,但每当我尝试从管理器中检索纹理时,我只能获得第一张图像。

我需要在管理器中设置每个 AtlasSprite 的位置以制作冗长的纹理。

有什么建议么?