• <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 開源項(xiàng)目:https://github.com/davyxu

               :: 首頁 :: 新隨筆 :: 聯(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)魂小筑 閱讀(2199) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 渲染 Shader 引擎
            久久精品亚洲日本波多野结衣| 久久久久久综合网天天| 国内精品久久久久| 91精品国产91热久久久久福利 | 性色欲网站人妻丰满中文久久不卡| 狠狠色丁香久久婷婷综合蜜芽五月 | 四虎久久影院| 久久综合狠狠综合久久综合88| 国产精品久久久亚洲| 日本一区精品久久久久影院| 久久亚洲国产精品123区| 久久亚洲AV成人无码软件 | 久久夜色撩人精品国产| 亚洲午夜久久久影院伊人| 久久亚洲高清观看| 久久精品国产2020| 国产精品欧美久久久久天天影视| 中文国产成人精品久久不卡| 国产综合成人久久大片91| 久久九九精品99国产精品| 漂亮人妻被中出中文字幕久久 | 亚洲精品NV久久久久久久久久| 国产精品久久久久jk制服| 亚洲国产日韩欧美久久| 亚洲国产成人久久综合碰碰动漫3d | 91精品国产色综久久| 亚洲精品无码久久久影院相关影片| 国产精品一区二区久久精品无码| 久久久久久久久无码精品亚洲日韩| 久久99热这里只频精品6| 91久久福利国产成人精品| 久久久久久夜精品精品免费啦| 亚洲欧洲精品成人久久曰影片| 国产91久久精品一区二区| 久久精品九九亚洲精品| 久久天天日天天操综合伊人av| 狠狠久久亚洲欧美专区| 7777久久亚洲中文字幕| 俺来也俺去啦久久综合网| 久久精品国产亚洲αv忘忧草 | 久久人人爽人爽人人爽av|