OSG第一个Demo

环境:Vs2010

  OpenSceneGraph-3.0.1-VS10.0.30319-x86-debug-12741

  OpenSceneGraph-3.0.1-VS10.0.30319-x86-release-12741

设置环境变量

PATH:                   D:\osg\bin

OSG_FILE_PATH:   D:\osg\data

这时候你可以用osgViewer查看一下osg文件,比如经典的奶牛cow.osg

在命令行下输入:osgViewerd.exe cow.osg

新建一个vc空项目,设置vc++包含目录和库目录。vc2010是右击|属性|项目和解决方案|VC++目录,低版本是工具|选项|项目和解决方案|VC++目录

包含文件:   D:\osg\include

库文件:      D:\osg\lib

右击|属性|配置属性|链接器|输入|附加依赖项

OpenThreadsd.lib

osgd.lib

osgDBd.lib

osgViewerd.lib

如果编译Release版本,去掉d

新建main.cpp输入下面的代码,这次显示一个滑翔机。

#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
void main()
{
 osgViewer::Viewer viewer;
 viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
 viewer.realize();
 viewer.run();
}

http://greatverve.cnblogs.com/archive/2012/09/19/osg-hello-world.html

编译出现的问题:d和非d的lib

过程中出现的问题:Microsoft C++ 异常 std::bad_alloc

0x7c812afb 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012f448 处的 std::bad_alloc。

原因:编译Debug版本的时候使用了不带d的Dll。

处理方法:

Demo编译成Debug版本使用带d的dll,编译成Release版本使用不带d的dll。

注意:

1. 编译Debug和Release版本需要分别设置项目属性中的包含目录文件和库目录

2. 分别设置“链接器——输入——附加依赖项”,或者输入如下代码:

 1 #ifdef _DEBUG
 2 #pragma comment (lib,"OpenThreadsd.lib")
 3 #pragma comment (lib,"osgd.lib")
 4 #pragma comment (lib,"osgDBd.lib")
 5 #pragma comment (lib,"osgFXd.lib")
 6 #pragma comment (lib,"osgGAd.lib")
 7 #pragma comment (lib,"osgManipulatord.lib")
 8 #pragma comment (lib,"osgParticled.lib")
 9 #pragma comment (lib,"osgShadowd.lib")
10 #pragma comment (lib,"osgSimd.lib")
11 #pragma comment (lib,"osgTerraind.lib")
12 #pragma comment (lib,"osgTextd.lib")
13 #pragma comment (lib,"osgUtild.lib")
14 #pragma comment (lib,"osgViewerd.lib")
15 #else
16 #pragma comment (lib,"OpenThreads.lib")
17 #pragma comment (lib,"osg.lib")
18 #pragma comment (lib,"osgDB.lib")
19 #pragma comment (lib,"osgFX.lib")
20 #pragma comment (lib,"osgGA.lib")
21 #pragma comment (lib,"osgManipulator.lib")
22 #pragma comment (lib,"osgParticle.lib")
23 #pragma comment (lib,"osgShadow.lib")
24 #pragma comment (lib,"osgSim.lib")
25 #pragma comment (lib,"osgTerrain.lib")
26 #pragma comment (lib,"osgText.lib")
27 #pragma comment (lib,"osgUtil.lib")
28 #pragma comment (lib,"osgViewer.lib")
29 # endif
时间: 2024-07-30 16:24:54

OSG第一个Demo的相关文章

Flask---使用Bootstrap新建第一个demo

Flask---使用Bootstrap新建第一个demo 参考自http://www.jianshu.com/p/417bcbad82fb 还有<Flask web开发> 前端用到Bootstrap开源框架,Bootstrap是客户端框架,后台当然就是Flask了. 服务器需要做的只是提供引用了Bootstrap层叠样式表(CSS)和JS文件的html响应,并且在html.css和js代码中实例化需要的组件,这些操作的最理想的执行环境就是模板 关于模板的介绍及其实现原理:https://kb.

Node.js 的第一个 demo 和本地服务器配置

