osg demo汇总

1.example_osganimate
演示了路径动画的使用(AnimationPath、AnimationPathCallback),路径动画回调能够做用在Camera、CameraView、MatrixTransform、PositionAttitudeTransform等四种类型的节点上。
演示了osgSim::OverlayNode的使用node

2.example_osganimationeasemotion
演示了osgAnimation::EaseMotion的使用,EaseMotion能够用于表达位移、速度值随时间的变化状况,经过不一样的模板参数(functor),实现了不一样的变化曲线。
程序中用到了一个使用osgWidget构造的弹出式菜单。

3.example_osganimationhardware
演示了在osgAnimation::RigGeometry中使用自定义RigTransformImplementation的方法。
能够参考程序中获取骨骼动画模型包含的动画列表的方法。

4.example_osganimationmakepath
演示了osgAnimation::Sampler采样器的使用,更新物体颜色(vec4)、物体位置(vec3)。Sampler派生模板类用于在一组已知离散数据样本的基础上,进行插值计算,获得连续数据。经过模板参数支持多种插值方法。
在更新物体位置这方面,与路径动画AnimationPath相似,但它须要本身写回调来更新节点矩阵,好处是可以使用更灵活的方式来进行数据采样,而AnimationPath只能进行线性内插。canvas

5.example_osganimationmorph
演示了利用osgAnimation::MorphGeometry实现几何体变形动画的方法。windows

6.example_osganimationnode
同osganimationmakepath演示的功能基本相同。

7.example_osganimationskinning
演示了使用osgAnimation::Skeleton、osgAnimation::Bone构建骨骼,使用osgAnimation::Animation、osgAnimation::Channel构建动画,使用osgAnimation::RigGeometry构建蒙皮,以及使用osgAnimation::BasicAnimationManager播放骨骼动画的流程。能够作为学习osgAnimation骨骼动画实现结构的参考。

8.example_osganimationsolid
演示了利用多个Channel对一个物体进行运动控制(最终落实到更新MT节点的矩阵)。与示例osganimationmakepath的区别在于,这里使用了osgAnimation::Channel、osgAnimation::Animation、osgAnimation::UpdateMatrixTransform,对同一个物体应用了多个运动控制的叠加。app

9.example_osganimationtimeline
演示了osgAnimation中的时间线控制。osgAnimation::Timeline、osgAnimation::TimelineAnimationManager。timeline是作什么用的?iview

10.example_osganimationviewer
演示了osgAnimation骨骼动画的加载及播放控制,能够在多个动做间切换,但播放多个动做、动做暂停等方面彷佛很差使。
程序中出现了一个使用osgWidget构建的播放控制GUI,还有一个能够滑入滑出的菜单,能够做为GUI构建的参考。ide

11.example_osgautocapture
一个自动截屏的示例程序,用到了自定义osgViewer::Renderer,osg::Camera::DrawCallback等。
里面有一段用经纬高和方向角定位相机的代码。

12.example_osgautotransform
演示了利用osg::AutoTransform实现自动的缩放、旋转,从而达到按指定的效果自动面向屏幕。

13.example_osgbillboard
演示了osg::Billboard的使用。与AutoTransform的区别在哪里?

14.example_osgblendequation
演示了osg::BlendEquation的不一样配置对于渲染结果的影响。

15.example_osgcallback
演示了OSG中各类回调方法的使用。

16.example_osgcamera
演示了单窗口多相机(使用SlaveCamera)、多窗口多相机(一个Viewer,多个GraphicsContext,多个Camera做为Slave添加到viewer下)、多屏幕多窗口。

17.example_osgcatch
一个相似接蛋游戏的小游戏程序

18.example_osgclip
演示了osg::ClipNode(osg::ClipPlane)的使用。

19.example_osgcluster
多机同步的演示

20.example_osgcompositeviewer
演示了osgViewer::CompositeViewer的使用

21.example_osgcopy
演示了osg中clone操做的使用,以及osg::CopyOp的自定义用法。

