D3D實現petra等地質軟件的多視口效果

雖然實現了Matlab類似的三維顯示,但依舊缺少幾個主要的部件:比如刻度、方向指針等,因此接下來的幾個月就着重解決這些問題。

最初本來想用多個device分開渲染,但是做到一半測試效果的時候窗口閃爍很厲害,surfing了一下發現多device會導致效率問題,因此pass。

再次搜索發現可用多視口實現類似效果,但是裏面攝像機變換之類的還是沒想明白,因此走一步看一步吧。。。

學習資源:http://www.codesampler.com/dx9src.htm

2013.6.7,高考第一天,開始收集資料,持續更新。

2013.6.8,實現了簡單的多視口,主要對象的座標和軸文字都對應修稿好了,目前遇到的問題是照相機、渲染模式和世界矩陣要分開設置

2013.6.10,多視口多相機只需要對不同視口的相機分別聲明、賦值、操作即可:下一步就是用OOP的思想從新更合理的結構一下。

            device.Viewport = mVPLegend
            device.Transform.View = Matrix.LookAtLH(New Vector3(2, 2, -2), New Vector3(0, 0, 0), New Vector3(0, 1, 0))
            device.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, Color.Blue, 1.0F, 0)
            device.BeginScene()
            m1.DrawSubset(0)
            device.EndScene()
            device.Viewport = mVPIndicator
            device.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, Color.Red, 1.0F, 0)
            device.BeginScene()
            m2.DrawSubset(0)
            device.EndScene()
            device.Present()
2012.6.10,在每渲染一個場景之前,設置好世界座標、投影、視點後再進行BeginSence,就可實現類似效果,如下,結貼。           


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章