2012-10-25 53 views
0

我正在使用OpenGL ES + GLKit。我以前從來沒有這麼低級,所以我仍然需要學習很多東西。我之前開發過一個Unity遊戲,你只需要給它一個.obj文件和相應的紋理,就完成了。 (UV映射恰好在.obj文件中?)着色器和UV紋理映射之間的關係

我想開發一種特殊的具有一些不同特性的Toon着色器,以用於3D模型。所以我需要寫一個頂點着色器(.vsh)和片段着色器(.fsh)嗎?

但是,我只知道,爲了將紋理應用到具有正確UV座標的模型上,您必須在着色器中執行此操作? (對吧?)用「紋理着色器」。所以,如果我想同時應用紋理與UV映射然後應用我的特殊的卡通着色器,我必須寫在同一着色器?我無法創建即插即用的Toon着色器,因此我可以將它用於任何東西?

作爲一個側面問題,哪種文件格式是UV座標,我如何將它帶入着色器程序?什麼樣的屬性變量?

回答

0

所以我需要寫一個頂點着色器(.vsh)和片段着色器(.fsh) 對不對?

是的。

不過,我只知道,爲了應用紋理與 正確的UV的模型座標

沒有辦法,我可以創建一個插件和 - 玩香椿着色器,所以我可以使用 它與任何東西?

檢查Uber-Shaders

和我怎麼能走,在一個着色器程序?什麼樣的屬性 變量?

您正在自定義着色器中的屬性。檢查這個GLSL tutorial

+0

難道你不重新讀你發佈的答案,找到這樣可怕的格式錯誤?你甚至可以從眼角看到這些,甚至沒有看到任何東西。 –

+0

作爲一個說明,由於分支性能的影響,優步着色器在OpenGL ES中是一個糟糕的主意。相反,您應該製作適合您特定渲染條件的獨立着色器(或編譯時裝配這些自定義着色器)並避免任何分支。 –

+0

優步着色器可以用定義來完成,而不是用「if(technique)」 – StiX