• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            永遠也不完美的程序

            不斷學習,不斷實踐,不斷的重構……

            常用鏈接

            統計

            積分與排名

            好友鏈接

            最新評論

            Material與shader在設計上的難題!

                    為了設計上的靈活,我把shader、紋理等都封裝到材質(Material)里,以方便渲染對象在不同狀態下材質的切換以達到不同的渲染效果。
                    但涉及到shader的設計就比較麻煩,因為shader需要設置里面的參數,但由誰負責傳參數給它呢?如果由渲染對象負責,那么每個材質只要有shader,就每個渲染對象更新一次,這樣問題來了,一但切換了材質后怎么辦?因此否定了這種做法。
                    另一種做法是由材質更新shader的參數,但材質怎么知道shader要什么參數呢?這樣豈不是每個材質要針對不同的shader繼承一個類?這樣設計也不靈活。而且shader需要更新的參數有時是來自渲染對象的。
                    到這里就比較頭痛了,到現在,我只能由shader自己主動更新自己的參數。從shader中獲得參數列表,遍歷并更新。但這里也有問題,當shader需要來自渲染對象中比較特殊的參數時,應該怎么取呢?例如要取水的紋理擾動值等,我不可能在渲染對象的基類抽象出一個GetWaterDistort()這樣的接口吧?暫時想到的解決方法是:在每個渲染對象里定義一個表,存放shader需要的參數,key為shader的參數名,value為其值。不過問題也出來:不知道值的size。不過可以暫時寫死在一個結構體中。
                    不知道各位高人有什么意見,這問題困擾我太久了!

            posted on 2009-05-15 10:30 狂爛球 閱讀(2536) 評論(8)  編輯 收藏 引用 所屬分類: 圖形編程

            評論

            # re: Material與shader在設計上的難題! 2009-05-15 22:03 Davy.xu

            參考下OGRE的Compositor系統架構,自己做的材質腳本解析器,很強大的組合材質功能。

            我本人偏向于:每一種效果,比如水波動,使用渲染腳本和材質參數來參與定制后,如果在運行時需要定制,直接使用類似于shader參數一樣的字符串變量來設置,只不過這時候的接口是你自己的材質系統,這樣就可以適合各種材質效果了。  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-05-16 21:57 魔鬼螳螂

            @Davy.xu
            OGRE的材質腳本我看過,作為一個成熟的引擎,是非常有必要引入材質系統的。
            不過不明白你這句話是什么意思:直接使用類似于shader參數一樣的字符串變量來設置。
            設置材質參數?如果材質參數需要通過某種方式計算出來呢?  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-05-17 22:27 shanoa

            博主的困擾我似乎看明白了,你是否可以就按照你說的用map來記錄shader參數列表呢?
            key=參數名
            value={參數長度,參數}  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-05-17 22:36 魔鬼螳螂

            @shanoa
            嗯,現在是這樣做了……  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-05-19 14:08 向往

            這個問題也困擾我好久了,值得探討.期望早出解決方法.  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-05-19 22:17 Davy.xu

            參考下http://www.hellocpp.net/Articles/Article/437.aspx  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-06-20 22:41 Loki

            阿梁生,唔好誤導人啊,哈哈  回復  更多評論   

            # re: Material與shader在設計上的難題! 2009-06-21 10:24 魔鬼螳螂

            @Loki
            邊位啊?所上名來!  回復  更多評論   

            久久久久亚洲精品日久生情| 热99RE久久精品这里都是精品免费 | 污污内射久久一区二区欧美日韩| 国内精品久久久久久麻豆| 欧美粉嫩小泬久久久久久久| 要久久爱在线免费观看| 久久天天躁狠狠躁夜夜96流白浆 | 少妇被又大又粗又爽毛片久久黑人| 精品久久一区二区三区| 国产精品热久久无码av| 欧美日韩精品久久久久| 久久人妻无码中文字幕| 99久久久国产精品免费无卡顿| 久久天天躁狠狠躁夜夜av浪潮| 麻豆一区二区99久久久久| 国产亚洲色婷婷久久99精品91| 久久天天躁狠狠躁夜夜2020一| 国产国产成人精品久久| 伊人久久亚洲综合影院| 丁香五月综合久久激情| 久久婷婷五月综合色奶水99啪| 久久经典免费视频| 久久国产高清一区二区三区| 久久精品人人槡人妻人人玩AV| 国产99精品久久| 久久久久人妻一区精品性色av| 亚洲中文字幕伊人久久无码| 久久狠狠一本精品综合网| 狠狠狠色丁香婷婷综合久久俺| 久久久久久毛片免费看| 国产精品久久网| 精品国产乱码久久久久久郑州公司| 日韩久久久久中文字幕人妻| 国产三级精品久久| 国内精品伊人久久久久网站| 国内精品人妻无码久久久影院| 亚洲中文字幕久久精品无码喷水| 四虎国产精品成人免费久久| 亚洲成av人片不卡无码久久| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 国内精品久久久久影院日本|