我最近开始接触 Directx 编程。一切都对我有好处,但有一个大问题。每次我运行程序时,即使代码没有任何更改,它也必须编译着色器。有没有办法设置它,以便在编辑它们时只需要编译它们?
当我每次编译时都必须等待 2 分钟时,试图以我想要的方式完善值是相当烦人的。
是的,它是在运行时编译它们。
最佳答案
使用 fxc将着色器预编译为 .fxo 文件。这些可以通过 D3DXCreateEffectFromFile
加载就像您的 .fx 文件一样。这应该会显着减少加载时间。
见 CompiledEffect Sample来自 SDK 的详细信息。
作为旁注,您确定是着色器编译导致了长时间延迟吗?大量的着色器肯定会导致这样的速度变慢,但是如果你像你说的那样“进入 DirectX 编程”......我们在谈论多少行着色器代码?
关于visual-studio-2010 - Directx 9 在运行时编译着色器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8021936/