【OSG学习】学习方法

1. 环境准备

运行调试环境的准备参考我的另外一篇博客:【OSG学习】准备开发调试环境

运行调试环境准备比较麻烦,但是不复杂,需要耐心。但是可能很多人会被卡在这一步,后面我会专门提供直接可以使用的完整项目,方便大家学习使用。

2. 学习过程

2.1 预备知识

简单了解OpenGL运作原理。极力推荐教程:

  • LearnOpenGL

2.2 看书

这里推荐一些书:

  • 《最长的一帧.pdf》
  • 《OpenSceneGraph快速入门指南.pdf》,原版 《OpenSceneGraph Quick Start Guide.pdf》
  • 《OpenSceneGraph程序设计.pdf》
  • 《OpenSceneGraph三维渲染引擎编程指南.pdf》

这些书出版比较久了,使用的技术或者软件版本也比较陈旧,大致看一看了解一下原理就行。
最主要的还是自己调试,看代码,遇到不懂的地方,再去搜索资料,弄懂。

2.3 运行调试

我们调试要基于比较新的技术和软件,我认为这样可以减少学习内容,否则就需要先学习旧的再学习新的,多此一举。人生苦短,旧的就跳过吧。

我这里用的是OSG 3.4.0。

2.3.1 了解项目结构

在VS中,项目结构如下所示:
在这里插入图片描述
简单说一下每个文件夹具体含义:

  • Application:此文件夹下包含了一些OSG自带的独立应用的工程项目,比如osgViewer.exe、osgArchive等。
  • CMakePredefinedTargets:包含专门用于构建、部署OSG的项目,只包含构建部署指令,不包含实际代码。说简单点,这里面的项目是用于构建部署其他项目的。
  • Examples:此文件夹包含了示例项目,这是我们学习的重点内容,后面咱们一个一个过。
  • OSG Core:此文件夹包含了OSG核心类库,使用这个库就可以构建各种三维场景了,这是我们最终需要理解和掌握的核心内容。
  • Plugins:这个文件夹是相对于OSG Core而言的,它提供了一些功能扩展插件,应该只有在特定场景下才能用到,在需要使用的时候我们再学习即可(不确定,可以先这么理解。插件嘛,不就是用的时候再安装使用吗)。

至此,项目结构也了解的差不多了,下面进入正题!

2.3.2 从Examples开始

限于篇幅,我把Examples放到了另外一篇博客中了:

  • 【OSG】Examples

2.3.3 深入OSG Core

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436911.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Vue.js入门教程(二)在页面中引入vue的方式

第二章:安装和基础效果展示 页面中引入vue 因为我们的目标是在最短的时间之内学会vue的使用方法,所以我们不一定需要通过npm工程化进行安装,你直接用script在页面中引用也完全没有问题。 第一种引入方式,script直接引入&#xf…

空间注意力机制sam_Attention注意力机制介绍

什么是Attention机制Attention机制通俗的讲就是把注意力集中放在重要的点上,而忽略其他不重要的因素。其中重要程度的判断取决于应用场景,拿个现实生活中的例子,比如1000个人眼中有1000个哈姆雷特。根据应用场景的不同,Attention分…

【OSG】Examples

推荐内容 关于示例项目解析的内容推荐: OSG3.4内置Examples解析【目录】 下面是个人学习笔记。 1. Examples osgbillboard 这个项目很简单,就几个函数,而且很有意思。 osg::Billboard类是一个控制器,不管你怎么旋转漫游场景&a…

【转】页(page),用户控件(userControl),窗口(window)区别

欢迎加入BIM行业开发交流1群 群号:711844216 背景 大家在vs中新建wpf项目后,会发现在添加新建项时会出现下列三个选项 它们有什么区别呢? 区别: 页:通常用于网页窗口:通常一个桌面app只有一个主窗口用户控件&#…

python可以开发驱动吗_Python机器学习实践:测试驱动的开发方法

Python机器学习实践:测试驱动的开发方法作者:(美)马修柯克(Matthew Kirk) 著出版日期:2017年10月文件大小:30.91M支持设备:¥40.00在线试读适用客户端:言商书局iPad/iPhone客户端:下载…

关于typedef的正确理解

我对typedef的理解一直都是认为它和#define一样,分成三个部分,比如: #define A B但是遇到以下这种函数类型定义 typedef void (*funcName)(int);按照上面的理解,难道是要把void定义成(*funcName)(int)?显然不对。 这…

【转】WebSocket API总结

