ICode9

精准搜索请尝试: 精确搜索
  • osg::NodeVisitor2019-06-27 20:51:34

    [1]osg::Group        [2]osg::PositionAttitudeTransform        [2]osg::MatrixTransform                [3]osg::Geode        [2]osg::MatrixTransform        [2]osg::MatrixTransform        [2]osg::MatrixTransf

  • 通过OSG实现对模型的日照模拟2019-06-26 18:39:29

    目录 1. 加载模型 2. 光照 1) 环境反射 2) 漫反射 3) 日照方向 (1) 太阳高度角和太阳方位角 (2) 计算过程 4) 改进实现 3. 阴影 4. 太阳高度角与太阳方位角的计算 1) 太阳高度角计算公式 2) 太阳方位角计算公式 3) 太阳赤纬计算公式 4) 时角计算公式 5) 真太阳时 5. 参考文献

  • osg osgUtil::LineSegmentIntersector2019-06-26 17:02:12

      #ifdef _WIN32#include <Windows.h>#endif // _WIN32#include <osgViewer/Viewer>#include <osgViewer/ViewerEventHandlers> #include <osgViewer/CompositeViewer> #include <osgDB/ReadFile>#include <osg/Geode>#include <osg/

  • osg::MatrixTransform 模型基本变换2019-06-24 18:01:04

    VCNodeMatrix.h #pragma once#include <osgViewer/Viewer>#include <osgViewer/ViewerEventHandlers> #include <osgViewer/CompositeViewer> #include <osgDB/ReadFile>#include <osg/Geode>#include <osg/Node>#include <osgGA/Tra

  • OSG程序设计之Hello World 3.02019-06-23 19:48:50

      直接上代码: #include <osgDB/ReadFile> #include <osgViewer/Viewer> #include <osgViewer/ViewerEventHandlers> #include <osgGA/TrackballManipulator> #include <osgGA/FlightManipulator> #include <osgGA/DriveManipulator> #inclu

  • OSG嵌入QT的简明总结2019-06-16 16:03:31

    目录 1.解决方案 2.存在问题 1) 警告提示 2) 多线程问题 3) 其他 1.解决方案 不得不说关于OSG的资料实在太零散了,搜索了很多关于OSG在QT下的解决方案,都是各有各的说法,有的说的不是很清楚,有的已经过时了。这里提供一下自己的解决方案吧。 在远古的OSG里面,应该是提供对QT的支

  • Qt osg QWidget osgViewer::Viewer2019-06-15 20:40:57

    osgViewer::Viewer* _viewer = nullptr; _viewer = new osgViewer::Viewer;osg::ref_ptr<osg::Group> root = new osg::Group;//注意:这两句话的先后顺序 先添加模型在添加相机//root->addChild(osgDB::readNodeFile("cow.osgt"));root->addChild(osgDB::readNodeFile("

  • osg指定向量旋转指定角度2019-05-13 13:50:59

    向量AB,沿着n旋转10度 osg::Vec3 left = AB*osg::Matrix::rotate(osg::inDegrees(10), n); osg::Vec3 right = AB*osg::Matrix::rotate(osg::inDegrees(-10), n);//right=-left   特殊情况下,可以使用向量叉乘实现,例如旋转90度 osg::Vec3 left = n^AB; osg::Vec3 right = AB^n;

  • Win10下vs2015编译OSGEarth2.102019-04-03 22:55:19

    一、OSG编译 1. 源码或预编译库下载 OSG版本3.6.3;CMake版本3.12.1-x64;Geos版本:3.7.1;GDAL版本:2.3.1;数据包由官网下载;官网上还提供其他vs2015环境下OSG编译依赖的第三方库所用的CMake编译脚本,其地址为https://github.com/bjornblissing/osg-3rdparty-cmake同时该页面提供由AppVeyor所

  • 探索未知种族之osg类生物---渲染遍历之裁剪三2019-03-20 11:54:02

    前言 在osgUtil::CullVisitor,我们发现apply函数的重载中,有CullVisitor::apply(Group& node),CullVisitor::apply(Switch& node), CullVisitor::apply(LOD& node),CullVisitor::apply(Geode& node),CullVisitor::apply(Node& node)是一样的函数内容。所以这五个函数我们就挑出CullVisito

  • OSG使用模板缓存2019-03-20 10:54:01

    参考帖子: https://blog.csdn.net/csxiaoshui/article/details/23457273 osg::Geometry *lineStripGeometry = new osg::Geometry; osg::Vec3Array *lineVertexArray = new osg::Vec3Array; double dRadius = 0.1; for (float angle = 0.0; angle < 400.0; angle +=

  • 探索未知种族之osg类生物---渲染遍历之裁剪一2019-03-18 11:42:58

    前言 上面我们用了四节课的内容,讲解了一些osg概念性的内部原理。希望大家可以再看今天的讲解之前先再仔细的研究一下前四节的内容。这样你就会对整个osg的渲染过程有一个更加清晰的认知,有助于理解下面两个函数cull()和draw()。 osg::Util::SceneView::cull() 好,相信大家已经又复习

  • 探索未知种族之osg类生物---呼吸分解之更新循环二2019-03-07 13:49:57

    _scene->updateSceneGraph(*_updateVisitor); 我们用了前面4节才刚刚算是完成对DatabasePager::DatabaseThread::run()函数的探究,也就是了解了osg究竟是怎么完成对数据的加载的。那么我们现在要回到DatabasePager::updateSceneGraph的工作中,它是在osgViewer::Viewer:: updateTrave

  • 探索未知种族之osg类生物---呼吸分解之事件循环三2019-03-02 23:02:47

    那我们就开始处理这些事件中得到的所有的交互事件,首先我们要判断这些事件是否包含osg的退出事件,那什么情况下会触发这个退出事件呢?如果您运行过osg中example中的小例子的,聪明的你一定就会发现当按下esc时就会退出osg。所以osg中默认的退出事件就是由esc触发的。当然我们也可以通过

  • 探索未知种族之osg类生物---呼吸分解之事件循环二2019-03-01 12:55:17

    VPM矩阵1、V 表示摄像机的观察矩阵(View Matrix),它的作用是把对象从世界坐标系变换到摄像机坐标系。因此,对于世界坐标系下的坐标值 worldCoord(x0, y0, z0),如果希望使用观察矩阵 VM 将其变换为摄像机相对坐标系下的坐标值 localCoord(x’, y’, z’),则有: localCoord = worldCoord * V

  • 探索未知种族之osg类生物---呼吸分解之事件循环二2019-03-01 12:51:03

    VPM矩阵 1、V 表示摄像机的观察矩阵(View Matrix),它的作用是把对象从世界坐标系变换到摄像机坐标系。因此,对于世界坐标系下的坐标值 worldCoord(x0, y0, z0),如果希望使用观察矩阵 VM 将其变换为摄像机相对坐标系下的坐标值 localCoord(x’, y’, z’),则有: localCoord = worldCoord *

  • 探索未知种族之osg类生物---呼吸分解之advance2019-02-27 17:56:59

    回顾我们用了两节的内容才堪堪讲解完ViewerBase::frame()函数中调用的realize()---Viewer:: realize()函数。我们简单的总结就是Viewer:: realize()主要是使GraphicsContext处于可用状态,并且启动相关的图形线程。 ViewerBase::frame()函数解读到这里,我们完成了osg生物第一次尝试呼

  • 探索未知种族之osg类生物---器官初始化四2019-02-26 12:55:10

    上一节我们对完成了对osg生物内部非常重要器官graphicsContext的初始化工作。这样就可保证我们场景中至少有一个graphicContext存在,不至于刚出生就面临夭折。我们根据上一节中osg代码的研究也就知道了,在我们正常使用osg时,是怎么完成对camera以及graphicContext的创建的了。 回到Vi

  • 探索未知种族之osg类生物---器官初始化四2019-02-26 12:54:37

    上一节我们对完成了对osg生物内部非常重要器官graphicsContext的初始化工作。这样就可保证我们场景中至少有一个graphicContext存在,不至于刚出生就面临夭折。我们根据上一节中osg代码的研究也就知道了,在我们正常使用osg时,是怎么完成对camera以及graphicContext的创建的了。 回到V

  • 探索未知种族之osg类生物---器官初始化三2019-02-25 13:55:16

    当判断到viewer中没有一个graphicContext可用时,osg就会默认的进行一次对viewer的实现操作,这样可以保证osg以后可以安心的在屏幕上进行作画。那我们就来看看这个osgViewer::Viewer::realize()函数到底具备什么样神奇的功能。 osgViewer::Viewer::realize()osgViewer::Viewer::realiz

  • 探索未知种族之osg类生物---器官初始化二2019-02-24 15:55:42

    那我们回到ViewerBase::frame函数中来,继续看看为什么osg生命刚刚出生的时候会大哭,除了初始化了eventQuene和cameraManipulator之外还对那些器官进行了初始化。在这之前我们先介绍一下上一节说到的osg的肢体或者器官但是没有展开介绍的。 前言osgGA::GUIEventAdapter,GUI事件适配器。

  • Win64下编译OSG详细过程(Win10+VS2015+OSG3.6.3)2019-02-03 23:38:34

    目录 1. 数据资源准备 2. 编译第三方库 3. 编译GDAL 4. 编译OSG 1) CMAKE_INSTALL_PREFIX: 2) BUILD_OSG_EXAMPLES/BUILD_MFC_ EXAMPLE: 3) ACTUAL_3RDPARTY_DIR 4) BUILD_DOCUMENTATION 5) 编译过程的问题 6) 安装 5. 测试环境 6. 资源下载 7. 参考文献 1. 数据资源准备 在OS

  • OSG碰撞检测2019-02-01 12:43:06

    http://bbs.vrchina.net/viewthread.php?tid=5196&extra=page%3D1 OSG碰撞检测 碰撞检测涉及到虚拟仿真的各个方面,这里我主要介绍两方面的应用: 一 判断摄像机是否与前面的物体相撞 基本原理如下图: 首先确定摄像机的旧位置和新位置(此处的新位置是假设前方没有障碍物所行进到的新位

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

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

ICode9版权所有