当前位置: 首页 > news >正文

场景图形管理-多视图多窗口渲染示例(4)

        多视图多窗口渲染示例的代码如程序清单8-6所示

// 多视图多窗口渲染示例
void compositeViewer_8_6(const string &strDataFolder)
{// 创建一个CompositeViewer对象osg::ref_ptr<osgViewer::CompositeViewer> viewer = new osgViewer::CompositeViewer();// 创建两个视图osg::ref_ptr<osgViewer::View> viewer1 = new osgViewer::View();osg::ref_ptr<osgViewer::View> viewer2 = new osgViewer::View();int xoffset = 50;int yoffset = 200;// 视图1的节点string strDataPath = strDataFolder + "cessna.osg";osg::ref_ptr<osg::Node> viewer1Node = osgDB::readNodeFile(strDataPath);// 视图2的节点strDataPath = strDataFolder + "cow.osg";osg::ref_ptr<osg::Node> viewer2Node = osgDB::readNodeFile(strDataPath);// 优化产经数据osgUtil::Optimizer optimizer;optimizer.optimize(viewer1Node.get());optimizer.optimize(viewer2Node.get());// 视图窗口1{// 设置图形环境特性osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits();traits->x = xoffset + 0;traits->y = yoffset + 0;traits->width = 600;traits->height = 480;traits->windowDecoration = true;traits->doubleBuffer = true;traits->sharedContext = 0;// 绘制图形环境osg::ref_ptr<osg::GraphicsContext>gc = osg::GraphicsContext::createGraphicsContext(traits.get());// 创建相机osg::ref_ptr<osg::Camera> camera1 = viewer1->getCamera();// 设置图形环境camera1->setGraphicsContext(gc.get());// 设置视口camera1->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));// 设置缓冲GLenum buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT;camera1->setDrawBuffer(buffer);camera1->setReadBuffer(buffer);// 设置场景数据viewer1->setSceneData(viewer1Node.get());}// 视图窗口2{// 设置图形环境特性osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits();traits->x = xoffset + 600;traits->y = yoffset + 0;traits->width = 600;traits->height = 480;traits->windowDecoration = true;traits->doubleBuffer = true;traits->sharedContext = 0;// 绘制图形环境osg::ref_ptr<osg::GraphicsContext>gc = osg::GraphicsContext::createGraphicsContext(traits.get());// 创建相机osg::ref_ptr<osg::Camera> camera2 = viewer2->getCamera();// 设置图形环境camera2->setGraphicsContext(gc.get());// 设置视口camera2->setViewport(new osg::Viewport(0, 0, traits->width, traits->height));// 设置缓冲GLenum buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT;camera2->setDrawBuffer(buffer);camera2->setReadBuffer(buffer);// 设置场景数据viewer2->setSceneData(viewer2Node.get());}// 添加视图viewer->addView(viewer1.get());viewer->addView(viewer2.get());viewer->realize();viewer->run();
}

        截图如图8-15所示。

图8-15多视图多窗口渲染示例图

相关文章:

  • redis高级案列case
  • 二十七、W5100S/W5500+RP2040树莓派Pico<iperf 测速示例>
  • 【数据处理】Python:实现求条件分布函数 | 求平均值方差和协方差 | 求函数函数期望值的函数 | 概率论
  • 相机通用类之LMI激光三角相机(3D),软触发硬触发(飞拍),并输出halcon格式对象
  • Linux命令--重启系统的方法
  • 电源电压范 围宽、功耗小、抗干扰能力强的国产芯片GS069适用于电动工具等产品中,采用SOP8的封装形式封装
  • Redis缓存穿透、击穿、雪崩
  • 阿里云国际站:密钥管理服务
  • 【Vue原理解析】之异步与优化
  • python接口自动化-参数关联
  • Ladybug 全景相机, 360°球形成像,带来全方位的视觉体验
  • [代码实战和详解]VGG16
  • vue 使用 this.$router.push 传参数,接参数的 query或params 两种方法示例
  • 第一行代码第三版-第三章变量和函数
  • CSS特效007:绘制3D文字,类似PS效果
  • $translatePartialLoader加载失败及解决方式
  • 「译」Node.js Streams 基础
  • 3.7、@ResponseBody 和 @RestController
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • leetcode46 Permutation 排列组合
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • npx命令介绍
  • Sequelize 中文文档 v4 - Getting started - 入门
  • SpringBoot 实战 (三) | 配置文件详解
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • Vue 2.3、2.4 知识点小结
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 百度地图API标注+时间轴组件
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 机器学习学习笔记一
  • 我看到的前端
  • 异步
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • !!java web学习笔记(一到五)
  • # 计算机视觉入门
  • #微信小程序:微信小程序常见的配置传旨
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (二)Linux——Linux常用指令
  • (分布式缓存)Redis哨兵
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (一)UDP基本编程步骤
  • (转)使用VMware vSphere标准交换机设置网络连接
  • *1 计算机基础和操作系统基础及几大协议
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net core Swagger 过滤部分Api
  • .NET Core 中插件式开发实现
  • .net core开源商城系统源码,支持可视化布局小程序
  • .Net Core与存储过程(一)
  • .net 程序发生了一个不可捕获的异常
  • .Net 垃圾回收机制原理(二)
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET企业级应用架构设计系列之应用服务器