22.example_osgcubemap
演示如何使用高光贴图加强模型显示效果。高光贴图使用的立方体贴图(osg::TextureCubeMap),高光CubeMap使用osgUtil::HighlightMapGenerator自动生成。使用osg::TexGen以反射贴图的方式自动生成纹理坐标。并用osg::TexEnvCombine将高光贴图与原始颜色混合(ADD)。
osgUtil::HighlightMapGenerator派生自osgUtil::CubeMapGenerator,还有其余一些用途的立方体贴图生成器。

23.example_osgdatabaserevisions
演示了分页数据库本地缓存及数据版本检查的使用。

24.example_osgdelaunay
演示了DelaunayTriangulator的使用,用于对不规则网格点进行三角化处理。

25.example_osgdepthpartition
实现了一个派生自osg::Group的DepthPartitionNode节点类型,它能够自动对子节点树按照深度值进行划分,用于解决大场景下深度缓冲的问题。

26.example_osgdepthpeeling
DepthPeeling

27.example_osgdistortion
演示了相似哈哈镜的效果

28.example_osgdrawinstanced
演示了利用DrawArraysInstanced将一个四边形面片渲染成若干小面片的方法。

29.example_osgfadetext
演示了osgText::FadeText的使用,并使用osg::ClusterCullingCallback实现文字的汇集剪裁(根据指定法线与视线对物体进行剪裁)。FadeText封装了自动淡入淡出和自动进行互相间的遮挡技术的功能。

30.example_osgfont
演示了字体的使用

31.example_osgforest
演示了用多种技术方法实现森林的效果。首先对整个森林的全部树木作分块处理(cell),而后按照分块结构,使用多种方式进行建模。对树的建模使用的方法包括:Billboard、Shader、十字面片等。

32.example_osgfpdepth
演示了使用深度缓冲相关的应用。floating point depth buffer? invert the depth buffer?

33.example_osgfxbrowser
演示了使用osgFX建立的几种特殊渲染效果,使用osgFX::Effect管理各类效果。包括的效果有:AnisotropicLighting、BumpMapping、Cartoon、Outline、Scribe、SpecularHighlights。

34.example_osggameoflife
演示了一种叫作"Ping-Pong"的渲染技术,它是指利用FBO和两张纹理对象,在着色程序中以一个纹理为输入把计算结果写入另外一个纹理,而后反转输入输出纹理再进行相同的操做,如此迭代。
其中用到的"GameOfLife"是使用Ping-Pong处理图片并输出的一个示例。

35.example_osggeodemo
演示了.geo文件的加载,以及geo模型的动画更新。
GEO PRO是CarbonGraphics出品的一个建模工具,.geo文件是它的模型文件格式。

36.example_osggeometry
演示了osg::Geometry(几何体)的各类构造方法。

37.example_osggeometryshades
演示了如何利用GeometryShader程序动态改变几何体的绘制,示例中把一个点绘制成不断变化的十字线。

38.example_osggpx
演示了一个跟踪路径的数据结构,以及使用osgDB::XmlParser对它的读写。

39.example_osggraphicscost
演示了osg::GraphicsCostEstimator的使用,osg::GraphicsCostEstimator用来评估编译/绘制几何体、纹理、着色程序、节点所须要的时间。

40.example_osghangglide
演示了使用程序构建场景的过程。
实现了一个滑行漫游器。

41.example_osgimagesequence
演示了使用osg::ImageSequence做为纹理贴图,并经过osg::ImageStream接口进行贴图动画播放控制的方法。ImageSequence贴图的加载有多种控制方案。

42.example_osgimpostor
演示了osgSim::Impostor的使用。Impostor节点的做用彷佛是,经过在一些状况下,把物体渲染结果保存为纹理,然后经过渲染纹理代替渲染物体,以达到提升渲染效率的目的?
实现了一个自定义的漫游器。

43.example_intersection
演示并对别了多种求交计算的方法,如osgSim::LineOfSight、osgSim::HeightAboveTerrain、osgSim::ElevationSlice、osgUtil::IntersectorGroup。

44.example_osgkdtree
演示了kdtreee的使用。OSG可以在读取模型文件时自动构建kdtree。

45.example_keyboard
演示了键盘输入消息的处理。

46.example_keyboardmouse
演示了鼠标、键盘消息的处理。

