具有奇数宽度的 16 位纹理是透明的

2023-12-02

我使用以下 OpenGL 命令上传 35 x 100 16bpp 纹理:

glTexImage2D(GL_TEXTURE_2D, 0, GL_RG8, 35, 100, 0, GL_RG, GL_UNSIGNED_BYTE, pixelData);

但随着 y 的增加,生成的纹理会向左倾斜一个像素(无论是在绘制时还是在 GPU 内存中检查时):

o o x o o               o o o x o
o o x o o               o o o o x
o o x o o               x o o o o
o o x o o               o x o o o
o o x o o  becomes->    o o x o o

如果给定的宽度不同于pixelData一个像素,但缓冲区和给定的尺寸是准确的。将纹理更改为 36 x 100 且不进行其他更改也可以解决该问题。这种情况仅发生在宽度为奇数的纹理上。

我的问题是,这是驱动程序错误吗?据我了解,现代硬件上允许使用非 POT 纹理,但这表明仍然存在某种未公布的对齐要求,可能特定于 16bpp 纹理;至少在我能找到的任何地方都没有提到这种行为或要求。


纹理必须在每条扫描线(水平行)的末尾处满足对齐方式,通常默认为 4 字节。如果不满足这种对齐方式,纹理将需要在这些位置进行填充,您必须在上传的像素数据中提供这些位置。除非您将非 pow2 纹理大小与每像素少于 32 位的纹理数据混合在一起,否则通常不会出现此问题。

Using glPixelStorei()可以根据需要将此要求调整为 2 或 1 的对齐方式,或者在处理 16 位纹理时,您可以简单地确保纹理大小对齐为 4 的倍数。

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

