2009-07-26 46 views
1

我正在寫一個使用directx9的小型圖形程序,該程序會導入使用.x文件中的攪拌器創建的一些模型文件。到現在爲止還挺好。如何將着色器信息嵌入到.x文件中

這些模型具有紋理材質,獲取紋理名稱和正確渲染對象非常簡單,但是我想在某些材質上使用不同的效果(着色器)文件,但是我找不到任何方法在.x文件中嵌入關於在模型中使用的着色器的信息。

我最好的想法是在我的d3d9應用程序中查看紋理文件名,並將紋理名稱的查找表硬編碼爲效果文件。但是這看起來並不優雅,也意味着我最終會複製和重命名紋理,以便我可以在不同着色器中使用相同的紋理。

我覺得我必須錯過一個更簡單的方法來做到這一點,有什麼建議嗎?

回答

1

與紋理圖像文件不同,指定着色器程序可能非常複雜。您需要着色器文本以及所需參數的規範,以及讀取文件的人員知道爲參數設置哪些值以及如何設置參數的方法。有些着色器依次需要紋理參數,有時這些texut需要由應用程序生成(例如在Perlin噪聲3D紋理的情況下)。
總之,沒有辦法想出一種標準的方法來統一指定可以完全集成在一個文件格式中的着色器,如.x。你唯一的選擇是爲你的應用程序提供一些特別的東西。您在問題中建議的方法與任何方法一樣好。

+0

好吧,這很有道理,謝謝。 – jcoder 2009-07-26 18:47:19