47.example_osglauncher
一个三位的程序导航菜单。为每一个例子程序构造一个立方体对象,经过即时的求交计算断定当前选中的对象,从而关联一个例子程序并启动执行。

48.example_osglight
演示了光照的使用。

49.example_osglightpoint
演示了osgSim::LightPoint、osgSim::LightPointNode的使用。

50.example_osglogicop
演示了osg::LogicOp(glLogicOp)的使用。

51.example_osglogo
演示了logo的制做。

52.example_osgmanipulator
演示了osgManipulator中各类拖拽器(Dragger)的使用。

53.example_osgmemorytest
一些GL操做的测试。

54.example_osgmotionblur
演示了如何利用累积缓冲区(accumulation buffer)实现一个简单的运动模糊(motion blur)效果。

55.example_osgmovie
演示了视频播放的功能。须要使用视频读取插件,如osgdb_quicktime、osgdb_ffmpg

56.example_osgmultiplerendertargets
演示了如何使用RTT(Render To Texture)、MRT(Multiple Render Targets)。

57.example_osgmultitexture
演示了多重纹理的使用。

58.example_osgmultitexturecontrol
演示了osgFX::MultiTextureControl的使用。

59.example_osgmultiviewpaging
多视口分屏的演示。

60.example_osgoccluder
演示了osg::ConvexPlanarOccluder的使用。

61.example_osgocclusionquery
演示了osg::OcclusionQueryNode的使用。

62.example_osgoit
depth peeling的使用。

63.example_osgoutline
演示了使用osgFX::Outline绘制物体外轮廓线的方法。

64.example_osgpackeddepthstencil
osg::Camera::PACKED_DEPTH_STENCIL_BUFFER的使用。

65.example_osgpagedlod
演示了利用osg::PagedLOD实现层次细节及流式加载。

66.example_osgparametric
演示了使用顶点着色程序(Vertex Shader Program)实现简单的变形动画。

67.example_osgparticle
几个粒子效果的演示,并使用了自定义osgParticle::Operator的方法控制粒子运动。

68.example_osgparticleeffects
演示了osgParticle中几个预约义Effect的效果,包括爆炸、爆炸碎片、烟、火等。

69.example_osgparticleshader
osgParticle实现的一个喷泉效果

70.example_osgpdf
使用osgWidget::PdfReader读取并显示pdf文档的例子,须要有相应插件支持。

71.example_osgphotoalbum
一个3D相册演示程序?实现了一种把多个图片文件合并到一个相册文件中的格式。

72.example_osgpick
经过求交计算进行拾取判断的一个例子。

73.example_osgplanets
天体运行的一个示例程序,其中使用billboard为太阳制做了大气层效果。

74.example_osgpoints
演示了使用点精灵(osg::PointSprite)绘制点,以及设置点大小。

75.example_osgpointsprite
使用点精灵绘(osg::PointSprite)制点云的示例。

76.example_osgposter
演示了渲染大分辨率图片(high-resolution image)的方法。

77.example_osgprecipitation
演示了osgParticle::PrecipitationEffect实现的雨、雪效果。

78.example_osgprerender
演示了渲染到纹理(RTT)的使用。在PRE_RENDER时把场景渲染到纹理上,再使用这个纹理渲染主场景。

79.example_osgprerendercubemap
演示了使用立方体贴图(osg::TextureCubeMap)实现环境反射的方法。

80.example_osgrefelect
演示了一个镜面反射效果的实现。

81.example_osgrobot
演示了一个由矩阵节点树构形成的多关节机器人。

82.example_osgscalarbar
演示了使用osgSim::ScalarBar实现的颜色标尺效果。

83.example_osgscreencapture
演示了利用osg::Camera::DrawCallback派生类实现截屏的方法。

84.example_osgscribe
在模型表面附加网格线的效果,利用osg::PolygonMode和osg::PolygonOffset实现,与osgSim::Scribe效果和原理一致。

85.example_osgsequence
演示了序列化播放多个模型的效果,利用osg::Sequence节点实现。

86.example_osgshadercomposition
演示了着色程序组合(ShaderComposition)的使用,用到osg::ShaderAttribute

