OpenGL - 如果 alpha 则不写深度

2024-02-13

我想使用 C++ 和 GLSL 在 OpenGL 中做什么: 当纹理具有 alpha (texture.a! = 1.0;) 时,该像素不会写入深度缓冲区。 (对于颜色缓冲区,它是这样写的) 仅当像素texture.a == 1.0时才会发生写入深度;

在着色器中丢弃不是解决方案 - 那么该像素不会写入颜色缓冲区。

有任何想法吗?

@更新: 示例:我有一些由 OpenGL 渲染的 UI 图像。其中一些在角落里有阿尔法。 在场景渲染中,我有“深度预通道”来通过不计算像素上的光来保存一些像素。 我还想将 UI 图像获取到该预通道 - 但只有完全不透明的像素(alpha = 1.0)。


正如评论中提到的Andon https://stackoverflow.com/users/2423205/andon-m-coleman:“在编写片段时,您始终必须编写深度值,无法在着色器级别有选择地启用或禁用它。”

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

OpenGL - 如果 alpha 则不写深度 的相关文章

  • 在 Web 浏览器中禁用 F5 [重复]

    这个问题在这里已经有答案了 可能的重复 禁用浏览器的后退按钮 https stackoverflow com questions 961188 disable browsers back button 如何禁用浏览器上的 F5 刷新 htt
  • 使用 Xamarin.Forms 和 Zxing 生成 QR 码

    我在网上看到了很多关于这个的内容 旧帖子 但似乎没有什么对我有用 我正在尝试从字符串中生成二维码并将其显示在应用程序中 这就是我一开始的情况 qrCode new ZXingBarcodeImageView BarcodeFormat Ba
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 如何调试在发布版本中优化的变量

    我用的是VS2010 我的调试版本工作正常 但我的发布版本不断崩溃 因此 在发布版本模式下 我右键单击该项目 选择 调试 然后选择 启动新实例 此时我看到我声明的一个数组 int ma 4 1 2 8 4 永远不会被初始化 关于可能发生的事
  • make_shared<>() 中的 WKWYL 优化是否会给某些多线程应用程序带来惩罚?

    前几天我偶然看到这个非常有趣的演示 http channel9 msdn com Events GoingNative GoingNative 2012 STL11 Magic Secrets作者 Stephan T Lavavej 其中提
  • 虚拟并行端口模拟器

    在我的计算机网络课程中 我们应该通过使用本机寄存器 例如使用 outportb 等命令 来学习并行端口编程 我没有并行端口 因为我住在 2011 年 但想练习这些程序 我使用 dosbox 安装了旧的 Turboc 3 IDE 有没有一个程
  • PrivateObject 找不到属性

    我的结构基本上如下所示 abstract class A protected string Identificator get set private void DoSomething DoSomethingSpecific protect
  • 提升mapped_file_source、对齐方式和页面大小

    我正在尝试在性能很重要的上下文中解析一些大小高达几百兆字节的文本文件 因此我使用 boostmapped file source 解析器期望源以空字节终止 因此我想检查文件大小是否是页面大小的精确倍数 如果是 则使用较慢的非内存映射方法 我
  • 如何设置消息队列的所有者?

    System Messaging MessageQueue 类不提供设置队列所有权的方法 如何以编程方式设置 MSMQ 消息队列的所有者 简短的答案是 p invoke 对 windows api 函数的调用MQSetQueueSecuri
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • 从点云检测平面集

    我有一组点云 我想测试3D房间中是否有角落 所以我想讨论一下我的方法 以及在速度方面是否有更好的方法 因为我想在手机上测试它 我将尝试使用霍夫变换来检测线 然后我将尝试查看是否有三条线相交 并且它们也形成了两个相交的平面 如果点云数据来自深
  • 如果在代码中添加元素,“FindName”将不起作用

    在 WPF 应用程序中 如果在 XAML 中声明 ContentControl
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 将日期时间显示为 MM/dd/yyyy HH:mm 格式 C#

    在数据库中 日期时间以 MM dd yyyy HH mm ss 格式存储 但是 我想以 MM dd yyyy HH mm 格式显示日期时间 我通过使用 String Format 进行了尝试 txtCampaignStartDate Tex
  • 高效创建抗锯齿圆形蒙版

    我正在尝试创建抗锯齿 加权而不是布尔 圆形掩模 以制作用于卷积的圆形内核 radius 3 no of pixels to be 1 on either side of the center pixel shall be decimal a
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • 如何在 Razor 编辑视图中显示选中的单选按钮 Asp net core mvc

    尽管 Razor 视图中的 Asp 网络核心代码 model List

