问题标签 [render-to-texture]

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

iphone - OpenGL ES 纹理组合而不是替换(适用于设备,不适用于模拟器)

我反复将 UIView 渲染到 OpenGL 纹理。设备上运行良好(纹理按预期更新)。在模拟器上,纹理最初是正确的(正确的 alpha 和颜色),但随后对纹理的更新似乎与现有纹理相结合(好像“粘贴”到现有纹理上)而不是替换现有纹理,逐渐产生丑陋的混乱。

一些(可能)相关的上下文:

  • 我正在使用 OpenGL ES 1.1
  • 我在 2007 MBP(Radeon X1600 视频)上的 OSX 10.6.8 上运行 Xcode 4.0.2(Build 4A2002a)
  • 项目使用iOS SDK 4.3,部署目标为iOS 4.0

这是将视图渲染到纹理的代码(相同的代码负责初始渲染和后续更新)。

最初我并不担心模拟器和设备之间的区别,但是现在我需要使用模拟器制作教学视频。

(有趣的是,当模拟器设备设置为 iPhone 时,覆盖比设置为 iPhone(视网膜)时有额外的 RGB 噪声)

0 投票
1 回答
62 浏览

iphone - 预先绘制我的关卡的静态部分

我有一个基于关卡的游戏,它使用平铺引擎来呈现这些关卡。关卡的大部分部分在整个关卡中保持静止,例如地面和天空。
我考虑过将平铺数据中的地面和天空预渲染到渲染纹理,然后每帧都绘制它,而不是每帧绘制一堆预制件。
整个关卡始终可见,因此无需担心不会绘制的内容。
我可以看到渲染纹理的唯一缺点是它占用内存空间(虽然是图形空间),而预制件很小并且可以复制到整个地方。
什么是更好的?预先绘制整个东西还是每帧都绘制所有预制件?

0 投票
1 回答
649 浏览

opengl-es - cocos2dx 中屏幕尺寸四边形的 glOrtho 参数

我正在创建一个 2048x2048 的渲染纹理,并在其上渲染一个大小为 2048x2048 的精灵,覆盖整个渲染纹理。glOrtho(..) 的参数是如何计算的?glOrtho((float)-1.0f , (float)1.0f , (float)-1.0f , (float)1.0f, -1, 1) 适用于大小为 1024x768 和 512x512 的精灵。渲染目标的最大分辨率有什么限制?

0 投票
1 回答
5632 浏览

ios - 在 iOS OpenGL ES 上渲染到纹理——适用于模拟器,但不适用于设备

为了提高我在 iPad 上的 OpenGL ES 应用程序的性能,我计划在纹理上绘制一个很少更新但渲染时间很长的元素,所以我可以只使用纹理,除非必须重新绘制元素。然而,虽然纹理在模拟器和设备上都正确映射,但只有在模拟器上才能真正渲染到纹理中。

以下是我添加到项目中的代码。在设置场景时,我创建了所需的缓冲区和纹理:

新 FBO 上的A glFramebufferStatusOES(当然是在它未绑定之前)在模拟器和设备上产生一个“帧缓冲区完成”返回值。请注意,我为纹理设置了粉红色的透明颜色,以确认纹理实际上已被渲染,而问题实际上只是纹理从未被绘制到。

每当需要重新绘制纹理时,我都会在渲染元素之前执行此操作:

以及实际渲染后的以下内容:

最后,每次重绘屏幕时,我都会将纹理映射到屏幕上适当位置的四边形,如下所示:

在 iPhone 和 iPad 模拟器(4.2、4.3)上,代码按预期工作。我看到动态渲染的纹理显示在相应的位置,由于我的调试语句,当然是粉红色而不是透明背景。然而,在我的 iPad 4.2 设备上,只渲染了粉红色的矩形,而不是在渲染到纹理步骤中应该绘制的内容。因此,纹理被正确地渲染到屏幕上,但由于某种原因,在设备上,渲染到纹理的代码实际上无法将任何东西渲染到纹理上。

我想我正在使用设备上不可用的一些功能,或者在某处做出错误的假设,但我无法弄清楚它是什么。我还尝试通过 OpenGL ES Analyzer 运行它,但它只给了我一些基本的性能优化技巧。我需要在哪里寻找问题?

0 投票
1 回答
490 浏览

lwjgl - 尝试将场景渲染到 FBO 返回白色

所以这就是我想要做的。我正在尝试使用 LWJGL 制作一个 2d 游戏,该游戏具有使用图像作为图块的动态生成的地形。它工作得很好,但是当我尝试进行缩放时,图块的边缘会出现深色阴影,并且我会在图块之间得到一个额外的像素。这是缩放前后的屏幕截图:

缩放前后截图: http: //postimage.org/image/rhuc9744/

