在 OpenGL 引擎中组织 GLSL 着色器

2023-12-22

哪个更好 ?

  1. To 拥有一个包含大量制服的着色器程序指定 要使用的灯光或要执行的映射(例如,我需要一个网格进行视差映射,另一个网格进行视差/镜面映射)。我会为延迟传输创建一个制服的缓存列表,并且如果需要的话,只需为每个下一个网格更改几个制服。

  2. To 有很多着色器程序对于每一种需要的情况,每一种都有少量的制服,并进行惰性绑定glUse程序对于每个网格(如果需要的话)。在这里,我假设网格已正确批处理,以避免冗余切换。


我知道的大多数现代引擎都有“着色器缓存”并使用第二个选项,因为显然它更快。

您还可以查看允许动态链接的 ARB_shader_subroutine。但我认为它仅适用于 DX11 级硬件。

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

在 OpenGL 引擎中组织 GLSL 着色器 的相关文章

随机推荐

  • Scala中如何保证类型参数不同?

    通过以下定义 可以确保具体类型参数相等 trait WithEqual T1 gt T2 lt T2 T2 所以这条线 type A WithEqual Int Int 将是合法的 现在我的问题是 如何达到完全相反的目的 因此 以下行应该n
  • 这些日志的 grok 模式应该是什么? (摄取 filebeat 的管道)

    我是 elasticsearch 社区的新人 我希望您能帮助我解决一些我遇到的困难 我的目标是使用 Filebeat 将大量日志文件发送到 Elasticsearch 为了做到这一点 我需要使用带有 Grok 模式处理器的摄取节点来解析数据
  • 如何读取图表区域内的文本框python pptx?

    我正在尝试使用自动化 pptpptx python图书馆 我正在使用模板 一些幻灯片中几乎没有图表 图表中有文本框 我尝试循环形状以获得shape id这些文本框 但我找不到shape id 当我尝试将文本框拖出图表区域时 它没有出现 文本
  • 在 Laravel 5.7 中的子域组内设置命名路由

    我一直在开发一个多租户应用程序 我正在尝试根据文档在子域中设置路由 https laravel com docs 5 7 routing route group sub domain routing https laravel com do
  • SpecRun 使用 @ignore 测试返回退出代码 120

    作为持续集成设置的一部分 从命令行运行 SpecRun 最近忽略了 ignore 测试在 SpecRun 完成时生成退出代码 120 目前 我们在任何不等于 0 的退出代码 通用成功指示器 上中断构建 退出代码 120 到底是什么意思 仅仅
  • 从 django 模型创建 javascript 对象(类)

    我正在开发一个单页应用程序 它将从大约十几个不同的 django 模型加载数据 允许用户操作数据 然后将所有更改保存回数据库 我可以通过序列化查询集的结果来将 django 模型 传递 到模板 例如 我有一个模型 Person class
  • 读取 ruby​​ 中的所有 shell 变量

    Problem 我正在将 shell 脚本作为 ruby 脚本中的子进程运行 运行脚本后我希望有一个选项来检查 shell 的所有环境变量 包括数组变量 到目前为止我已经想出了 set awk F BEGIN v 0 a zA Z a zA
  • Javascript/EcmaScript 3 支持 ISO 8601 日期解析吗?

    您目前如何解析 ISO8601 日期 例如2010 02 23T23 04 48Z在 JavaScript 中 使用下面的代码时 某些浏览器会返回 NaN 包括 Chrome 但 FF3 6 可以工作 你可以在这里尝试一下http www
  • C# Eval() 支持 [重复]

    这个问题在这里已经有答案了 我们需要在运行时评估对象中的值 同时我们有确切成员路径的文本语句 例如 myobject firstMember secondMember 3 text我们考虑使用正则表达式解析这个文本语句 然后使用反射评估文本
  • Scikit-Learn:所有训练示例中都存在标签而不是 x

    我正在尝试使用 SVM 进行多标签分类 我有近 8k 个特征 并且还有长度接近 400 的 y 向量 我已经有二值化的 Y 向量 所以我没有使用MultiLabelBinarizer 但是当我将它与 Y 数据的原始形式一起使用时 它仍然给出
  • R 中的关联度量——Kendall 的 tau-b 和 tau-c

    是否有用于计算 Kendall tau b 和 tau c 及其相关标准误差的 R 软件包 我在 Google 和 Rseek 上的搜索一无所获 但肯定有人已经在 R 中实现了这些 有three 肯德尔 tau 统计数据 tau a tau
  • 将 null 传递给“XslCompiledTransform.Transform”方法

    我正在尝试使用 XSL 转换 XML 文档 我不太熟悉如何在 NET 中转换 XML 所以我使用一些示例代码 XslCompiledTransform xslTransformer new XslCompiledTransform xslT
  • FlatMapMerge、FlatMapConcat 和 FlatMapLatest 之间有什么区别?

    我无法区分这三个运算符之间的确切区别 文档用于 平面地图合并 https kotlin github io kotlinx coroutines kotlinx coroutines core kotlinx coroutines flow
  • 使用OpenCascade,如何快速进行2个形状的碰撞检测?

    使用OpenCascade 如何进行2个形状的碰撞检测 可能有几种方法 一是计算它们的交集 并检查交集结果 另一种方法是计算它们的最小距离 哪种方式更快 或者还有什么更快的方法 多谢 在 brep 数据结构上计算最小距离是一项相当昂贵的操作
  • jQuery Mobile 从弹出窗口中打开弹出窗口

    我正在使用 jQuery 移动1 9 1 min在 PhoneGap 上 我有一个列表 其中单击的每个项目都会打开一个操作弹出窗口 function showActions index selectedIndex index actionP
  • 获取 Foxpro 中目录中的文件列表

    如何在 FoxPro 中以编程方式获取目录中的文件列表 ADIR 使用任何通配符基于目录创建一个数组 local array MyFiles 1 5 nFilesFound ADIR MyFiles C Somepath dbf for i
  • Rails 2.3 的 EOL(生命周期终止)是什么?

    Rails 2 3 的 EOL 日期是哪一天 2 3 于 2013 年 6 月 25 日终止 同年 Rails 4 0 0 发布 据报道 只有 最后一个主要版本系列 才会收到补丁迈克尔 科齐亚斯基 https groups google c
  • Python在循环外获取变量

    我有一个 python 代码 我需要在 for 循环和 if 语句之外获取它的值并进一步使用该变量 My code with open text r as f for line in f readlines if hi in line a
  • 将 SQLAlchemy ORM 与 sql core 表达式中的对象连接起来?

    我必须使用 SQLalchemy Core 表达式来获取对象 因为 ORM 无法执行 更新和返回 ORM中的更新没有returning from sqlalchemy import update class User ORMBase pur
  • 在 OpenGL 引擎中组织 GLSL 着色器

    哪个更好 To 拥有一个包含大量制服的着色器程序指定 要使用的灯光或要执行的映射 例如 我需要一个网格进行视差映射 另一个网格进行视差 镜面映射 我会为延迟传输创建一个制服的缓存列表 并且如果需要的话 只需为每个下一个网格更改几个制服 To