• <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 引擎
            色综合色天天久久婷婷基地| 久久成人18免费网站| 国产午夜电影久久| 久久99国产乱子伦精品免费| 国产精品伊人久久伊人电影| 亚洲精品NV久久久久久久久久 | 少妇久久久久久被弄到高潮 | 久久亚洲日韩看片无码| 无码AV波多野结衣久久| A级毛片无码久久精品免费| 狠狠综合久久综合88亚洲| 久久久精品国产Sm最大网站| 久久亚洲中文字幕精品有坂深雪| 久久国产三级无码一区二区| 精品久久久久久中文字幕| 无码人妻久久一区二区三区免费| 久久久噜噜噜久久| 国产精品99久久久久久www| 国产成人精品久久二区二区| 国内精品久久久久影院薰衣草| 久久久人妻精品无码一区| 色综合久久综精品| 国产激情久久久久影院小草| 久久99久久99小草精品免视看| 丰满少妇高潮惨叫久久久| 久久国产精品77777| 久久婷婷五月综合色奶水99啪| 亚洲精品无码久久久影院相关影片| 久久久国产视频| 人妻无码αv中文字幕久久| 久久国产乱子伦免费精品| 成人资源影音先锋久久资源网| 996久久国产精品线观看| 久久夜色精品国产亚洲| 欧美亚洲国产精品久久| 亚洲AV无码久久精品成人| www.久久99| 伊人久久精品无码av一区| 久久国产精品77777| 人人狠狠综合久久亚洲| 99久久无码一区人妻a黑|