87.example_shadergen
演示了利用osgUtil::ShaderGenVisitor生成替换固定功能管线的GLSL代码。

88.example_osgshaders
演示了Data\shaders目录下几个shader代码文件的使用。

89.example_osgshaderterrain
一个在着色程序中经过纹理采样计算地形高程来生成地形的示例。

90.example_osgshadow
包含多种实时阴影算法实现的阴影效果演示程序。

91.example_osgshape
利用osg::ShapeDrawable构建经常使用几何体的演示。

92.example_sharedarray
演示了以自定义数据结构构造几何体的方法,派生osg::Array类。

93.example_osgsidebyside
osgSim::MultiSwitch、osgSim::DOFTransform节点的控制。单窗口多视口的使用。

94.example_osgsimplifier
演示了使用osgUtil::Simplifier对模型进行简化的方法。

95.example_osgsimulation
演示了节点跟踪漫游器(osgGA::NodeTrackerManipulator)的使用。

96.example_osgslice
应该是很老的一个示例,还在直接使用osgUtil::SceneView,没有连接osgViewer库,因此窗口GC调用失败,不能运行。

97.example_osgspacewarp
使用一个小技巧实现点在相机运动状况下观察变成线的效果(相似虚影的效果)。小技巧是,对于每一个点,也绘制一条线,线的一个端点始终在点的当前位置上,另外一个端点使用点在上一帧的位置。

98.example_osgspheresegment
使用osgSim::SphereSegment绘制弧面的例子。

99.example_osgspotlight
演示了聚光灯的使用。osg::LightSource

100.example_osgstereoimage
演示了生成立体图片的方法。

101.example_osgstereomatch
左右眼图像立体匹配的示例,使用Data\images目录下的狗的图片运行。

102.example_osgteapot
使用osg::Drawable派生类封装经典的glut_teapot的绘制。

103.example_osgterrain
动态控制地形参数的示例,使用osgTerrain::Terrain。

104.example_tessellate
演示了镶嵌(tessellation)的使用,osgUtil::Tessellator。

105.example_osgtext
演示了文字的各类使用方式,osgText::Text。

106.example_osgtext3D
演示了立体文字的使用,osgText::Text3D。

107.example_osgtexture1D
演示了一维纹理的使用osg::Texture1D,纹理坐标生成节点osg::TexGenNode。

108.example_osgtexture2D
演示了二维纹理的使用osg::Texture2D,并经过更新回调演示了纹理在不一样纹理过滤方式(filter)、纹理环绕模式(wrap)、各项异型系数(anisotropic)下的不一样效果。

109.example_osgtexture3D
演示了三维纹理的使用osg::Texture3D。示例中用多张二维图片组装出一个三维纹理对象,在顶点数据中指定s、t两个纹理坐标,而使用osg::TexGen单独生成纹理坐标r(TexGen能够用来独立的生成某一维的纹理坐标),经过在更新回调中更新TexGen的参数动态更新纹理坐标r,因为纹理过滤方式使用的线性过滤,从而获得的效果是在多张纹理间平滑切换。

110.example_osgtexturecompression
演示了多种压缩格式(InternelFormatMode)的对比效果。同时有多视口osgViewer::CompositeViewer的使用。

111.example_osgtexturerectangle
演示了矩形纹理osg::TextureRectangle的使用,矩形纹理的纹理坐标范围必须为图片像素范围,而且环绕模式不支持重复,不支持边框和mipmap。

112.example_osgthirdpersonview
使用osgViewer::CompositeViewer构建多窗口视图,并在第二个窗口中绘制第一个窗口相同的场景的同时绘制出第一个窗口相机的视锥体。

113.example_osgthreadedterrain
使用增量编译osgUtil::IncrementalCompileOperation,避免加载大模型时形成的帧率降低。
osgTerrain::Layer、osgTerrain::TerrainTile的使用。

114.example_osguniformbuffer
演示了osg::UniformBufferObject的使用。

115.example_osgunittests
单元测试代码。

116.example_osguserstats
演示了如何在OSG的统计信息显示界面中显示用户自定义的统计信息。

