查看完整版本: [-- Qt+OpenGL做的蕾达显示程序[含源代码] --]

QTCN开发网 -> Qt 作品展 -> Qt+OpenGL做的蕾达显示程序[含源代码] [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

<<   1   2  >>  Pages: ( 2 total )

orafy 2012-10-26 23:02

Qt+OpenGL做的蕾达显示程序[含源代码]

用途:
工作中辅助终端调试的。


特点:
  1. 插件架构:类似于Qt Creator。
  2. 采用OpenGL的FBO和顶点、片段着色器特性实现了雷达余晖效果,PPI视图可以实现每秒渲染数十万点,不到3% cpu占用率。
  3. 基于Qt5与Qt3D,使用QGraphicsItem包装OpenGL绘制的图元,与2D的文字,坐标轴放到一个graphics scene。
  4. model/view的性能优化:model记录更改,每隔一段时间通知view。


截图:




代码:
[attachment=9072]

比较有趣与大家分享。




xairwolfcn 2012-10-27 00:13

liyoujun 2012-10-29 16:10
大神亲,您的源码,我在xp+qtcreat2.5+lib4.8.2编译不过去啊,求环境配置方面的指导。
qq:312413505

liyoujun 2012-10-29 16:52
“setSectionResizeMode”: 不是“QHeaderView”的成员

搞不定啊。

orafy 2012-10-29 23:36
需要Qt5。。。

liyoujun 2012-10-31 11:04
亲,,,您这里用了很多新特性?
那是不是资料只能来源于自带的英文文档了?
我买的两本书,都算作报废了.............

liyoujun 2012-10-31 11:53
大神亲,qt5的编译,或者说安装,有没有什么帮助文档一类的东西,或者别人写的帖子,总结的过程?

liyoujun 2012-11-01 11:03
亲,那里边的qtbase编译成功了,然后,再编译你的这个程序,提示qt3d怎么回事来着。
这里,我有心理准备,也有了疑问。
就是,我重新configer  Qt5以后,再把qt3d那个模块编译了,要怎么着,qtcreat才能知道他的存在?

liyoujun 2012-11-01 11:39
[attachment=9097]
亲,这个怎么搞,应该编译哪一个?怎样做,可以一次都编译完?
我现在是confger一次,编译一个组件,3d的错不再报了,这个错怎么解决?

liyoujun 2012-11-02 10:14
亲们,谁搞定了?

wzg_j 2012-11-05 23:44
感谢前辈分享~

yangbajing 2012-11-27 11:59
楼主强大,现正在尝试着用Qt 5做一个软件。

yijavakevin 2012-11-30 14:31
Qt5???

xlttap 2012-11-30 15:42
can not download

xlttap 2012-11-30 15:53
下载后怎么是jop.php文件?

o7ouro 2012-12-06 00:10
这个厉害啊, 后面试试看看。

计划 2012-12-06 21:54
谢谢分享!

zheguzai 2012-12-10 13:25
太牛了都Qt5了

activeion 2013-01-04 07:29
NB, 编译不通过, 没有那个啥3D,默认安装qt for msvc2010

liuyuanan 2013-01-08 17:04
好东西,顶楼主!!!!  

zhanglyl 2013-01-14 21:24
\daviz\plugins\ppiview\ppiglviewportitem.cpp:67: 错误:C3861: “glPointSize”: 找不到标识符

yeguoxiong 2013-03-29 15:39
请问,你QT5下怎么编译qt3d的?

mutse 2013-03-30 18:07
在ubuntu 12.04.2下编译ok,倒是不见楼主的截图画面,是不是因为缺少qsradar插件?谢谢!

mutse 2013-03-30 18:10
将qt3d源码放在qt5源码目录下,先编译Qt5,再编译qt3d。Ubuntu Linux下编译Qt5详见我博客

yeguoxiong 2013-03-30 18:28
引用第23楼mutse于2013-03-30 18:10发表的 回 21楼(yeguoxiong) 的帖子 :
将qt3d源码放在qt5源码目录下,先编译Qt5,再编译qt3d。Ubuntu Linux下编译Qt5详见我博客  

Thanks,明白你的意思了。

liudianwu 2013-04-05 14:03
QT4.7.0没有编译通过

yeguoxiong 2013-04-17 15:01
1、在qt-project.org上下载Qt 5.0.2。
2、安装QT5.0.2
3、下载一个PortableGit工具,用于下载QT3D
4、在PortableGit目录下打开git-bash.bat
5、git clone git://gitorious.org/qt/qt3d.git qt3d 下载QT3D
6、下载Perl,不然编译QT3D缺少perl.exe。
7、下载地址http://strawberry-perl.googlecode.com/files/strawberry-perl-5.16.3.1-64bit.msi
8、 将QT3D放入无中文件的目录中。
9、打开QT命令窗口,进入QT3D目录。
10、设置环境变量,在命令窗口中输入set PATH=C:\Qt\Strawberry\perl\bin;C:\Qt\Qt5.0.2\5.0.2\mingw47_32\bin;C:\Qt\Qt5.0.2\Tools\MinGW\bin
11、qmake qt3d.pro
12、mingw32-make(QT5没有make命令,如果需要,自己可以加)
13、mingw32-make install

cao542190156 2013-04-18 17:03
楼主能把做的大体思路说一下吗,求教

yeguoxiong 2013-04-24 15:57
引用第4楼orafy于2012-10-29 23:36发表的  :
需要Qt5。。。

雷达余晖效果这部分代码是不是去掉了?

orafy 2013-04-25 21:05
额,实现PPI余晖是采用片断着色器,就在 plugins/ppiview/ppieffect.frag
  1. uniform sampler2D qt_Texture0;
    varying vec4 qt_TexCoord0;

    uniform float specialSector;
    uniform float cycle;
    uniform float decayFactor;
    uniform float antennaPosition;
    varying vec4 vertexPosition;

    uniform mat4 qt_ModelViewProjectionMatrix;

    uniform vec2 coordCenter;

    void main(void)
    {
        float angle;
        float diff;
        float r;
        vec2 pos;

        pos.x =  qt_TexCoord0.s * 2.0 - 1.0;
        pos.y = -qt_TexCoord0.t * 2.0 + 1.0;

        pos -= coordCenter;

        r = sqrt(pos.x*pos.x + pos.y * pos.y);
        if (pos.x >= 0.0) {
            if (pos.y > 0.0)
                angle = degrees(asin(pos.x/r));
            else
                angle = 180.0 - degrees(asin(pos.x/r));
        } else {
            if (pos.y > 0.0)
                angle = 360.0 - degrees(asin(-pos.x/r));
            else
                angle = 180.0 + degrees(asin(-pos.x/r));
        }
        if (angle <= antennaPosition)
            diff = antennaPosition-angle;
        else
            diff = 360.0-(angle-antennaPosition);

        if (specialSector * 30.0 <= angle && angle < (specialSector + 1.0) * 30.0 && diff > 180.0)
            diff -= 360.0;

        diff += cycle * 360.0;

        vec4 color = texture2D(qt_Texture0, qt_TexCoord0.st);
        float mixed = 1.0 - 4.0 * exp(-diff/decayFactor);
        if (mixed < 0.0)
            mixed = 0.0;
        gl_FragColor = mix(color, vec4(0.0,0.0,0.0,0.0), mixed);
    }



atspace 2013-04-28 10:32
非常感谢分享资源!

worthin 2013-04-28 21:24
感谢大神分享!!向您看齐!!

neil-wen 2013-05-03 11:59
不错  不错

yliuman 2013-05-07 21:26
我使用了VS2010+Qt5.02,编译通过,但运行出错,调试截图如下:请指点,谢谢![attachment=10421]

yliuman 2013-05-07 21:37
对了,我在编译时,把void EViewportItem::paintGL()中下面一行glPointSize(2);注释了,不然编译器说没定义的函数。
//glPointSize(2);

hunkguo 2013-07-27 15:56
顶,这个比较好玩,谢谢分享

simplelife 2013-08-09 14:11
这个有意思..

神奇物种 2013-08-11 20:04
观摩

neil-wen 2013-08-15 12:08
谢谢 分享

shengma 2013-11-24 13:10
下载了qt3d,怎么才能在vs2012下编译通过呢。

量子飞跃 2013-11-24 18:03
给人一种好科幻的感觉,漂亮!!!

jakes 2013-12-03 17:47
收藏了,有时间学习一下。

abbcontrol 2014-12-31 20:25
有编译运行起来的 同学吗      求指导

uboru 2015-01-02 22:53
  

hehui 2015-01-03 12:12
学习下~~~~~~~~~~~~

ifelse 2015-03-09 03:25
非常感谢分享!

tunyue776 2015-03-24 22:52
这个程序界面好漂亮,为什么需要qt3d模块呢,楼主可否详细讲一下qt3d模块如何在qt5.x版本上配置?

蜡人张 2015-03-27 00:45
楼主能能将源码发邮箱吗,下载不了,310447105@qq.com,谢了

whuzcy 2015-03-27 10:37
怎么看不了呢,学习一下啊

15110799368 2015-04-09 13:21
楼主大大你好,看了一下代码,感觉挺复杂的,之前也看过Qt Creator,但是不太明白其中的架构,能否写一篇文章给大家介绍一下Qt Creator插件架构原理


查看完整版本: [-- Qt+OpenGL做的蕾达显示程序[含源代码] --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled