文档章节

OSG使用模板缓存

o
 osc_y8yehimr
发布于 2019/03/20 10:38
字数 304
阅读 25
收藏 0

精选30+云产品,助力企业轻松上云!>>>

参考帖子:

https://blog.csdn.net/csxiaoshui/article/details/23457273

osg::Geometry *lineStripGeometry = new osg::Geometry;
    osg::Vec3Array *lineVertexArray = new osg::Vec3Array;
    double dRadius = 0.1;
    for (float angle = 0.0; angle < 400.0; angle += 0.1)
    {
        lineVertexArray->push_back(osg::Vec3(dRadius * cos(angle), dRadius * sin(angle), 0));
        dRadius *= 1.002;
    }
    osg::Vec4Array *lineColorArray = new osg::Vec4Array;
    lineColorArray->push_back(osg::Vec4(1.0, 1.0, 1.0, 1.0));
    lineStripGeometry->setVertexArray(lineVertexArray);
    lineStripGeometry->setColorArray(lineColorArray);
    //OSG 3.2之后的版本在setColorArray中设置绑定方式
    lineStripGeometry->setColorBinding(osg::Geometry::BIND_OVERALL);
    lineStripGeometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::LINE_STRIP, 0, lineVertexArray->size()));
    lineStripGeometry->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
 
    //添加模板测试
        osg::Stencil *lineStripStencil = new osg::Stencil;
    lineStripStencil->setFunction(osg::Stencil::NEVER, 0x0, 0x0);
    lineStripStencil->setOperation(osg::Stencil::INCR, osg::Stencil::INCR, osg::Stencil::INCR);
    lineStripGeometry->getOrCreateStateSet()->setAttributeAndModes(lineStripStencil);
    //////////////////////////////////////////////////////////////////////////
 
    osg::Geometry *quadGeometry = new osg::Geometry;
    
    osg::Vec3Array *quadVertexArray = new osg::Vec3Array;
    quadVertexArray->push_back(osg::Vec3(0, 0, 0));
    quadVertexArray->push_back(osg::Vec3(25, 0, 0));
    quadVertexArray->push_back(osg::Vec3(25, 25, 0));
    quadVertexArray->push_back(osg::Vec3(0, 25, 0));
 
    osg::Vec4Array *quadColorArray = new osg::Vec4Array;
    quadColorArray->push_back(osg::Vec4(0.0, 1.0, 1.0, 1.0));
 
    quadGeometry->setVertexArray(quadVertexArray);
    quadGeometry->setColorArray(quadColorArray);
    quadGeometry->setColorBinding(osg::Geometry::BIND_OVERALL);
    quadGeometry->addPrimitiveSet(new osg::DrawArrays(osg::PrimitiveSet::QUADS, 0, 4));
    quadGeometry->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
 
    osg::Stencil *quadStencil = new osg::Stencil;
    quadStencil->setFunction(osg::Stencil::NOTEQUAL, 0x1, 0x1);
    quadStencil->setOperation(osg::Stencil::KEEP, osg::Stencil::KEEP, osg::Stencil::KEEP);
    quadGeometry->getOrCreateStateSet()->setAttributeAndModes(quadStencil);
    
    osg::Geode *geode = new osg::Geode;
    geode->addDrawable(lineStripGeometry);
    geode->addDrawable(quadGeometry);
--------------------- 
作者:csxiaoshui 
来源:CSDN 
原文:https://blog.csdn.net/csxiaoshui/article/details/23457273 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
OSG描边特效osgFX::Outline的修改

对一个三维场景中的物体实现描边特效,可以参考osg范例osgoutline 这个描边特效使用了模板缓存Stencil来实现,参见源代码osgFX/Outline.cpp 使用了两个Pass 第一个Pass绘制第一遍模型,将模型...

osc_y8yehimr
2019/03/20
6
0
OSG:先导篇 内存管理

一.简介 OSG提供了一种自动管理内存的机制,这种机制涉及到两个类:osg::ref_ptr类 和 osg::Referenced类 二.osg::Reference类 osg::Reference类实现了对内存区段的引用计数器功能。 所有的O...

osc_2xb14pj9
2019/09/03
1
0
项目实战:Qt+OSG教育学科工具之地理三维星球

若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062本文章博客地址:https...

红模仿_红胖子
06/22
12
0
OSG中的示例程序简介

1.example_osganimate 一)演示了路径动画的使用(AnimationPath、AnimationPathCallback),路径动画回调可以作用在Camera、CameraView、MatrixTransform、PositionAttitudeTransform等四种...

osc_5i4e20is
2018/06/21
2
0
OSG中的示例程序简介

1.example_osganimate 一)演示了路径动画的使用(AnimationPath、AnimationPathCallback),路径动画回调可以作用在Camera、CameraView、MatrixTransform、PositionAttitudeTransform等四种...

廖先生
2018/06/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Saga分布式事务框架

1优点 1、避免服务之间的循环依赖,因为saga协调器会调用saga参与者,但参与者不会调用协调器 2、集中分布式事务编排 3、降低参与者的复杂性 4、回滚更容易管理 Saga模式的一大优势是它支持长...

战略板儿砖
25分钟前
11
0
为什么要使用static_cast (x)而不是(int)x? - Why use static_cast(x) instead of (int)x?

问题: I've heard that the static_cast function should be preferred to C-style or simple function-style casting. 我听说static_cast函数应该比C样式或简单的函数样式转换更可取。 Is......

fyin1314
27分钟前
16
0
最难的几道Java面试题,看看你跪在第几个?

这是我收集的10个最棘手的Java面试问题列表。这些问题主要来自 Java 核心部分 ,不涉及 Java EE 相关问题。你可能知道这些棘手的 Java 问题的答案,或者觉得这些不足以挑战你的 Java 知识,但...

码农突围
28分钟前
13
0
浅谈Spring核心技术 IOC与AOP

IOC: IOC(Inversion Of Controll,控制反转)是一种设计思想,将原本在程序中手动创建对象的控制权,交由给Spring框架来管理。IOC容器是Spring用来实现IOC的载体,IOC容器实际上就是一个M...

创业789
29分钟前
13
0
智能金融丨神州信息助某省联社实现一体化智能运维建设

近日,由神州信息实施的某省联社“IT服务管理平台项目”顺利通过验收,并获得客户的高度认可。该项目是神州信息在农信领域打造的又一标杆项目,为客户实现了IT运维流程标准化及运维系统一体化...

脉脉小达人
32分钟前
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部