OSG
pizi0475
这个作者很懒,什么都没留下…
展开
-
Inside Geometry Instancing
<br />翻译:clayman<br />clayman_joe@yahoo.com.cn<br />仅供个人学习使用,勿用于任何商业用途,转载请注明作者^_^ <br />注:这篇文章是《GPU Gems2》中的第三章,本人水平有限,不清楚的地方请大家以原文为准<br /> 在交互式程序中,丰富用户体验的重要方法之一就是呈现一个充满大量各种有趣物体的世界。从数不清的草丛、树木到普通杂物:所有这些都能提高画面最终的效果,让用户保持“幻想状态(suspension of disbelief)”。只有用户相转载 2011-05-16 11:36:00 · 2590 阅读 · 0 评论 -
OSG 四元数Quat
四元数是通过使用四个数来表达方位,其目的是避免旋转过程中的万向锁问题。所以在3D中,四元数的主要用途即是用于旋转。从数学意义上讲,四元数是扩展了复数系统,它使用三个虚部i,j,k,一个四元数[x, y, z, w]定义了复数w+xi+yj+zk。我们通过OSG中的Quat类来了解四元数的基本操作及应用1. 数据定义使用一维数组来保存数据 double _v[4]2.转载 2010-05-12 23:36:00 · 11381 阅读 · 1 评论 -
OSG 四元数与欧拉角互转
// HPR to Quatosg::Quat HPRToQuat(double heading, double pitch, double roll){osg::Quat q( roll,osg::Vec3d(0.0, 1.0, 0.0), pitch,osg::Vec3d(1.0, 0.0, 0.0), heading,osg::Vec3d(0.0, 0.0,转载 2010-05-12 23:34:00 · 4474 阅读 · 0 评论 -
OSG+CEGUI程序框架OpenSceneGraph-2.8.2+CEGUI-SDK-0.7.1-vc9
http://blog.csdn.net/pizi0475痞子龙3D编程CEGuiDrawable.h#pragma once#include class CEGuiDrawable : public osg::Drawable{public: CEGuiDrawable(); CEGuiDrawable(const CEGuiDrawable& drawable,const osg::C原创 2010-04-05 18:40:00 · 3260 阅读 · 0 评论 -
OSG+CEGUI程序框架OpenSceneGraph-2.8.2+CEGUI-0.6.2-vc9
http://blog.csdn.net/pizi0475 痞子龙3D编程 CEGuiDrawable.h #pragma once#include class CEGuiDrawable : public osg::Drawable{public: CEGuiDrawable(); CEGuiDrawable(const CEGuiDrawable& drawable原创 2010-04-05 11:48:00 · 2983 阅读 · 0 评论 -
OSG+CEGUI+lua 程序框架OpenSceneGraph-2.8.2+CEGUI-0.6.2-vc9
http://blog.csdn.net/pizi0475痞子龙3D编程CEGuiDrawable.h #pragma once#include class CEGuiDrawable : public osg::Drawable{public: CEGuiDrawable(); CEGuiDrawable(const CEGuiDrawable& drawable,const osg原创 2010-04-05 18:54:00 · 4729 阅读 · 0 评论 -
OSG向场景中添加osgParticle粒子效果
目的:向场景中添加自定义的osgParticle实例,模拟坦克模型在地形上运动时产生的烟尘。 ----------------------------- 概述:添加粒子效果可以有效提高仿真程序的外观和真实性。粒子引擎一般用于模拟烟雾,火焰,尘埃以及其他一些类似的效果。如果要向OSG场景中添加粒子效果,通常可以使用下面的一些类: 粒子系统(osgParticle::Part转载 2010-03-29 13:11:00 · 6181 阅读 · 2 评论 -
OSG处理键盘输入
本章目标: ¶使程序具备将键盘事件与特定函数相关联的能力。在前面的教程中我们已经可以使用更新回调来控制炮塔的旋转。本章中我们将添加一个键盘接口类,实现通过用户的键盘输入来更新炮塔的转角。GUI(图形用户接口)事件处理器:GUI事件适配器和GUI动作适配器 ¶GUIEventHandler类向开发者提供了窗体系统的GUI事件接口。这一事件处理器使用GUIEventAdapter实例来接收转载 2010-03-29 13:07:00 · 6141 阅读 · 0 评论 -
3d游戏开发――辐射度算法
<br />Hugo Elias <br />何咏译<br />声明:本文原文由Hugo Elias 撰写,由何咏 翻译。本文仅供学习交流之用。<br />任何人未经本人同意不得私自转载,任何人不得将本文用于任何商业活动。<br /> <br /> 简介:这篇文章是一个经典的辐射度算法的教程,详细的讲述了如何通过辐射度算法为静态场景计算光照贴图。这也是大多数游戏所采用的技术。现在很多的论文和书籍都讨论了如何在实时渲染中应用光照贴图来产生逼真的光照效果,然而他们主要着重于如何组织光照贴图。而光照贴图究竟转载 2011-05-16 13:18:00 · 3225 阅读 · 2 评论 -
使用基于GPU的Geometry Clipmap渲染地形
<br />使用基于GPU的Geometry Clipmap渲染地形(上)<br /><br />使用基于GPU的Geometry Clipmap渲染地形(Terrain Rendering Using GPU-Based Geometry Clipmaps)(上)<br />翻译:clayman<br />clayman_joe@yahoo.com.cn<br />仅供个人学习使用,勿用于任何商业用途,转载请注明作者^_^<br />注:这篇文章翻译的是《GPU Gem2》中第二章的内容,老早就翻译的转载 2011-04-03 22:21:00 · 4574 阅读 · 1 评论 -
OpenSceneGraph的安装
1、 前言 本文讲解了OSG在Windows环境下的安装。OpenSceneGraph可移植性非常强,支持主流Unix、Windows、Linux、Mac OSX等操作系统,支持多种编译器,这里主要讲Windows NT系列系统下使用Visual Studio.Net 2003(VC7.1)进行开发,这是在Windows下推荐的组合。文中所涉及的版本是0.9.8-2。 2、 下载 要转载 2010-03-08 08:35:00 · 2579 阅读 · 0 评论 -
碰撞检测技术简介
碰撞检测技术简介无论是PC游戏,还是移动应用,碰撞检测始终是程序开发的难点,甚至可以用碰撞检测作为衡量游戏引擎是否完善的标准。好的碰撞检测要求人物在场景中可以平滑移动,遇到一定高度的台阶可以自动上去,而过高的台阶则把人物挡住,遇到斜率较小的斜坡可以上去,斜率过大则会把人物挡住,在各种前进方向被挡住的情况下都要尽可能地让人物沿合理的方向滑动而不是被迫停下。在满足这些要求的同时还要做到足够转载 2009-06-04 11:42:00 · 5325 阅读 · 0 评论 -
OSG LineSegmentIntersector进行碰撞检测
view plaincopy to clipboardprint?#include #include #include #include #include #include #include #include #include int main() { osg::ref_ptr c转载 2010-03-17 08:47:00 · 7102 阅读 · 1 评论 -
碰撞检测中的K_DOPS算法的研究
摘 要 K_DOPS碰撞检测算法是一类重要的碰撞检测算法,本文从K_DOPS的定义、包围盒的选择与计算、包围盒树的构造等几个方面对K_DOPS算法进行研究,并给出一种快速碰撞检测算法并对该算法进行改进,提高算法的效率。 关键词 碰撞检测;K_DOPS;包围盒树 1 引言 碰撞检测问题在计算机图形学中有很长的研究历史,近年来,随着虚拟现实,分布交互仿转载 2011-03-25 17:31:00 · 5109 阅读 · 1 评论 -
AABB和OBB包围盒简介
一、AABB立方体边界框检测用球体去近似地代表物体运算量很小,但在游戏中的大多数物体是方的或者长条形的,应该用方盒来代表物体。另一种常见的检测模型是立方体边界框,如图10-31展示了一个AABB检测盒和它里面的物体。坐标轴平行(Axially-aligned)不仅指盒体与世界坐标轴平行,同时也指盒体的每个面都和一条坐标轴垂直,这样一个基本信息就能减少转换盒体时操作的次数。AABB技术在当今转载 2011-03-25 17:26:00 · 23476 阅读 · 2 评论 -
射线使用-碰撞检测
射线使用-碰撞检测我们首先实现对鼠标右键的响应是他能够自由查看然后实现摄像机不能穿越地面最后单击左键增加实体,并能在单机状态下移动实体 首先,一如既往,提供程序运行的代码框架#include #include #include #include "ExampleApplication.h"class MouseQueryListener : public E转载 2010-03-25 09:50:00 · 2517 阅读 · 1 评论 -
OSG碰撞检测
http://bbs.vrchina.net/viewthread.php?tid=5196&extra=page%3D1OSG碰撞检测碰撞检测涉及到虚拟仿真的各个方面,这里我主要介绍两方面的应用:一 判断摄像机是否与前面的物体相撞基本原理如下图:首先确定摄像机的旧位置和新位置(此处的新位置是假设前方没有障碍物所行进到的新位置),然后利用两点创建一条线段,然后判断这条线段与模型转载 2010-03-29 13:04:00 · 7576 阅读 · 1 评论 -
碰撞检测经典解决方案
碰撞检测在3D游戏中至关重要,好的碰撞检测要求人物在场景中可以平滑移动,遇到一定高度内的台阶可以自动上去,而过高的台阶则把人挡住,遇到斜率较小的斜坡可以上去,斜率过大则把人挡住,在各种前进方向被挡住的情况下都要尽可能地让人物沿合理的方向滑动而不是被迫停下。在满足这些要求的同时还要做到足够精确和稳定,防止人物在特殊情况下穿墙而掉出场景。 碰撞检测做得好了是应该的,不易被人注意转载 2012-07-08 09:17:40 · 32439 阅读 · 2 评论 -
AABB包围盒、OBB包围盒、包围球的比较
1) AABB 包围盒: AABB 包围盒是与坐标轴对齐的包围盒, 简单性好, 紧密性较差(尤其对斜对角方向放置的瘦长形对象, 采用AABB, 将留下很大的边角空隙, 导致大量没必要的包围盒相交测试)。当物体旋转之后需对AABB 进行同样的旋转并更新; 当物体变形之后只需对变形了的基本几何元素对应的包围盒重新计算; 然后可以自下向上由子结点的AABB 合成父结点的AABB, 最后进行包围盒树的更新转载 2011-03-25 17:32:00 · 9050 阅读 · 0 评论 -
OSG使用OpenGL顶点着色器和片元着色器
目的:使用OpenGL着色语言中的顶点和片元着色器,替代原有的固化函数管道的光照和材质计算,用于场景图形中的节点选择。(砖块着色器程序来自3DLabs) ------------------------------------ 概述:OpenGL着色语言允许程序员编写自己的像素和顶点着色器。有关着色语言的更多信息,包括最低的硬件和软件需求,请参阅:http://develop转载 2010-03-29 13:09:00 · 6521 阅读 · 0 评论 -
OSG 实现跟随节点的相机
自OSG 0.9.7发布之后,新的osgGA::MatrixManipulator类(TrackerManipulator)允许用户将摄相机“依附”到场景图形中的节点。这一新增的操纵器类可以高效地替代下面所述的方法。本章教程将继续使用回调和节点路径(NodePath)来检索节点的世界坐标。 本章目标:在一个典型的仿真过程中,用户可能需要从场景中的各种车辆和人物里选择一个进行跟随。本章将介绍转载 2010-03-29 13:06:00 · 7520 阅读 · 2 评论 -
美国海军osg教程
中文教程网 http://www.osgchina.org/projects/osgcn/wikicn/Supportcn/Tutorials.phpOpen Scene Graph教程1——使用Open Scene Graph几何原文出处:http://www.nps.navy.mil/cs/sullivan/osgtutorials/osgGeometry.htm摘要 本节涵盖转载 2010-03-17 08:50:00 · 6617 阅读 · 0 评论 -
osg概述以及学习方法等
概述. Osg 即OpenSceneGraph的简称.是一款开源的场景图形库.同时它也是跨平台的..Osg它基于场景图的概念.利用了软件开发当中的设计模式的理念,设计并提供了一个基于OpenGL底层的面向对象的图形开发框架.. Osg是完全由标准C++和OpenGL而写的.充分利用STL和设计模式的特性,可以说是具有高性能,可扩展,可移植的特性.就目前来讲似乎是越来越流行起来的一转载 2010-03-17 08:46:00 · 2048 阅读 · 0 评论 -
osg天空
osg天空 收藏 http://hi.baidu.com/janxhuilk/blog/item/7a16871b2bd941fbae5133af.html/cmtid/eb8393b4a19d267b8ad4b217osg::TextureCubeMap* readCubeMap(){osg::TextureCubeMap* cubemap = new osg::TextureCubeM转载 2010-03-17 08:44:00 · 2813 阅读 · 0 评论 -
osg::ArgumentParser和osg::ApplicationUsage
ArgumentParser参数解析器使用(Examples osganimate):判断有没有输入指定的参数osg::ArgumentParser arguments(&argc,argv);while (arguments.read("--overlay")) overlay = true;Examples osgshadow中使用方法setDescription是描述信息,在命令转载 2010-03-17 08:41:00 · 3384 阅读 · 0 评论 -
直接从内存中读取osg节点
目的:要从数据库中读取节点数据到osg。 一开始的方法是这样的,每当我要添加一个数据库中的节点数据时,首先把它读取到内存中,然后写入一个文件,最后再次从文件中用osg的osgDB::readNodeFile()读取,这个方法是可行的,但是却很糟糕。我的初衷是不要经过文件转换。 现在问题解决了,多亏了osg::ReaderWriter提供一个虚函数:virtual ReadRes转载 2010-03-17 08:36:00 · 1951 阅读 · 0 评论 -
OpenSceneGraph 笔记--如何导出三角形数据
在OpenSceneGraph开发中,为了方便会经常使用到一些不是三角形片的数据,比如四边形等数据。例如画一个管子用四边形带比用三角形片好计算得多。比如现在我们要画一个由两个平面组成的面,我可以这样做:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--转载 2010-03-16 10:22:00 · 2298 阅读 · 0 评论 -
OSG 碰撞检测之多面体求交器代码解读
关于碰撞检测,始终是物理系统在图形学运用上的一个比较复杂的问题.碰撞检测做的好不好.完全决定一个场景漫游的逼真性. 这几天,在坐城市汽车仿真处理上,对于驱动汽车运动时候,对于汽车的碰撞检测问题困扰了我相当的久.始终没能做到很好.这当中我现在使用的汽车包围体对场景进行求交测试时候,用到了OSG中PolytopeIntersector. 对于一个Polytope 应当是多个平面组成的一转载 2010-03-08 16:58:00 · 4125 阅读 · 1 评论 -
OpenSceneGraph配置和编译说明
步骤1: 设置环境变量。在环境变量—〉系统变量中的path后面追加OSG整体程序的bin目录(如E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/bin)。在环境变量—〉用户变量中新建变量OSGinclude,值为:E:/OSG/OSG_OP_OT-0.9.6-2/OpenSceneGraph-0.9.6-2/include;新建变量OSGli原创 2010-03-08 08:41:00 · 1910 阅读 · 0 评论 -
一个简单的osg控件开发例子
作者:boqing经常需要在对话框上添加osg的浏览功能,一开始是仿照osgviewerMFC的例子去写,可是每次在对话框上添加此功能的时候都要重复复制很多处代码,且位置和大小控制也不是很方便。因此写了个简单的OSG Active控件解决此问题。 开发工具:vc2005OSG版本:osg2.2 具体开发步骤:一 建立Active工程项目类型选择:MFC,模板选择MFC Acti转载 2010-03-17 08:56:00 · 2022 阅读 · 0 评论 -
生成osg图像并保存
#include "osgViewer/Viewer"#include "osgDB/WriteFile"#include "osgDB/ReadFile"#include "osgGA/TrackballManipulator"#include void main(){ ///////////////////////////////////////////转载 2010-03-17 08:38:00 · 4114 阅读 · 3 评论 -
OSG中测试旋转与平移
其实,无需关心osg矩阵是如何实现的.但是要记住的是osg中采用的左乘操作,我们平时里讨论的操作如旋转平移等。 OpenGL的: newpos = R* T * oldpos //先执行平移 后执行 旋转 (全局坐标系) osg当中: newpos =oldpos * T *R //先执行平移 后执行旋转 (全局坐标系)因为在osg当中矩转载 2010-03-17 08:45:00 · 6111 阅读 · 0 评论 -
WindowXP下osgWX osgGTK osgQT osgCEGUI编译小节
这里osg我用的是2.4 但是 osgWX osgGTK osgQT osgCEGUI四个例子程序都是用的2.5里面的,我都是新建的VS2005下面的工程,只有osgWX不是Console的工程,而是_Windows的工程,然后我把源码拷贝到工程下,有些个别的需要修改一下。这里就不介绍osg的编译,下载和安装了。1)osgWX 即osg+ WxWidgetWxWidget的下载和安装:(1)转载 2010-03-26 13:28:00 · 3181 阅读 · 0 评论 -
OSG与CEGUI结合
首先我的系统中软件版本如下Visual Studio 2005 SP1OSG 2.3.7CEGUI0.6.0-vc8首先是osgcegui.cpp按照“yucnet”的介绍 稍作修改,另外 我觉得每次在命令行输入sheme、lookandfeel、font等参数比较麻烦 所以干脆在程序中写死了,具体的见代码。程序中使用的TaharezLook.scheme等都是在cegui的官方网站中下载的。 o转载 2010-03-26 13:52:00 · 5851 阅读 · 6 评论 -
osgcegui/osgcegui.cpp
Revision 6422, 8.6 kB (checked in by robert, 3 years ago) Removed deprecated drawImplementation(State&) method from Drawable and Drawable::DrawCallback?Property svn:eol-style原创 2010-03-26 13:47:00 · 2425 阅读 · 0 评论 -
在OSG下创建第一个CEGUI窗口
最近在做OSG与CEGUI结合的工作,感觉CEGUI在制作绚丽的GUI方面有着很强的优势,这也是很多游戏开发者对其推崇的原因吧。下面将介绍一下如何在OSG中创建自己的第一个CEGUI窗口,有兴趣的朋友可以多多指教。 首先,在工程开始添加所需的头文件(这个就不用我啰嗦了吧)。构建一个用于绘制CEGUI窗口的类CEGUIDraw继承自osg::Drawable。代码如下:class CE转载 2010-03-26 13:43:00 · 3699 阅读 · 1 评论 -
OSG2.8.1在vs2005配置
1.首先去OSG downloads 下载所需的文件,这是必须的。openscenegraph-all-2.8.1-win32-x86-vc80sp1-Debug.zip openscenegraph-all-2.8.1-win32-x86-vc80sp1-Release.zip OSG sample data 当然如果要看看源代码看看的话:OpenSceneGraph-2.8.1.z转载 2010-03-24 16:53:00 · 1540 阅读 · 0 评论 -
OSG在VS2008下的配置安装
一、准备工作下载相关的工具软件:1, 最新版的OSG库:OpenSceneGraph-2.8.2.zip。2, 安装源代码所需要的工具:cmake-2.6.4-win32-x86.zip3, Windows支持的图像库:3rdParty_Win32Binaries_vc90sp1.zip,因为我用的是vc2008,如果用vc05应该有其它针对的版本4, 数据文件包:OpenSc转载 2010-03-24 16:51:00 · 3120 阅读 · 4 评论 -
OSG嵌入Win32窗口的例子
-----由ARRAY创作,,自由传播~~~~下面是一个OSG嵌入Win32 API窗口的例子,我自己没事琢磨的~~应该有不少冗余和没用的地方,不过保证是可以用的~~在家里的豪华配置的电脑上(Intel Core 1.78G,Geforce7600GS)偶尔遇到帧速变得很慢的情形,不过在实验室的破机器上(AMD2600,Radeon7500)运行很流畅,呵呵,不知道是什么原因,还请大家指正~~ 这转载 2010-03-24 16:55:00 · 4811 阅读 · 2 评论 -
osg轮廓特效
// -*-c++-*-/* * OpenSceneGraph - Copyright (C) 1998-2003 Robert Osfield * * This library is open source and may be redistributed and/or modified under * the terms of the OpenSceneGraph Public Licen转载 2010-03-17 08:45:00 · 3558 阅读 · 0 评论