第一次看到unreal的编辑器时觉得有四个视图很神奇,后来看到Delta3D的编辑器Stage也有
![](http://www.cppblog.com/images/cppblog_com/lai3d/delta3d.stage.try.JPG)
今天看了下其源码
class MainWindow里面定义了四个成员变量:
PerspectiveViewport *perspView;
OrthoViewport *topView;
OrthoViewport *sideView;
OrthoViewport *frontView;
看其类继承图
用Windows的画图画的
![](http://www.cppblog.com/images/cppblog_com/lai3d/5565/delta3d.stage.Viewport.PNG)
starUML画的(开源软件)
![](http://www.cppblog.com/images/cppblog_com/lai3d/5565/delta3d.stage.Viewport.staruml.PNG)
看到了没?每个Viewport就是一个QGLWidget,这个QGLWidget是Qt里面的!没啥神奇的,源码之前,了无秘密!
我也仿照写一个,从QD3DWidget继承,这个QD3Dwidget要自己写,没现成的。
Render Loop没有用QTimer,用的是paintEvent,脏了才画,就是windows的WM_PAINT消息
![](http://www.cppblog.com/images/cppblog_com/lai3d/5565/delta3d.stage.render_loop.png)
renderFrame里面画场景
/**
* Renders the scene as is viewed from the viewport's currently assigned
* camera.
*/
virtual void renderFrame();
posted on 2008-12-01 16:18
七星重剑 阅读(2099)
评论(5) 编辑 收藏 引用 所属分类:
Game Graphics 、
C++ lib -- Qt