opengl - glAlphaFunc 发生了什么?为什么它被弃用了?
问题描述
我正在阅读有关在 OpenGL 的片段着色器中使用“丢弃”的副作用,例如禁用早期测试。但是直到我偶然发现 glAlphaFunc 之前,我找不到任何 alpha 测试的替代方法,自 OpenGL 3.0 以来它似乎已被弃用。但是我找不到任何关于它为什么被删除的文档,而且似乎没有“丢弃”的替代方法。
解决方案
Alpha 测试(在我所知道的所有实现上)从未在早期测试阶段进行过。我认为这甚至不可能,因为在执行片段着色器之前,没有颜色或 Alpha 通道的概念。
此外,启用 alpha 测试通常会禁用早期深度测试(请参阅此处),这意味着它的行为与在着色器中使用丢弃时相同。
我不能直接回答为什么被删除,但由于和 alpha 测试glAlphaFunc
之间没有真正的区别,所以这不是一个真正的问题。discard
推荐阅读
- c# - 箭头键绑定不触发
- ios - UNNotificationServiceExtension 是否允许访问用户位置 iif 权限 - iOS
- mongodb - 如何从 mongodb 到字符串格式日期之间过滤数据库
- jenkins - 在 Jenkins Active Choice Reactive 参数中使用 Groovy 执行 AWS KMS 命令
- java - 如何实际测试具有空指针异常的控制器的服务器响应
- javascript - 关于图像文件的 php 和 javascript 中的 Ajax 代码
- erlang - Assert_receive 来测试 Genserver 消息处理程序?
- python - 在excel中将工作表名称添加到自负的最终合并工作表
- angular - 在 Angular 中为 i18n 使用 Webpack
- java - 使用增强型 For 循环在 ArrayList 中打印对象时遇到问题