OSG⾃带examples简介
⼀)演⽰了路径动画的使⽤(AnimationPath、AnimationPathCallback),路径动画回调可以作⽤在Camera、CameraView、MatrixTransform、PositionAttitudeTransform等四种类型的节点上。
⼆)演⽰了osgSim::OverlayNode的使⽤
简爱第二章读后感
⼀)演⽰了osgAnimation::EaMotion的使⽤,EaMotion可以⽤于表达位移、速度值随时间的变化情况,通过不同的模板参数(functor),实现了不同的变化曲线。
⼆)程序中⽤到了⼀个使⽤osgWidget构造的弹出式菜单。
⼀)演⽰了在osgAnimation::RigGeometry中使⽤⾃定义RigTransformImplementation的⽅法。
⼆)可以参考程序中获取⾻骼动画模型包含的动画列表的⽅法。
⼀)演⽰了osgAnimation::Sampler采样器的使⽤,更新物体颜⾊(vec4)、物体位置(vec3)。Sampler派⽣模板类⽤于在⼀组已知离散数据样本的基础上,进⾏插值计算,得到连续数据。通过模板参数⽀持多种插值⽅法。
⼆)在更新物体位置这⽅⾯,与路径动画AnimationPath类似,但它需要⾃⼰写回调来更新节点矩阵,好处是能够使⽤更灵活的⽅式来进⾏数据采样,⽽AnimationPath只能进⾏线性内插。
⼀)演⽰了利⽤osgAnimation::MorphGeometry实现⼏何体变形动画的⽅法。
⼀)同osganimationmakepath演⽰的功能基本相同。
⼀)演⽰了使⽤osgAnimation::Skeleton、osgAnimation::Bone构建⾻骼,使⽤osgAnimation::Animati
on、osgAnimation::Channel构建动画,使⽤osgAnimation::RigGeometry构建蒙⽪,以及使⽤osgAnimation::BasicAnimationManager播放⾻骼动画的流程。可以做为学习osgAnimation⾻骼动画实现结构的参考。
⼀)演⽰了利⽤多个Channel对⼀个物体进⾏运动控制(最终落实到更新MT节点的矩阵)。与⽰例osganimationmakepath的区别在于,这⾥使⽤了osgAnimation::Channel、osgAnimation::Animation、osgAnimation::UpdateMatrixTransform,对同⼀个物体应⽤了多个运动控制的叠加。
⼀)演⽰了osgAnimation中的时间线控制。osgAnimation::Timeline、osgAnimation::TimelineAnimationManager。timeline是做什么⽤的?
⼀)演⽰了osgAnimation⾻骼动画的加载及播放控制,可以在多个动作间切换,但播放多个动作、动作暂停等⽅⾯似乎不好使。
⼆)程序中出现了⼀个使⽤osgWidget构建的播放控制GUI,还有⼀个可以滑⼊滑出的菜单,可以作为GUI构建的参考。
⼀)⼀个⾃动截屏的⽰例程序,⽤到了⾃定义osgViewer::Renderer,osg::Camera::DrawCallback等。
⼆)⾥⾯有⼀段⽤经纬⾼和⽅向⾓定位相机的代码。
⼀)演⽰了利⽤osg::AutoTransform实现⾃动的缩放、旋转,从⽽达到按指定的效果⾃动⾯向屏幕。
⼀)演⽰了osg::Billboard的使⽤。与AutoTransform的区别在哪⾥?
⼀)演⽰了osg::BlendEquation的不同配置对于渲染结果的影响。
⼀)演⽰了OSG中各种回调⽅法的使⽤。
⼀)演⽰了单窗⼝多相机(使⽤SlaveCamera)、多窗⼝多相机(⼀个Viewer,多个GraphicsContext,多个Camera作为Slave添加到viewer下)、多屏幕多窗⼝。
⼀)⼀个类似接蛋游戏的⼩游戏程序
忠诚正直
⼀)演⽰了osg::ClipNode(osg::ClipPlane)的使⽤。
⼀)多机同步的演⽰
⼀)演⽰了osgViewer::CompositeViewer的使⽤
⼀)演⽰了osg中clone操作的使⽤,以及osg::CopyOp的⾃定义⽤法。
⼀)演⽰如何使⽤⾼光贴图增强模型显⽰效果。⾼光贴图使⽤的⽴⽅体贴图(osg::TextureCubeMap),⾼光CubeMap使⽤osgUtil::HighlightMapGenerator⾃动⽣成。使⽤osg::TexGen以反射贴图的⽅式⾃动⽣成纹理坐标。并⽤osg::TexEnvCombine将⾼光贴图与原始颜⾊混合(ADD)。
osgUtil::HighlightMapGenerator派⽣⾃osgUtil::CubeMapGenerator,还有其他⼀些⽤途的⽴⽅体贴图⽣成器。
⼀)演⽰了分页数据库本地缓存及数据版本检查的使⽤。
⼀)演⽰了DelaunayTriangulator的使⽤,⽤于对不规则⽹格点进⾏三⾓化处理。
⼀)实现了⼀个派⽣⾃osg::Group的DepthPartitionNode节点类型,它可以⾃动对⼦节点树按照深度值进⾏划分,⽤于解决⼤场景下深度缓冲的问题。
DepthPeeling
⼀)演⽰了类似哈哈镜的效果
⼀)演⽰了利⽤DrawArraysInstanced将⼀个四边形⾯⽚渲染成若⼲⼩⾯⽚的⽅法。
⼀)演⽰了osgText::FadeText的使⽤,并使⽤osg::ClusterCullingCallback实现⽂字的聚集剪裁(根据指定法线与视线对物体进⾏剪裁)。FadeText封装了⾃动淡⼊淡出和⾃动进⾏互相间的遮挡技术的功
能。
⼀)演⽰了字体的使⽤
⼀)演⽰了⽤多种技术⽅法实现森林的效果。⾸先对整个森林的所有树⽊做分块处理(cell),然后按照分块结构,使⽤多种⽅式进⾏建模。对树的建模使⽤的⽅法包括:Billboard、Shader、⼗字⾯⽚等。
⼀)演⽰了使⽤深度缓冲相关的应⽤。floating point depth buffer? invert the depth buffer?
⼀)演⽰了使⽤osgFX创建的⼏种特殊渲染效果,使⽤osgFX::Effect管理各种效果。包括的效果有:AnisotropicLighting、BumpMapping、Cartoon、Outline、Scribe、SpecularHighlights。
元旦手抄报图片大全
⼀)演⽰了⼀种叫做"Ping-Pong"的渲染技术,它是指利⽤FBO和两张纹理对象,在着⾊程序中以⼀个纹理为输⼊把计算结果写⼊另⼀个纹理,然后反转输⼊输出纹理再进⾏相同的操作,如此迭代。
⼆)其中⽤到的"GameOfLife"是使⽤Ping-Pong处理图⽚并输出的⼀个⽰例。
⼀)演⽰了.geo⽂件的加载,以及geo模型的动画更新。
⼆)GEO PRO是CarbonGraphics出品的⼀个建模⼯具,.geo⽂件是它的模型⽂件格式。
⼀)演⽰了osg::Geometry(⼏何体)的各种构造⽅法。
⼀)演⽰了如何利⽤GeometryShader程序动态改变⼏何体的绘制,⽰例中把⼀个点绘制成不断变化的⼗字线。
⼀)演⽰了⼀个跟踪路径的数据结构,以及使⽤osgDB::XmlParr对它的读写。
⼀)演⽰了osg::GraphicsCostEstimator的使⽤,osg::GraphicsCostEstimator⽤来评估编译/绘制⼏何体、纹理、着⾊程序、节点所需要的时间。
⼀)演⽰了使⽤程序构建场景的过程。
⼆)实现了⼀个滑⾏漫游器。
虚拟的英文⼀)演⽰了使⽤osg::ImageSequence作为纹理贴图,并通过osg::ImageStream接⼝进⾏贴图动画播放控制的⽅法。ImageSequence贴图的加载有多种控制⽅案。
⼀)演⽰了osgSim::Impostor的使⽤。Impostor节点的作⽤似乎是,通过在⼀些情况下,把物体渲染
结果保存为纹理,⽽后通过渲染纹理代替渲染物体,以达到提⾼渲染效率的⽬的?
⼆)实现了⼀个⾃定义的漫游器。
⼀)演⽰并对别了多种求交计算的⽅法,如osgSim::LineOfSight、osgSim::HeightAboveTerrain、osgSim::ElevationSlice、osgUtil::InterctorGroup。
⼀)演⽰了kdtreee的使⽤。OSG能够在读取模型⽂件时⾃动构建kdtree。
⼀)演⽰了键盘输⼊消息的处理。
⼀)演⽰了⿏标、键盘消息的处理。
⼀)⼀个三位的程序导航菜单。为每个例⼦程序构造⼀个⽴⽅体对象,通过即时的求交计算判定当前选中的对象,从⽽关联⼀个例⼦程序并启动执⾏。
⼀)演⽰了光照的使⽤。
⼀)演⽰了osgSim::LightPoint、osgSim::LightPointNode的使⽤。
⼀)演⽰了osg::LogicOp(glLogicOp)的使⽤。
⼀)演⽰了logo的制作。
⼀)演⽰了osgManipulator中各种拖拽器(Dragger)的使⽤。
⼀)⼀些GL操作的测试。
⼀)演⽰了如何利⽤累积缓冲区(accumulation buffer)实现⼀个简单的运动模糊(motion blur)效果。
⼀)演⽰了视频播放的功能。需要使⽤视频读取插件,如osgdb_quicktime、osgdb_ffmpg
⼀)演⽰了如何使⽤RTT(Render To Texture)、MRT(Multiple Render Targets)。
⼀)演⽰了多重纹理的使⽤。
⼀)演⽰了osgFX::MultiTextureControl的使⽤。
⼀)多视⼝分屏的演⽰。
⼀)演⽰了osg::ConvexPlanarOccluder的使⽤。
病毒是哪里来的⼀)演⽰了osg::OcclusionQueryNode的使⽤。
⼀)depth peeling的使⽤。
⼀)演⽰了使⽤osgFX::Outline绘制物体外轮廓线的⽅法。
⼀)osg::Camera::PACKED_DEPTH_STENCIL_BUFFER的使⽤。
⼀)演⽰了利⽤osg::PagedLOD实现层次细节及流式加载。
⼀)演⽰了使⽤顶点着⾊程序(Vertex Shader Program)实现简单的变形动画。
⼀)⼏个粒⼦效果的演⽰,并使⽤了⾃定义osgParticle::Operator的⽅法控制粒⼦运动。
⼀)演⽰了osgParticle中⼏个预定义Effect的效果,包括爆炸、爆炸碎⽚、烟、⽕等。
⼀)osgParticle实现的⼀个喷泉效果
使⽤osgWidget::PdfReader读取并显⽰pdf⽂档的例⼦,需要有相应插件⽀持。
⼀个3D相册演⽰程序?实现了⼀种把多个图⽚⽂件合并到⼀个相册⽂件中的格式。
通过求交计算进⾏拾取判断的⼀个例⼦。
天体运⾏的⼀个⽰例程序,其中使⽤billboard为太阳制作了⼤⽓层效果。
演⽰了使⽤点精灵(osg::PointSprite)绘制点,以及设置点⼤⼩。
使⽤点精灵绘(osg::PointSprite)制点云的⽰例。
演⽰了渲染⼤分辨率图⽚(high-resolution image)的⽅法。on的反义词
演⽰了osgParticle::PrecipitationEffect实现的⾬、雪效果。
演⽰了渲染到纹理(RTT)的使⽤。在PRE_RENDER时把场景渲染到纹理上,再使⽤这个纹理渲染主场景。
演⽰了使⽤⽴⽅体贴图(osg::TextureCubeMap)实现环境反射的⽅法。
演⽰了⼀个镜⾯反射效果的实现。
演⽰了⼀个由矩阵节点树构造成的多关节机器⼈。
演⽰了使⽤osgSim::ScalarBar实现的颜⾊标尺效果。
演⽰了利⽤osg::Camera::DrawCallback派⽣类实现截屏的⽅法。
在模型表⾯附加⽹格线的效果,利⽤osg::PolygonMode和osg::PolygonOfft实现,与osgSim::Scribe效果和原理⼀致。
演⽰了序列化播放多个模型的效果,利⽤osg::Sequence节点实现。
演⽰了着⾊程序组合(ShaderComposition)的使⽤,⽤到osg::ShaderAttribute
演⽰了利⽤osgUtil::ShaderGenVisitor⽣成替换固定功能管线的GLSL代码。
演⽰了Data\shaders⽬录下⼏个shader代码⽂件的使⽤。胆固醇高怎么调理
⼀个在着⾊程序中通过纹理采样计算地形⾼程来⽣成地形的⽰例。
包含多种实时阴影算法实现的阴影效果演⽰程序。
利⽤osg::ShapeDrawable构建常⽤⼏何体的演⽰。
演⽰了以⾃定义数据结构构造⼏何体的⽅法,派⽣osg::Array类。
osgSim::MultiSwitch、osgSim::DOFTransform节点的控制。单窗⼝多视⼝的使⽤。
演⽰了使⽤osgUtil::Simplifier对模型进⾏简化的⽅法。
演⽰了节点跟踪漫游器(osgGA::NodeTrackerManipulator)的使⽤。
应该是很⽼的⼀个⽰例,还在直接使⽤osgUtil::SceneView,没有链接osgViewer库,所以窗⼝GC调⽤失败,不能运⾏。
使⽤⼀个⼩技巧实现点在相机运动情况下观察变成线的效果(类似虚影的效果)。⼩技巧是,对于每个点,也绘制⼀条线,线的⼀个端点始终在点的当前位置上,另⼀个端点使⽤点在上⼀帧的位置。
使⽤osgSim::SphereSegment绘制弧⾯的例⼦。