安装nodejs这里就不叙述了,直接上nodejs官网下载就好了,初学者建议直接下载安装版,无需自己去编译.nodejs安装版和安装其他软件一样,无门槛. 安装nodejs后启动node.js,会打开一个类似黑色的系统命令框,这里是直接输入js代码的命令框,因此在这里输入 node -v 会提示你没有 node 这个命令,如: 如果你想安装其他的包,如 express 等,就需要在开始菜单里面找到 Node.js command prompt 或者 直接运行 cmd 进入命令行. 进入命令行后,

Java学习 (一)、下载,配置环境变量,第一个demo

一.在 http://www.oracle.com 下载java JDK 安装到自定义的地方. 二.配置环境变量:在我的电脑→高级系统设置→环境变量 ① 找到Path新增一个路径(该路径为JDK存放的位置的bin,比如我放在D:\J2EE\JDK1.8.0\bin 下),两个路径之间要加分号隔开 ② 为了防止路径改变,可以新增一个变量,变量名自定义,变量值为JDK存放路径. 然后在Path 下新增一个路径为 %JAVA_HOME%\bin  即可. 保存后 运行(win+R) cmd 键入jav

如何看eclipse中的崩溃信息?用一个demo教会你

我相信很多android初学者用刚开始都是用的Eclipse开发工具,并且很多初级书籍也不会教大家怎么去看崩溃日志,虽然不难,但是靠自己琢磨还是挺浪费时间的,我们就写一个Demo来看看吧! 注释掉一行代码,让程序崩溃 注释掉创建ViewHolder对象的代码,让程序崩溃. MainActivity中展示一个ListView 这个Demo很简单,就是在MainActivity中展示一个ListView,<第一行代码>中的例子. 现在我们注释掉了创建ViewHolder对象的代码,连上手机,运行程

Android中Service的一个Demo例子

Android中Service的一个Demo例子  Service组件是Android系统重要的一部分,网上看了代码,很简单,但要想熟练使用还是需要Coding.  本文,主要贴代码,不对Service做过多讲解.  代码是从网上找的一个例子,Copy下来发现代码不完全正确,稍微修改了下.  AndroidManifest.xml <application android:icon="@drawable/ic_launcher" android:label="@stri

使用android的mediaplayer做成 一个demo,欢迎测试使用

附件是为一个定制视频产品而简单的写了一个demo,用来说明android的mediaplayer是如何使用的. http://files.cnblogs.com/guobaPlayer/palyerDemo3D.apk 欢迎下载测试. 完全采用androd的mediaplayer播放器api函数而编写. 锅巴视频工作室-----专业的移动设备视频客户端方案提供者 锅巴视频工作室,专注于android视频相关,蓝牙,wifi等软硬件项目的方案开发工作,欢迎联系:qq1852600324" 使用an

Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. 下面就来说说经常会使用到通知机制中的通知栏框架(Notificaiton),它适用于交互事件的通知.它是位于顶层可以展开的通知列表.它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等. (网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头,随便当作回顾笔记.下面我就通过官方文档.源代码

Android 通知栏Notification的整合 全面学习 (一个DEMO让你全然了解它)

在android的应用层中.涉及到非常多应用框架.比如:Service框架,Activity管理机制,Broadcast机制.对话框框架.标题栏框架,状态栏框架.通知机制,ActionBar框架等等. 以下就来说说常常会使用到通知机制中的通知栏框架(Notificaiton).它适用于交互事件的通知.它是位于顶层能够展开的通知列表. 它会时不时的提醒你什么软件该更新了,什么人发你微信消息了等. (网上看了下,全面介绍的文章不多,所以就萌生了写这篇的念头.随便当作回想笔记. 以下我就通过官方文档.

初识nginx之第一个demo

商城项目做了一个多月了,想到必须用到负载均衡,简单了解了一下nginx,首先分享第一个demo,五月份上线后,会继续分享一系列相关知识. 在nginx根目录下,用了一个园友的批处理文件nginx.bat,用于启动和关闭nginx服务.需要nginx1.9.3的园友尽管留下邮箱,带批处理文件的压缩包会及时分享给你的. 我分别在ip为xxx和xxx的服务器下部署了三个站点,第一台服务器用了8040(site1),8041端口(site2),  第二台服务器用了8043(site3)端口,,负载均衡服