我看了又看,从我在互联网上收集到的信息来看,我认为主要是缩放导致像素精度问题,在混合后会变得更糟。我看到一个博客说我可以在图块之间重叠一些像素,但这似乎太复杂了。我已经尝试了所有的混合选项,但都没有奏效。所以我想,我应该把所有的图块渲染到一个缓冲区,一个 FBO,然后将它应用为一个大纹理,所以即使我放大,我也不会看到暗边,因为它只是一张巨大的图片。所以我已经阅读了很多关于 FBO 的教程,但大多数(如果不是全部)都是针对 3D 的,而我实际上已经开始工作了。问题是当我将它应用于二维正交时。代码中断,我得到的只是一个白框。我已经被这个问题困扰了好几天了,我似乎无法使用谷歌找到答案。这里'

该代码在 resource/lamp.png 中加载图像,该图像可以是任何 .png 文件,并尝试将其渲染到 FBO,然后将其作为 2d 四边形中的纹理应用。出于某种原因,当我尝试将 FBO 绑定为纹理时,我只会得到一个白色的空白四边形。我不确定我是否没有正确渲染到 FBO,或者我没有正确绑定它。您可以检查方法 draw() 以便您知道我在说什么。就像我说的那样,我已经被这个问题困住了一天,所以非常感谢任何帮助。

资源/lamp.png:http://s3.postimage.org/rhpdn5ms/lamp.png?noCache=1315464566

0 投票
1 回答
1720 浏览

shader - 渲染到纹理 OpenGL ES 2.0

我正在尝试使用硬件优化的 2D 库来缩放(非插值缩放)图像。现在我是

  1. 加载原始图像
  2. 制作原始图像的副本
  3. 使用 2D 库“放大”副本
  4. 使用 glTexImage2D 从图像生成纹理
  5. 将它们应用于我绘制的矩形

我还不能上传图片,但这里有一个截图链接。 http://img.photobucket.com/albums/v336/prankstar008/zoom.png

我想每帧将右侧的图像放大和缩小一定量,而不是每次都使用 glTexImage2D 来破坏我的性能,我想渲染到纹理。我的问题是

  1. 这是对纹理进行渲染的有效应用吗?为澄清起见,2D 库采用指向填充了原始 RGB(A) 数据的缓冲区的指针,并返回指向应用了 2D 操作的新数据的指针。
  2. 我认为我的大部分困惑与纹理如何与着色器交互有关。有人可以解释在 GLES2 中将纹理应用于表面的最简单方法吗?我显然有一些工作,如有必要,我可以发布代码片段。
  3. 同样为了澄清,虽然我不确定这是否重要,但这是在 Android 上运行的。

谢谢你。

0 投票
1 回答
215 浏览

xna - 重用渲染目标“溢出油漆”?

我有一些这样的代码:

(注意:这是精简到最小的复制代码,不是我实际使用的)

如果我在第二个代码块之前将 aRegularTexture 渲染到屏幕上,它看起来很好并且没有受到影响。但是如果我在第二个代码块之后渲染它,它就会被设置为 aModifiedTexture 的内容,即使我从来没有做任何会导致这种情况的事情。为什么?(使用 XNA 3.1)

0 投票
2 回答
2445 浏览

c++ - 在 OGRE 中创建动态纹理时获得错误的 RGB

嗨,我在尝试创建动态纹理以在我的食人魔窗口中指定为背景时遇到问题。我想为纹理的每个像素动态分配值,然后将此纹理用作背景。我使用此代码创建动态纹理。

在这段代码中,我为每个值分配了蓝色( R:0 G:0 B:255 )。我希望获得完整的蓝色窗口,但我获得的不是蓝色背景,而是图片中看到的这个背景。 在此处输入图像描述

在我获得的纹理中,不是蓝色背景,而是有 3 种不同的颜色类型,它们总是依次重复。蓝色像素是真实的,但其他 2 种颜色也是蓝色的。我找不到导致此问题的原因。我能做些什么?什么是错误的部分?

0 投票
1 回答
228 浏览

xna - 使用 RenderToSurface 绘图时出现透明度问题

我在使用 RenderToSurface 绘制半透明对象时遇到问题(当我直接在设备上绘制对象时它正在工作文件)。问题是当我在 RenderToSurface 上绘制 Alpha 值为 50% 的对象时,当我在设备上绘制表面时,对象的透明度无效。我的代码如下。

[代码] RenderingSurface.BeginScene(RenderTexture.GetSurfaceLevel(0), view);

RenderSurface 具有相同的形状,透明度为 50%。

绘制曲面的代码。

0 投票
1 回答
1038 浏览

python - Blender 可以根据文本文件生成场景吗?

我用 Python 编写了一个程序,它生成一个 10,000 个瓦片坐标平面,每个瓦片都具有纹理、温度、高程等特征。我正在为一个项目这样做,并认为展示项目这一部分的更好方法是展示它的 3d 渲染,我知道的最好的程序是 Blender。我知道可以用 Python 为 Blender 编写脚本,但我不确定 Blender 如何根据我的 Python 程序写入的文本文件生成内容。如果有人知道 Blender 是否以及如何从文本文件或任何其他方式生成东西,我可以让我的 Python 程序写入 Blender 会很棒!

~ 谢谢