• <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>

            戰(zhàn)魂小筑

            討論群:309800774 知乎關(guān)注:http://zhihu.com/people/sunicdavy 開(kāi)源項(xiàng)目:https://github.com/davyxu

               :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              257 隨筆 :: 0 文章 :: 506 評(píng)論 :: 0 Trackbacks

            如果讓你的引擎結(jié)構(gòu)支持多個(gè)RenderTarget繪制及多個(gè)Viewport?這里是我的簡(jiǎn)單設(shè)計(jì):

            同樣適用我的文本設(shè)計(jì)圖標(biāo)準(zhǔn)(+為包含,  <為派生)

             

            RenderTexture

                  RenderTarget

                      <ScreenTarget(引擎啟動(dòng)時(shí),初始化屏幕大小的Viewport)

                      +RenderView (對(duì)于一個(gè)RT,可以是屏幕,可以是紋理RT,所以可以擁有 1~n個(gè)切分視圖 )

                           +Camera

                           +Viewport

             

            以下是多View繪制的類XNA偽代碼

             

            Engine.Run()
            {
                Device.Clear()
             
                // 保存當(dāng)前全屏Viewport
                ScreenViewport = Device.CurrentViewport
             
                Device.BeginScene()    
             
                // 遍歷當(dāng)前屏幕RT下的所有View
                foreach RenderView in ScreenRT
                {
                    // 未激活的View不用繪制
                    if RenderView not active then continue
             
                    // 將View對(duì)應(yīng)的Viewport提交到設(shè)備        
                    RenderView.CommitViewport()
             
                    // 渲染回調(diào)
                    foreach RenderEventListener in RenderEventListenerList
                    {
                        RenderEventListener.OnRenderFrame()
                    }
                }
             
                Device.EndScene()
             
                 Device.Present()
             
                Device.CurrentViewport = ScreenViewport // 恢復(fù)全屏viewport
            }

             

             

            以下是RT間嵌套繪制的偽代碼:

            RenderView.SwitchRenderTarget(stage, RenderTarget)
            {
                // 保存繪制前的RT
                PreTarget = Device.GetRenderTarget()
                // 設(shè)置為當(dāng)前的RT
                Device.SetRenderTarget( RenderTarget )
             
                // 更新RT攝像機(jī)
                RenderTarget.UpdateCamera()    
                
                // 清空RT
                Device.Clear()
             
                // 繪制回調(diào)
                RenderTarget.OnRender( )
             
                // 恢復(fù)之前的RT
                Device.SetRenderTarget( PreTarget  );
            }
            posted on 2010-03-29 18:16 戰(zhàn)魂小筑 閱讀(2198) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 渲染 Shader 引擎
            亚洲精品第一综合99久久| 久久精品人人做人人爽电影蜜月| 精品久久久久香蕉网| 粉嫩小泬无遮挡久久久久久| 99久久精品国产高清一区二区| 国产一级持黄大片99久久| 99久久精品这里只有精品| 婷婷久久五月天| 亚洲午夜久久久久久久久电影网| 精品久久久无码人妻中文字幕豆芽| 狠狠色婷婷综合天天久久丁香 | 久久香蕉国产线看观看乱码| 91精品国产91久久| 亚洲精品乱码久久久久久| 91精品国产综合久久精品| 99久久婷婷免费国产综合精品| 国产精品久久自在自线观看| 久久综合综合久久97色| 久久精品aⅴ无码中文字字幕不卡| 91精品国产综合久久四虎久久无码一级 | 国产产无码乱码精品久久鸭| 国产精品禁18久久久夂久 | 国产精品久久久久久影院| 久久精品人人做人人爽电影| 四虎影视久久久免费观看| 亚洲午夜久久久影院| 久久国产精品99久久久久久老狼| 久久综合综合久久狠狠狠97色88| 亚洲国产精品一区二区三区久久| 精品久久亚洲中文无码| 精品熟女少妇a∨免费久久| 女同久久| 久久精品天天中文字幕人妻| 国内精品久久久久久麻豆 | 精品午夜久久福利大片| 人妻精品久久久久中文字幕 | 久久久久久久久久久精品尤物| 麻豆AV一区二区三区久久| 欧美性猛交xxxx免费看久久久| WWW婷婷AV久久久影片| 热久久最新网站获取|