Examples osgbillboard

1.设置几何体各顶点坐标

osg::Vec3Array* coords = new osg::Vec3Array(4);
    (*coords)[0] = corner;                        //原点
    (*coords)[1] = corner+width;                  //x轴点
    (*coords)[2] = corner+width+height;           //与原点对称的斜方向顶点
    (*coords)[3] = corner+height;                 //z轴点


    geom->setVertexArray(coords);

2.向量积得出法向量

 (*norms)[0] = width^height;

 3.开始没搞清x,y,z轴三个顶点坐标的设置,原来是先设置的当地坐标,然后再设置的世界坐标。搞清楚osg坐标系朝向问题即可想明白。

center->addDrawable(  createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Images/reflect.rgb")),osg::Vec3(0.0f,0.0f,0.0f));    //原点图片


x_arrow->addDrawable(    createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Cubemap_axis/posx.png")),osg::Vec3(5.0f,0.0f,0.0f));  //x轴图片


y_arrow->addDrawable(      createSquare(osg::Vec3(0.0f,-0.5f,-0.5f),osg::Vec3(0.0f,1.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Cubemap_axis/posy.png")),osg::Vec3(0.0f,5.0f,0.0f));  //y轴图片

z_arrow->addDrawable(  createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readRefImageFile("Cubemap_axis/posz.png")),osg::Vec3(0.0f,0.0f,5.0f));  //z轴图片

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值