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

2024-01-17

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

我一直在环顾四周,但没有找到令人满意的方法,所以我想我会四处询问......

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

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

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

如果有人对这些有任何经验,您的输入将非常感激。


您可以使用RenderTarget2D (MSDN http://msdn.microsoft.com/en-us/library/bb198676.aspx),它本身就是一个Texture2D(所以你可以使用它SpriteBatch.Draw)。这允许您以与渲染到屏幕上相同的方式渲染到纹理上。你需要使用GraphicsDevice.SetRenderTarget (MSDN http://msdn.microsoft.com/en-us/library/ff434434.aspx)进行设置。

或者你可以使用Texture2D.SetData (MSDN http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.texture2d.setdata.aspx)直接操作像素。您可以构建一个透明的Texture2D直接地 (MSDN http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.graphics.texture2d.texture2d.aspx)。别忘了Dispose您自己创建的任何纹理或其他资源!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XNA 在运行时在 Texture2D 上绘制/绘制 的相关文章

  • 使用 texelFetch() 进行纹理化

    当我将非最大值传递到纹理缓冲区时 在渲染时它会绘制具有最大值颜色的几何图形 我在使用 glTexBuffer API 时发现了这个问题 例如 假设我的纹理数据是GLubyte 当我传递任何小于255的值时 那么颜色与用255绘制的颜色相同
  • 在 SpriteKit 中预加载纹理

    我做了一些研究 但似乎找不到任何可以清楚解释如何在动画中预加载单个纹理和纹理的内容 我目前正在使用Atlas s in Assets xcassets对相关的动画图像进行分组 我的图像出现在 Atlas 中是否意味着它们已被预加载 就单个图
  • 如何计算 2D 游戏中 SCREEN 到 WORLD 的位置

    我有这个类 我用它在我的 2D 游戏中绘制精灵 using Microsoft Xna Framework using Microsoft Xna Framework Graphics using Microsoft Xna Framewo
  • 如何在 XNA 中暂停重绘?

    我制作了一个 XNA 图像查看器 但它总是重新绘制场景 即使它没有改变 而且它让我的上网本烧得很厉害 所以我希望它在没有任何变化时暂停绘制 将帧速率降低到 1 是保持凉爽的一种方法 但会导致输出滞后 如何在没有输入的情况下防止重绘 这个问题
  • Android 上符合 OpenGL-ES 2.0 所需的最小纹理大小?

    某个硬件是否需要支持最小纹理尺寸才能符合 OpenGL ES 2 0 规范 GL MAX TEXTURE SIZE 值必须至少为 1024 或 2048 或类似的值 我想知道这一点的原因是因为我正在研究使用着色器的东西 因此必须是 Open
  • 在 Three.js 中的 MeshPhongMaterial 或 MeshLambertMaterial 上投射阴影

    我觉得我在这里缺少一些简单的东西 I used JSFiddle 作者 WestLangley http jsfiddle net 4Txgp 234 它演示了如何将物体的阴影投射到平面上 当飞机只填充颜色时 一切都会按预期进行 var g
  • 如何写入 OpenGL 深度缓冲区

    我正在尝试实现一种老式技术 其中使用渲染的背景图像和预设深度信息来遮挡场景中的其他对象 因此 例如 如果您有一张房间的图片 前景中的天花板上悬挂着一些电线 则这些电线会在深度图中给出浅深度值 并且在正确渲染时 允许角色在电线 后面 行走 但
  • 线性过滤能否用于 MSAA 纹理到非 MSAA 纹理的 FBO blit?

    我有两个 2D 纹理 第一个是 MSAA 纹理 使用的目标为GL TEXTURE 2D MULTISAMPLE 第二个非 MSAA 纹理使用的目标为GL TEXTURE 2D 根据 OpenGL 的ARB texture multisamp
  • 翻转 OpenGL 纹理

    当我正常从图像加载纹理时 由于 OpenGL 的坐标系统 它们是颠倒的 翻转它们的最佳方法是什么 glScalef 1 0f 1 0f 1 0f 反向映射纹理的 y 坐标 手动垂直翻转图像文件 在 Photoshop 中 加载后以编程方式翻
  • XNA 屏幕截图显示预绽放,而不是最终渲染

    我有一个使用 Reach 图形设置在 C XNA 4 0 中编码的 Windows 平台游戏 我的项目基于 GameStateManagement 示例 但后来我向其中添加了 Bloom 和 spriteSheet spriteBatch
  • 将 system.windows.forms 与 XNA 结合使用

    我正在制作一个使用 XNA 的游戏 我想向游戏添加一些内容 例如按钮 文本框 标签 工具提示文本以及 system windows forms 附带的其他内容 如何将 system windows forms 与 XNA 合并 我可以实现任
  • WP7 XNA 显示 3D FBX 模型

    我只是初学者 很抱歉我的愚蠢问题 我的模型看起来像这样 http img265 imageshack us img265 8291 clipboard01ap jpg http img265 imageshack us img265 829
  • 如果 GraphicsDevice 出现问题,是否可以恢复它?

    我有我的游戏有这个讨厌的问题 https stackoverflow com questions 16225701 how to prevent graphicsdevice from being disposed when applyin
  • MonoGame 和 Microsoft.XNA.Framework 命名空间之间的引用不明确

    MonoGame 一个基本上将 XNA 引入 Windows Phone 8 的框架 的所有命名空间都带有前缀Microsoft Xna Framework我相信将 XNA 应用程序移植到 MonoGame 时所需的代码更改量最小化 我的问
  • 动画 GIF 作为 THREE.js 中的纹理

    我正在寻找一种在 THREE js 中使用 GIF 动画作为纹理的方法 我目前可以加载纹理 甚至是 GIF 格式 但它无法播放动画 有什么办法可以做到吗 我发现了一些像这样的链接 https github com JordiRos GLGi
  • 如何修改道路网络的 L 系统?

    向大家问好 我目前正在研究道路网络的程序生成 并偶然发现了 L 系统算法 根据我从有关该主题的各种科学论文以及有关该主题的论文的进一步论文中了解到 算法更改为使用 全局目标和局部约束 其中修改所采取的路径以适应地形等输入值和人口密度 现在我
  • SoundEffect 和 SoundEffectInstance 类之间的区别

    就像有问题一样 我不明白使用这些类有什么区别 每个类别的优点和局限性是什么 我读了很多教程 但仍然无法决定我应该做什么 为了让事情更清楚 我得到了 AudioModule AudioEmitterComponent 和 AudioListe
  • 当 OpenGL 中同时绑定 1D 和 2D 纹理时,正确的行为是什么?

    假设你有这样的东西 glBindTexture GL TEXTURE 2D my2dTex glBindTexture GL TEXTURE 1D my1dTex glBegin 正确的 OpenGL 行为是什么 要绘制一维纹理 二维纹理还
  • XNA - 保持更长的时间跳得更高

    我正在为我的游戏寻找一种简单的方法 这样当你按住空格键时 你就会跳得更高 当您 点击 时 您不会跳到最大高度 需要有一个最大值 但是 是的 我不知道如何对此进行编程 任何帮助 非常感谢 将给予反馈 谢谢 在处理跳跃的更新函数中 您可以让它跟
  • 在 Three.js 中从 Web Worker 加载纹理

    当将大纹理图像应用到网格上一段明显的时间时 Three js 会锁定浏览器的主线程 让我们考虑以下示例 var texLoader new THREE TextureLoader texLoader load someLargeTextur

随机推荐