117.example_osgvertexattributes
演示了在着色程序中使用顶点属性(VertexAttribute)。

118.example_osgvertexprogram
使用立方体贴图(CubeMap)和顶点着色程序(VertexShader)实现环境反射的例子,同时提供了一个天空盒的实现。

119.example_osgviewerGLUT
OSG与GLUT窗口系统的结合。

120.example_osgviewerMFC
OSG与MFC的结合。

121.example_osgvirtualprogram
着色程序的使用。

122.example_osgvolume
三维纹理和体渲染的示例。

123.example_osgwidgetaddremove
osgWidget动态添加和删除Widget的示例,有鼠标事件的自定义处理。

124.example_osgwidgetbox
osgWidget::Box的使用,以及拖拽处理。

125.example_osgwidgetcanvas
osgWidget::Canvas的使用。

126.example_osgwidgetframe
osgWidget::Frame的使用,可以拖动左右下及角上的边框改变Widget大小,拖动上侧的边框移动Widget。

127.example_osgwidgetinput
接收文字输入的osgWidget::Input的使用。

128.example_osgwidgetlabel
文字标签osgWidget::Label的使用。

129.example_osgwidgetmenu
使用osgWidget构造菜单的示例。

130.example_osgwidgetmessagebox
使用osgWidget::Frame、osgWidget::Box、osgWidget::Label等构建的MessageBox的示例。

131.example_osgwidgetnotebook
使用osgWidget构造的带Tab的记事本。

132.example_osgwidgetperformance
osgWidget效率测试。

133.example_osgwidgetscrolled
经过设置鼠标滚轮消息回调处理函数处理滚轮消息,实现osgWidget窗口的滚屏。

134.example_osgwidgetshader
对Widget使用着色程序渲染。

135.example_osgwidgetstyled
osgWidget::Style的使用。

136.example_osgwidgettable
表格osgWidget::Table的使用。

137.example_osgwidgetwindow
LUA脚本的使用。

138.example_osgwindows
多窗口拼接的示例。

139.example_osganalysis场景分析?

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

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

相关文章

[操作系统] 大厂必问~虚拟内存系列

