OSG 让模型变成你想要的颜色 (贴纹理)
来源:互联网 发布:mac版cad字体乱码 编辑:程序博客网 时间:2024/05/16 23:59
#include <QCoreApplication>
#include <osgDB/ReadFile>
#include <osgViewer/Viewer>
#include <osg/Texture2D>
#include <osg/TexEnv>
#include <osg/TexGen>
osg::Image* createImage( int width, int height,osg::Vec3 color )
{
osg::ref_ptr<osg::Image> image = new osg::Image;
image->allocateImage( width, height, 1, GL_RGB, GL_UNSIGNED_BYTE );
unsigned char* data = image->data();
for ( int y=0; y<height; ++y )
{
for ( int x=0; x<width; ++x )
{
*(data++) = color.x();
*(data++) = color.y();
*(data++) = color.z();
}
}
return image.release();
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
osgViewer::Viewer viewer;
osg::ref_ptr<osg::Node> model = osgDB::readNodeFile("cow.osg");
if(model.valid())
{
osg::ref_ptr<osg::Image> image= createImage(256,256,osg::Vec3(255.0,1.0,0.0));
if (image.get())
{
osg::ref_ptr<osg::Texture2D> texture=new osg::Texture2D();
texture->setImage(image.get());
//设置自动生成纹理坐标
osg::ref_ptr<osg::TexGen> texgen=new osg::TexGen();
texgen->setMode(osg::TexGen::NORMAL_MAP);
//设置纹理环境,模式为BLEND
osg::ref_ptr<osg::TexEnv> texenv=new osg::TexEnv;
texenv->setMode(osg::TexEnv::Mode::ADD);
texenv->setColor(osg::Vec4(0.6,0.6,0.6,0.0));
//启动单元一自动生成纹理坐标,并使用纹理
osg::ref_ptr<osg::StateSet> state=new osg::StateSet;
state->setTextureAttributeAndModes(1,texture.get(),osg::StateAttribute::ON);
state->setTextureAttributeAndModes(1,texgen.get(),osg::StateAttribute::ON);
// state->setTextureAttribute(1,texenv.get());
model->setStateSet(state.get());
}
viewer.setSceneData(model.get());
}
viewer.run();
return a.exec();
}
阅读全文
0 0
- OSG 让模型变成你想要的颜色 (贴纹理)
- Win8各国语言包的安装,让系统变成你想要的语言版,带你体验不一样的输入法
- 超级强大的心理定律~~!你可以变成你想要的样子!~ (转载)
- 你有没有变成自己想要的那个你?
- OSG学习笔记20——光照和材质的设置(正确绘制出想要的颜色)
- 让你的浏览器变成各种操作系统
- 让你的计算机变成钢琴。
- 【 让你的磁盘背景变成图片 】
- 怎样让你的路由变成玩具?!
- 让你的手机号码变成空号!
- 让你的显示器变成手写屏
- SCANDY让你的手机变成扫描仪
- 让你的程序变成xp风格
- 让你的table变成exls吧
- Vimperator-让你的Firefox变成Vim
- osg for android (二) 几何物体的颜色显示以及纹理贴图
- 超级强大的心理定律~~!你可以变成你想要的样子!~
- 超级强大的心理定律~~!你可以变成你想要的样子!~
- [cs231n之第二课]Image Classification
- 纪实:即时通讯.net signalr初探索
- stm32学习笔记(六)窗口看门狗
- ZooKeeper 会话超时
- 123. Best Time to Buy and Sell Stock III(动规的好题)
- OSG 让模型变成你想要的颜色 (贴纹理)
- 与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。
- Spring的另一种属性注入(依赖注入)
- 谈谈学习方法。
- Begin ... End
- Android studio中的aidl
- 商城购物车加减控件的简单封装
- Spring总结笔记(三)
- 2017合天全国高校网安联赛专题赛--赛前指导练习题web进阶篇Writeup