gpt4 book ai didi

include - 如何编写可重用的 glsl 代码?

转载 作者:行者123 更新时间:2023-12-04 07:40:53 35 4
gpt4 key购买 nike

我的着色器经常共享许多相同的功能。例如漫反射/镜面光照的计算。我想写一次,然后在不同的着色器中重用代码。

glsl 不了解文件,也不支持类似 c 的 #include预处理指令。

我知道 glsl 支持从多个 cstrings 编译源代码,但是你怎么知道要包含哪些 cstrings?您是否实现了自己的包含版本?或者您是否为每个着色器创建某种元文件?

最佳答案

在大型项目中,着色器通常在第一次运行(或更改图形选项时)组装,因此它们将包括所有供应商特定的功能,并针对用户机器和设置进行了优化。不仅是着色器,还有渲染管道的某些阶段。
您可以将 GLSL 视为 PHP 脚本为响应请求而吐出的 HTML\CSS\JavaSript 代码。并且您可以在循环中使用与 tampleting、代码注入(inject)(例如纹理查找量)相同的技术。它对图形设计师也有好处,因为他们可以通过参数化对着色器源进行简单控制——支票簿、输入字段等,它可以为独特的情况生成独特的着色器。

关于include - 如何编写可重用的 glsl 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530146/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com