NCU.卓越141.chenyuchao 一、检查 WebSocket 支持 var host "ws://localhost:8080/mychat"; var ws; if (WebSocket in window) { ws new WebSocket(host); } else if (MozWebSocket in window) { ws new MozWebSocket(host); } else { window.alert(&quo…

字节流转化为文件流_字节流转成字符串之后,在通过字符串转成字节流后的文件为什么会不一样?...

public static void main(String[] args) throws Exception {File sourceFile new File("/home/joy/图片/img1-lg.jpg");File tempFile new File("/home/joy/桌面/TempFile");saveTempFile(sourceFile, tempFile);String str byteToString(tempFile);Fi…

OpenGL基本运行模型

OpenGL是一种三维技术规范。 我们知道三维渲染场景需要实时计算大量数据。 这里我根据自己的经验总结出一句话: 计算机中,对性能要求高的功能模块,其运行原理必然是简单易行的! 有理由断言:OpenGL没那么难。 OpenGL工…

matlab绘制球面模型_MATLAB采用surf/surfc/surfl/surfnorm绘制球体

利用绘制球体sphere(n),展示了MATLAB中的surf,surfc,surfl,surfnorm,surface五个绘图命令。启动MATLAB,新建脚本(CtrlN),输入如下代码:close all; clear all; clcn20;[x,y,z]sphere(…

【转】浅谈TDD、BDD、ATDD、DDD的区别

四个开发模式意思: TDD:测试驱动开发(Test-Driven Development)BDD:行为驱动开发(Behavior Driven Development)ATDD:验收测试驱动开发(Acceptance Test Driven Development&#x…

【OSG】OSG运行模型

关于运行模型 OSG中的类很多,只看OSG代码,很难把各个类串联起来。 我们知道面向对象程序的运行模型是:对象对象间协作。 单纯看代码,多数情形下,只能了解程序中有哪些对象,而不知道它们是如何协作的&…

用姓名字段统计人数_基于 Wide amp; Deep 网络和 TextCNN 的敏感字段识别

数据治理 (Data Governance) [1]作为一种数据管理的重要一环,主要目的在于保证数据在整个生命周期内的高质量性。数据治理的核心包括:数据的可用性 (Availability),易用性 (Usability),一致性 (Consistency),完整性 (I…

【转】C# HttpWebRequest 异常时获取 HttpWebResponse 数据

使用 C# 的 HttpWebRequest 请求接口如果接口返回了 401 则会抛出异常,而 401 其实也有可能返回正常的响应数据,如何获取异常时的响应流? 解决方案 捕获 WebException 异常,通过 ex.Response 获取 HttpWebResponse 主要代码如下…

innodb下的mvcc_从InnoDB了解MVCC

原标题:从InnoDB了解MVCCMVCC全称是Multi-Version Concurrency Control,即多版本并发控制。这是种很常用的技术,现在几乎所有的关系数据库都支持它。平时它默默工作,像个透明人,似乎不用关心它的细节。但是当我们偶尔在…

【开箱即用】VMware Win7虚拟机下载

前言 在桌面软件开发中,特别是Qt开发过程中,通常需要测试目标软件在不同版本的Windows上是否能够正常运行,以提高软件的系统兼容性。 虽然微软在2020年正式停止对Windows 7系统的支持,并鼓励用户升级Win10,但是由于W…

【转】C# Stream篇(—) -- Stream基类

目录: 什么是Stream? 什么是字节序列? Stream的构造函数 Stream的重要属性及方法 Stream的示例 Stream异步读写 Stream 和其子类的类图 本章总结 什么是Stream? MSDN 中的解释太简洁了: 提供字节序列的一般视图 (我可不想这么理解…

【已解决】解决Win7安装VS2013/VS2015结束时报错“无法建立到信任根颁发机构的证书链”的问题

问题描述 最近在Win7虚拟机上上安装VS,等待许久之后,提示安装完成。但是完成界面报错: “无法建立到信任根颁发机构的证书链”。 而且错误还不少,如下图所示: 根据我的个人经验,证书问题并没有影响日常开…

python把矩阵堆叠成大矩阵_python numpy 矩阵堆叠实例

在实际操作中,遇到了矩阵堆叠的操作,本来想着自己写一个函数,后来想,应该有库函数,于是一阵找寻import numpy as npa np.array([1,2,3])b np.array([4,5,6])np.stack((a,b)) #默认行堆叠输出:array([[1, …

【转】C# Stream篇(二)TextReader 和StreamReader

目录: 为什么要介绍 TextReader? TextReader的常用属性和方法 TextReader 示例 从StreamReader想到多态 简单介绍下Encoding 编码 StreamReader 的定义及作用 StreamReader 类的常用方法属性 StreamReader示例 本章总结 为什么要介绍 TextReade…