您的位置:首页 > 其它

D3D实现petra等地质软件的多视口效果

2013-06-07 10:57 148 查看
虽然实现了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,就可实现类似效果,如下,结贴。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: