• <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热只有频精品66| 国产精品久久影院| 一本久久免费视频| 亚洲国产精品一区二区久久hs| 色欲久久久天天天综合网精品| 精品一区二区久久| 久久天天躁狠狠躁夜夜avapp | 粉嫩小泬无遮挡久久久久久| 久久九九全国免费| 亚洲国产成人久久精品99| 久久青青草原亚洲av无码app| 国产日韩欧美久久| 国产精品一区二区久久国产| 久久亚洲AV永久无码精品| 久久精品毛片免费观看| 亚洲精品乱码久久久久久不卡| 久久久久久狠狠丁香| 久久久久国产精品人妻| 久久99热这里只有精品国产| 狠狠色丁香久久婷婷综合五月| 亚洲国产成人久久综合区| 久久精品国内一区二区三区| 老男人久久青草av高清| 亚洲精品乱码久久久久久蜜桃 | 狠狠久久亚洲欧美专区| 2021国产精品午夜久久| 久久电影网| 久久国产免费| 精品无码久久久久久久久久| 国产精品久久久久…| 久久精品国产第一区二区三区| 国产成人精品三上悠亚久久| yy6080久久| 久久久久久精品免费看SSS| 久久久一本精品99久久精品88| 亚洲а∨天堂久久精品| 亚洲国产高清精品线久久| 四虎影视久久久免费观看| 狠狠色丁香久久婷婷综合_中| 久久久久久午夜精品| 狠狠综合久久综合88亚洲|