具有奇数宽度的 16 位纹理是透明的 的相关文章

  • C 编程 - 文件 - fwrite

    我有一个关于编程和文件的问题 while current NULL if current gt Id Doctor 0 current current gt next id doc current gt Id Doctor if curre
  • “构建”构建我的项目,“构建解决方案”则不构建

    我刚刚开始使用VS2010 我有一个较大的解决方案 已从 VS2008 成功迁移 我已将一个名为 Test 的控制台应用程序项目添加到解决方案中 选择构建 gt 构建解决方案不编译新项目 选择构建 gt 构建测试确实构建了项目 在失败的情况
  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 测试用例执行完成后,无论是否通过,如何将测试用例结果保存在变量中?

    我正在使用 NUNIT 在 Visual Studio 中使用 Selenium WebDriver 测试用例的代码是 我想在执行测试用例后立即在变量中记录测试用例通过或失败的情况 我怎样才能实现这一点 NUnit 假设您使用 NUnit
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 一步步在 macOS 上编写 hello world

    我在 mac os x86 64 架构 的汇编方面遇到了很大的困难 我想向您介绍 hello world 程序的解释 如果您能向我提供反馈意见以及建议和解释 我将不胜感激 话虽如此 让我们进入代码 你好世界程序 Never felt the
  • 使用条件格式按类别交替设置数据格式

    我有一个电子表格 其中有很多行 如下所示 Name ID Category Attributes name0 753 cat1 name1 724 cat1 name2 149 cat1 name3 265 cat1 name4 032 c
  • 在 C 风格方法中访问实例变量

    有人可以确认您无法从同一类的 C 风格函数中访问 Objective C implementation 块中定义的实例变量吗 编译器抛出错误 提示 XXX 未声明 其中 XXX 是实例变量名称 这是我要解释的示例 interface Fon
  • 通过 Actionscript 3.0 使用 HTTP POST 上传 zip 文件

    我有一个 zip 文件 该文件是通过在桌面 Flex 4 6 应用程序中的视图上拖放而创建的 这会触发自动上传 zip 文件的服务 我可以使用以下代码将有关 zip 文件的元数据发送到服务器 var urlRequest URLReques
  • 在 Symfony 2.8、3.0 及更高版本中将数据传递给 buildForm()

    我的应用程序当前使用构造函数将数据传递到我的表单类型 如中所建议的这个答案 但是 那Symfony 2 8 升级指南建议将类型实例传递给createForm函数已弃用 将类型实例传递给 Form add FormBuilder add 和
  • Google Maps API v3 - infoWindows 均具有相同的内容

    我在使用 infoWindows 和 Google Maps API v3 时遇到了问题 最初 我遇到了其他人在打开新窗口时关闭 infoWindows 的问题 我想通过预先定义 infowindow 来解决这个问题 现在 当我单击新标记时
  • file_get_contents 脚本适用于某些网站,但不适用于其他网站

    我正在寻找构建一个 PHP 脚本来解析 HTML 中的特定标签 我一直在使用这个代码块 改编自这个tutorial 该脚本适用于某些网站 例如上面的 google 但是当我尝试使用其他网站 例如 freshdirect 时 我收到此错误 警
  • pyplot散点图标记大小

    在散点图的 pyplot 文档中 matplotlib pyplot scatter x y s 20 c b marker o cmap None norm None vmin None vmax None alpha None line
  • 我想在 React 的画布上录制视频

    我查了很久 觉得有必要在这里问一下 我之前使用的 npm 包什么也没做 有人曾经做过或经历过这样的应用吗 我想做的就是在画布元素上绘图时将其录制为视频 提前致谢 是的 您可以使用媒体流 捕获流 and 媒体记录器为了那个原因 下面是一个示例
  • VBA执行字符串中的代码

    我正在尝试执行字符串内的 vba 代码 而不将代码写入临时文件中 例如 Dim code As String code n 0 e i e 0 For e i e 0 To 100 n 1 Next 我尝试过 Eval Evaluate R
  • 如何更改行尾约定?

    我有一个我认为很简单的任务 我需要创建一个在行尾使用 unix LF 约定的文本文件 然而 当我尝试使用 pandas to csv 来完成此操作时 我最终得到了 CR LF 如果我留在我的机器上并且我使用 python 来处理所有事情 这
  • 动态创建电子表格菜单项

    我正在尝试使用 Google Apps 脚本在 Google 表格中创建动态填充的菜单 我有一张 课程 表 其中列出了我教授的课程 在运行我的脚本时 我让脚本读取这些类并将其加载到数组中 为了仅在原始 类 表中硬编码值 我想为每个类创建一个
  • Google 地图自定义信息框

    我正在尝试按照此示例合并自定义信息框 但我的代码不起作用 有人可以看一下我哪里出错了吗 我已经评论了示例代码的开始 结束位置以及我试图调用它的位置 function initialize var mapOptions zoom 12 cen
  • IntelliJ IDEA 中代码生成的自定义

    我使用 IntelliJ IDEA 12 我可以自定义使用 重构 功能生成的代码吗 例如 我想更改设置生成 封装字段 的模板 public void setField String field this field field to pub
  • 为什么从标准模块(而不是用户窗体)调用 VBA 代码时运行速度更快?

    Alternate Title Why does pressing Esc make my MS Word macro run faster 在等待一些代码运行时 我偶然发现了一些有趣的事情 Code runs slow press Esc
  • 如何在内核空间中使用 netfilter 钩子路由分割的数据包

    我必须在 PRE ROUTING 挂钩中将大数据包拆分为较小的数据包 我已经完成了将数据包分割成更小的数据包 创建 skb 设置 ip 和 udp 标头等的必要步骤 但我不明白的是如何路由数据包 我现在可以在数据包中附加数据 可以在我之前的
  • 转换不带时间的不同时区的日期

    我将日期存储在UTC长并以用户时区显示 但是当我尝试只存储没有时间的日子时 它会误导不同的日期 例如 将活动安排在 05 06 2016 2016 年 5 月 6 日 该日期对于所有没有时区的区域都是唯一的 如果来自 GMT 5 30 时区
  • 如何在 Xcode Story Board 中添加有关多设备的动态字体大小

    我在storyBoard中添加了自动布局 带有 An h 任何 但由于字体大小固定 所有设备上的字体大小都是相同的 4 4 7 5 5 英寸 4寸的看起来不错 但是5 5英寸的 太小了 我想在任何设备中动态增大和减小 UIlabel 字体大
  • 如何在 Woocommerce 中按商品设置运费

    在 Woocommerce 中 当我在购物车中添加多个产品时 运费仅适用于 1 个产品 我应该如何更改它以将成本应用于每个项目 如下图所示 适用打印机的运费 但不适用液晶显示器的运费 如何在 Woocommerce 中按商品设置运费 在 W
  • 具有奇数宽度的 16 位纹理是透明的

    我使用以下 OpenGL 命令上传 35 x 100 16bpp 纹理 glTexImage2D GL TEXTURE 2D 0 GL RG8 35 100 0 GL RG GL UNSIGNED BYTE pixelData 但随着 y