随机推荐

  • 具有综合和继承属性的深度递归 qi 语法(解析器)

    我使用spirit qi 语法来构造并返回非平凡对象作为其合成属性 问题是我希望语法递归地相互依赖 使用递归很简单rules 但我想要递归grammars 这是一些示例代码 请注意 循环引用 的注释 显然 如果我取消注释这些行 则无法编译
  • PhoneGap 在表单提交时将图像上传到服务器

    我在这里面临问题 因为一旦您选择图片 phonegap 图像就会上传到服务器 我不想在提交表单之前上传图像 图像自动上传到服务器 这是我不想要的 我想使用表单上传图像 其中表单包含更多与图像一起发送所需的字段 可以通过哪些方式提交表单
  • 如何让Vue在shadow dom中工作

    我有一个 Shadow dom 其中包含根元素和一个 vue 组件
  • 创建一个服务来在 Android 应用程序中的所有活动之间共享数据库连接?

    我一直在试图找出在我的 Android 应用程序中处理本地数据库访问的最佳方法 我一直在每个活动中创建一个数据库连接对象 但这似乎是一种非常低效的做事方式 做了一些研究我偶然发现这次讨论 http groups google com gro
  • 连接四游戏检查胜利 JS

    我正在开发我的第一个完整程序 并进行了两周的编程 但遇到了我似乎无法弄清楚的障碍 我正在制作一个 connect 4 游戏 并首先在 JavaScript 中构建逻辑 然后再推送到 DOM 我开始使用构造函数创建的单元对象来制作它 然后将其
  • 实现 SMS 的 GSM 调制解调器 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个为大约 1000 位用户提供服务的网站 负责协调活动安排 我想让我们的系统能够向用户发送短信 我
  • 在 python 中将 pcolormesh 与 3 个一维数组一起使用

    我正在尝试使用 pcolormesh 绘制 3 个填充坐标和值的一维数组 下面的数组只是示例 但它们遵循相同的原则 我有 3 个数组 一个用于 x 坐标 一个用于 y 坐标 一个用于它们的值 或 z 每个索引对应一个位置 索引 0 对应于
  • R 数据表中最近的“n”滚动连接

    With data table 我们可以使用以下方法将一个数据集中的值与另一个数据集中最接近的值连接起来roll nearest 一些示例数据 dt1 lt data table x c 15 101 id1 c x y dt2 lt da
  • 将行保存为 csv 格式

    我想将数据库中的一组行保存到 csv 文件中 考虑到数据是 ascii 字符 没有任何奇怪的字符 以下内容就足够了吗 my csv row join row save csv row to file 我担心的是 这是否会创建任何工具都可以接
  • 错误“mat-dialog-content”不是已知元素

    我正在尝试使用角度材料创建登录表单 我在用 angular material 7 3 0 In app module ts我导入了以下内容并将它们也放入了导入数组中 import MatToolbarModule MatFormFieldM
  • NHibernate:保留一个带有子对象的对象

    我正在尝试保留一个带有子对象集合的对象 我不能先坚持孩子 因为有FK关系 我可以先保存父级 然后将子级添加到其中 但这会带来更多工作 基本上 我只是想一步一步保存一个完全填充的对象 而不是将其分成几部分 我的映射有问题吗 抱歉它看起来很丑
  • 如何将 mailerlite.com 注册表单与 React 集成?

    Mailerlite com 允许您在网站中嵌入电子邮件注册表单 如何将其与 React 集成 具体来说 如何集成JavaScript代码 下面是一个将 HTML 表单转换为 React 代码的示例 将所有出现的 CODE 替换为示例表单中
  • 从 BouncyCastle X509 证书获取私钥? C#

    通常当我抓住一个X509Certificate2我可以从我的密钥库中调用 PrivateKey检索证书的私钥作为AsymmetricAlgorithm 但是我决定使用 Bouncy Castle 及其实例X509Certificate只有一
  • 如何在input标签内显示div?

    我正在尝试为我的网站创建像 stackoverflow 这样的标签 我网站上的用户将创建用于过滤结果或许多其他操作 如搜索 专业知识等 的标签 我能够创建标签 但无法像我们在 stackoverflow 中那样在输入框中显示它 标签之间的边
  • 为什么“out of source”构建不是默认的?

    我最近发现 您可以配置 Visual Studio 但这个问题对于任何编译器都是一样的 将中间 o 文件转储到源代码树之外的单独文件夹中 而不是与每个单独的项目并置 这使得清理项目 归档到 zip 或类似的东西变得很容易 为什么这种配置不常
  • Asp.Net AJAX 中嵌套 UpdatePanel 中的 AsyncPostback 之间存在差异

    在 ASP net AJAX 项目 WebForms 中 我有一个 UpdatePanel 在 UpdatePanel 中我有多个带有 UpdatePanel 的嵌套控件 基本上我有控件树 家长控制是网站的重要组成部分 我无法触摸它 而且它
  • 为什么 C++ 需要公共继承,忽略友元声明,才能使动态向下转型工作?

    我们在这里上课B 从类继承A 并且它有一个friend class C 作为朋友 C应该可以访问所有内容B 包括A基类 为了测试它 首先我们创建一个B实例 我们将其地址升级为A 然后我们尝试用dynamic cast lt gt 再次到B
  • 如何在 Go 中禁用 git clone 的凭据提示?

    我正在尝试运行相当于git clone在 Go 中 但如果提示输入标准输入 我想退出命令 例如 如果远程存储库中尚未设置 ssh 密钥 则进行身份验证 有没有办法做到这一点 现在它只会阻塞输入 UPDATE 特殊的 git 解决方案 从 v
  • 从 Spark 读取多个 json 文件

    我有一个 json 文件列表 我想并行加载它们 我不能使用read json 因为文件不在同一个文件夹中 并且没有我可以实现的特定模式 我试过了sc parallelize fileList select hiveContext read
  • OpenGL - 如果 alpha 则不写深度

    我想使用 C 和 GLSL 在 OpenGL 中做什么 当纹理具有 alpha texture a 1 0 时 该像素不会写入深度缓冲区 对于颜色缓冲区 它是这样写的 仅当像素texture a 1 0时才会发生写入深度 在着色器中丢弃不是