文章目录 4.1 什么是虚拟内存(Virtual Memory)?4.2 局部性原理4.3 虚拟存储器4.4 虚拟内存的技术实现4.5 页面置换算法OPT 页面置换算法(最佳页面置换算法)FIFO(First In First Out) 页面置换算法(先进先出页面置换算…

MyBatis教程之逆向工程(十一)

正向工程:先创建Java实体类,由框架负责根据实体类生成数据库表。Hibernate是支持正向工程 的。逆向工程:先创建数据库表,由框架负责根据数据库表,反向生成如下资源: 1.Java实体类 2.Mapper…

使用easyExcel框架报错:服务器缺少字体

后台服务使用easyExcel框架生成表格,但是生成的时候报如下的错误: 这种报错其实就是部署服务的服务器缺少字体,正确的方法是安装字体。需要注意的是,测试环境服务器与生产环境服务器的在配置版本上可能存在差异,因此需…

初识Java 18-6 泛型

目录 潜在类型机制 支持潜在类型机制的语言 Python的潜在类型机制 C的潜在类型机制 Java中的直接潜在类型机制 潜在类型机制的替代方案 反射 将方法应用于序列中的每个元素 Java 8的潜在类型机制(间接实现) 潜在类型机制的使用例(S…

『 MySQL数据库 』CRUD之UD,表的数据更新(修改)及删除

文章目录 🥩 Update (更新/修改) 🦖🥚 修改单行数据的某个字段内的数据 🦕🥚 配合LIMIT分页与ORDER BY 对符合条件的多条数据进行修改 🦕🥚 对整表的某个数据字段进行修改 🦕 &#…

MySQL--锁

锁 锁是mysql在并发访问时,解决数据访问一致性、有效性的一种机制 mysq中的锁,按照锁的粒度分,分为以下三类: 全局锁:锁定数据库中的所有表 表级锁:每次操作锁住整张表 行级锁:每次操作锁住对…

Android 架构实战MVI进阶

MVI架构的原理和流程 MVI架构是一种基于响应式编程的架构模式,它将应用程序分为四个核心组件:模型(Model)、视图(View)、意图(Intent)和状态(State)。 原理&…

【AntDB数据库】国产数据库崛起之狂飙猛进的互联网技术

中国作为人口大国,也是重要的人才资源大国,人口大国带来了国外数据库厂商在世界其他国家不曾出现的高复杂高密度的需求场景,而人才资源大国则让我们在互联网尤其是移动互联网方面奋起直追,甚至达到了全球领先的水平,进…

JS的原生函数

JS的原生函数,包括:String()、Number()、Boolean()、Array()、Object()、Function()、RegExp(&…

通过navicat工具将excel文件导入数据库的表中

文章目录 1.navicat可视化工具2. 导入文件 1.navicat可视化工具 这里使用的是navicat数据库可视化工具,不是直接通过数据库指令导入的 前提是连接好数据库,建立好表,如下图,test为连接名,随便起,data为数据…

学习程序员必知必会的基础算法(收藏)

近年来学习python的程序员愈来愈多,有的同学选择了python培训机构,也有的人觉得自己天赋好选择了自学不管大家怎么去学习,在学习python基础的过程中,肯定离不开的就是基础算法,今天就为大家介绍几大学习中的基础算法。…

Arkts http数据请求

使用Arkts功能需要申请ohos.permission.INTERNET权限。即在module.json5文件中申明网络访问权限:ohos.permission.INTERNET。如下 {"module" : {"requestPermissions":[{"name": "ohos.permission.INTERNET"}]} } Arkts …

LLM面面观之Prefix LM vs Causal LM

1. 背景 关于Prefix LM和Causal LM的区别,本qiang在网上逛了一翻,发现多数客官只给出了结论,但对于懵懵的本qiang,结果仍是懵懵... 因此,消遣了多半天,从原理及出处,交出了Prefix LM和Causal …

Python requests请求响应以流stream的方式打印输出

如果你使用的请求库是requests,那么你必须了解的大模型里的请求怎么响应式的接收并打印出来的。 这里给大家写一下正式的书写方式: import requestsurl "http://localhost:8080/stream"payload {} headers {}response requests.request("GET&q…

回文链表,剑指offer 27,力扣 61

目录 题目: 我们直接看题解吧: 解题方法: 难度分析: 审题目事例提示: 解题分析: 解题思路(数组列表双指针): 代码说明补充: 代码实现: 代码实现&a…

JS中的类型与值

1、类型 我们这样来定义类型:类型是值的内部特征,它定义了值的行为,以使其区别于其他值 1.1、内置类型 JS有其中内置类型:null、undefined、boolean、number、string、object、symbol(ES6新增)&#xff…

智安网络|发现未知风险,探索渗透测试的奥秘与技巧

在当今信息时代,网络安全已成为组织和个人面临的重大挑战。为了保护网络系统的安全,渗透测试成为一种重要的手段。 一、渗透测试的基本原理 渗透测试是通过模拟黑客攻击的方式,对目标系统进行安全评估。其基本原理是模拟真实攻击者的思维和行…

openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能

文章目录 openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能136.1 检查办法136.2 异常处理 openGauss学习笔记-136 openGauss 数据库运维-例行维护-检查数据库性能 136.1 检查办法 通过openGauss提供的性能统计工具gs_checkperf可以对硬件性能进行检查。 …

一个软件测试练手项目——学生信息管理系统测试,卷起来啊

免费分享一个练手项目,学生信息管理系统,获取方式在文末 1.引言 1.1项目目的 软件测试是为了在软件投入生产性运行之前,尽可能多地发现软件的错误。该项目的目的是给学习软件测试的朋友练手用 1.2 项目背景 随着学校的规模不断扩大&…

【C 语言经典100例】C 练习实例18

题目&#xff1a;求saaaaaaaaaaaa…a的值&#xff0c;其中a是一个数字。例如222222222222222(此时共有5个数相加)&#xff0c;几个数相加有键盘控制。 程序分析&#xff1a;关键是计算出每一项的值。 #include<stdio.h> int main() {int s0,a,n,t;printf("请输入 a…