3D引擎:Horde3D:讀取Shader文件流程(二)

首先,根據[[ ]]來判斷 FX, VS_*, FS_*部分

然後,將FX部分給 fxCode字符串, VS_*, FS_*分別交給 CodeResource 並依次存放在 _codeSections vector中。

之後,
  會解析 FX部分, 這部分先會設置  uniform默認的值,float / float4 類型,變量存儲在 _uniforms裏 存放, Sampler的 路徑名,存放在 _samplers裏  該路徑名,存放的就是 Fragment Shader的 Sampler變量 要使用的 圖片

   解析FX部分的 context 段,
    context端 定義了 該context下  一些渲染的模式,以及 Vertex Shader 和 Fragment Shader的 名字
最後,
  根據這些名字,CodeResource類會找到 相應的 Shader 代碼段
  然後 調用 ShaderResouce類的compileContexts方法,該方法會繼續調用 Renderer類的 方法 對 Shader 進行 Compile,Link等。

CodeResource 類主要存儲的就是 Vertex Shader  和 Fragment Shader的代碼段,這些代碼段 在文件裏  都有一個名字[[ VS_* ]]/ [[ FS_* ]]的名字, 
每一對VS, FS 在 [[ FX ]]裏 對應一個 context, 每個代碼段會有一個 id存儲在context裏。  根據這些context 的屬性, CodeResource 對相應的代碼段執行 操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章