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 對相應的代碼段執行 操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.