gpt4 book ai didi

c++ - DirectX 中的多个着色器与多种技术

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:14 24 4
gpt4 key购买 nike

我正在浏览所有 Rastertek DirectX tutorials顺便说一下,这非常好,作者倾向于为不同的事物使用多个着色器。在后来的一个教程中,他甚至介绍了一个着色器管理器类。

尽管我相信基于其他一些来源,使用具有多种技术的单个着色器会更有效。教程中使用多个着色器是为了简单起见,还是在某些情况下使用多个着色器比单个大着色器更好?

最佳答案

我猜他们在教程中使用它们是为了简单起见。

将它们按技术分组或单独分组是一个设计决策。在某些情况下,拥有多个着色器是有益的,因为您可以根据需要组合它们。

从 Windows 8 中的 DirectX 11 开始,D3DX 库已弃用,因此您会发现它发生了变化。您可以在 DirectX 工具包的源代码中看到这样的示例:http://directxtk.codeplex.com/以及他们如何处理他们的影响。

通常你会在内存中有不同的顶点着色器、像素着色器等;技术倾向于将它们合并为一个,因此当您编译着色器文件时,会为该技术编译一个特定的顶点和像素着色器。选择 X 技术和 Y channel 时,您的效果对象正在处理设备设置的顶点/像素着色器。

您可以手动执行此操作,例如,仅编译像素着色器并将其设置到设备。

关于c++ - DirectX 中的多个着色器与多种技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271083/

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