ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Osg-Osg实现雾效果(Qt5.14.2+osgE3.6.5+win10)-No23-OsgFog

2022-07-15 16:00:44  阅读:276  来源: 互联网

标签:No23 Qt5.14 Fog fog Osg OsgDir new include osg


 

.pro

 1 QT       += core gui widgets
 2 TARGET = TestOsgQt
 3 TEMPLATE = app
 4 DEFINES += QT_DEPRECATED_WARNINGS
 5 CONFIG += c++11
 6 
 7 QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
 8 QMAKE_LFLAGS_RELEASE = $$QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO
 9 
10 SOURCES += \
11         main.cpp
12 
13 HEADERS +=
14 
15 OsgDir = D:\\Gitee\\osg365R
16 CONFIG(release, debug|release) {
17         LIBS += -L$${OsgDir}/lib/ -losgDB -losgViewer -lOpenThreads -losgAnimation -losg \
18                                   -losgEarth -losgEarthAnnotation -losgEarthFeatures -losgEarthSymbology -losgEarthUtil \
19                                   -losgQOpenGL -losgUtil -losgText -losgTerrain -losgSim \
20                                   -losgShadow -losgParticle -losgManipulator -losgGA -losgFX \
21                                   -losgWidget
22 } else {
23         LIBS += -L$${OsgDir}/debug/lib/ -losgDBd -losgViewerd -lOpenThreadsd -losgAnimationd -losgd \
24                                   -losgEarthd -losgEarthAnnotationd -losgEarthFeaturesd -losgEarthSymbologyd -losgEarthUtild \
25                                   -losgQOpenGLd -losgUtild -losgTextd -losgTerraind -losgSimd \
26                                   -losgShadowd -losgParticled -losgManipulatord -losgGAd -losgFXd \
27 }
28 
29 
30 INCLUDEPATH += $${OsgDir}/include
31 DEPENDPATH += $${OsgDir}/include
View Code

main.cpp

 1 #include <osgViewer/Viewer>
 2 #include <osgDB/ReadFile>
 3 #include <osg/Shape>
 4 #include <osg/ShapeDrawable>
 5 #include <osg/MatrixTransform>
 6 #include <osg/Program>
 7 #include <osgDB/ReadFile>
 8 #include <osgDB/FileUtils>
 9 #include <osgEarthUtil/Fog>
10 #include <osg/Fog>
11 
12 int main()
13 {
14     // 加载牛
15     osg::ref_ptr<osgViewer::Viewer> viewer = new osgViewer::Viewer;
16     osg::ref_ptr<osg::Node> geode = osgDB::readNodeFile("D:/Gitee/OsgTestQt/src/No23/tree.ive");//CreateNode();
17     osg::ref_ptr<osg::Group> gp= new osg::Group;
18     gp->addChild(geode);
19 
20     osg::ref_ptr<osg::Fog> fog = new osg::Fog;
21     fog->setDensity(0.01);
22     fog->setColor(osg::Vec4(1.0, 1.0, 1.0, 1.0));
23     fog->setMode(osg::Fog::LINEAR);  //osg::Fog::EXP  //osg::Fog::EXP2
24     fog->setStart(10);
25     fog->setEnd(50);
26     gp->getOrCreateStateSet()->setAttributeAndModes(fog.get(), osg::StateAttribute::ON);
27 
28     viewer->setSceneData(gp);
29     viewer->setUpViewInWindow(35, 35, 500, 500);
30     return viewer->run();
31     // 以下代码也是雾,但是增加后,物体全变成白色了。
32 //    osg::Fog* fog = new osg::Fog();
33 //    fog->setMode(osg::Fog::LINEAR);
34 //    fog->setStart(500.0f);
35 //    fog->setEnd(2500.0f);
36 //    fog->setDensity(10);
37 //    fog->setColor(osg::Vec4(0.5f, 0.5f, 0.5f, 1.0f));
38 //    fog->setUpdateCallback(new osgEarth::Util::FogCallback());
39 //    m_MapNode->getOrCreateStateSet()->setAttributeAndModes(fog, osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE);
40 //    osgEarth::Util::FogEffect* fogEffect = new osgEarth::Util::FogEffect();
41 //    fogEffect->attach(m_MapNode->getOrCreateStateSet());
42     //取消雾效
43     //fogEffect->detach(m_MapNode->getOrCreateStateSet());
44 }
View Code

 

 

 

搜索

复制

<iframe></iframe>

标签:No23,Qt5.14,Fog,fog,Osg,OsgDir,new,include,osg
来源: https://www.cnblogs.com/FKdelphi/p/16481705.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有