美国海军研究生学校(NPS)OSG教程学习笔记——第二课

本教程介绍了如何使用OpenSceneGraph(OSG)的StateSet创建带有纹理的几何体,特别是如何设置纹理坐标,定义纹理并将其关联到图像,以及如何通过StateSet将纹理应用到几何体上。教程以金字塔为例,展示了比OpenGL更简单的纹理处理方式。
摘要由CSDN通过智能技术生成

      NPS教程的第二课是《使用StateSet 创建带有纹理的几何体》,在第一课的基础上,本课给金字塔披上漂亮的纹理图像,使金字塔看起来更逼真。

      相对于OpenGL中设置纹理的繁琐步骤,OSG确实为我们简化了大量的工作。我们仅仅需要做以下三件事:

1.正确设置纹理坐标。

    osg::Vec2Array* tex_coords = new osg::Vec2Array;

    tex_coords.push_back(osg::Vec2f(0.00, 0.0));    // 顶点0的纹理坐标 

    tex_coords.push_back(osg::Vec2f(0.25, 0.0));    // 顶点1的纹理坐标 

    tex_coords.push_back(osg::Vec2f(05.0, 0.0));    // 顶点2的纹理坐标 

    tex_coords.push_back(osg::Vec2f(0.75, 0.0));    // 顶点3的纹理坐标 

    tex_coords.push_back(osg::Vec2f(0.50, 1.0));    // 顶点4的纹理坐标

    pyramid_geom->setTexCoordArray(0, tex_coords);

2.定义纹理,并将图像关联到纹理

    osg::Texture2D* KLN89Face_texture = new osg::Texture2D;    // 定义一个二维纹理对象

    KLN89Face_texture->setDataVariance(osg::Object::DYNAMIC);  // 避免OSG在优化过程中自动去除纹理,没有开启优化功能就没必要设置了

    osg::Image* image = osgDB::readImageFile("KLN89Fac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值