码迷,mamicode.com
首页 > 其他好文 > 详细

osg笔记

时间:2015-04-28 18:35:41      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

///////////////////////////////////////////////////////////////////
createTexturedQuadGeometry(corner, widthVec, heightVec, l, b, r, t)
这个函数可以方便地创建一个空间四边形,位置和大小由corner,widthVec,heightVec决定;l,b则是纹理坐标的左下角点;r,t是右上角点


Convenience function to be used for creating quad geometry with texture coords. 


这个函数作用是创建一个带有纹理坐标的四边形~~~纹理贴图你在Texture2D里面设置就可以了,跟这个函数没什么关系~~~~~
////////////////////////////////////////////////////////////////
求助!换纹理的函数setImage()与dirty()有什么区别?


void dirty() {_dirty = true;}是告诉 OSG 需要重新读取顶点坐标、纹理等:if (_dirty) update();。 所以 setImage() 之后,需要调用 dirty()
setImage()会自动dirty()
//////////////////////////////////////////////
setImage()第四个参数GLint internalTextureformat的意义,应该如何设置它


也就是glTexImage*()的internalFormat参数,简单来说就是颜色分量的数目
/////////////////////////////////////////////////


这个函数是这样的
void osg::Image::setImage  ( int  s,  
  int  t,  
  int  r,  
  GLint  internalTextureformat,  
  GLenum  pixelFormat,  
  GLenum  type,  
  unsigned char *  data,  
  AllocationMode  mode,  
  int  packing = 1   

其中mode参数有三种:
Enumerator: 
NO_DELETE   
USE_NEW_DELETE   
USE_MALLOC_FREE   
想问下,这三种分别是什么意思呢?还有,最后那个packing有什么作用?谢谢、、


Image对象在默认时会负责维护data的内存区域,例如在Image对象析构时自动释放data所用的空间。
USE_NEW_DELETE即使用new和delete操作符来完成这一操作。而USE_MALLOC_FREE即使用C形式的malloc和free来完成。
NO_DELETE表示内存区域不要由Image负责,而是您自己控制
///////////////////////////////////////////////////////


camera.addSlave中的projectionOffset, ViewOffset怎么理解?
projectionOffset跟NDCS中的坐标范围(-1,1)有什么关系?
具体数学推导过程是什么样的?有没有可参考的书籍?
谢谢!


可以直接理解为从相机的viewmatrix = 主相机matrix * offset
/////////////////////////////////////////////////////////////
setUserData后能不能保存文件?
在osg中,利用setUserData,将一些信息添加到一个节点上,然后将节点保存为*.osg或者*.ive文件,再次读取时,userdata却为空了。有人遇到过同样的问题吗?
setUserData保存的数据通常不能被保存到osg或ive文件中,因为系统不可能知道用户自定义数据是什么内容
通常可以自己写插件实现
/////////////////////////////////////////////////////////////
osgearth关于近地面Camera远近裁剪面的设置
视点接近地面时,由于默认的近裁剪面near太大,导致看不见靠近摄像机的物体,这时需要重新调节near和far的值(或者near/far的比率),
可以使用osgEarth::Util::AutoClipPlaneCullCallback(osgEarth::MapNode* mapNode)
例如:
osgViewer::Viewer viewer;
viewer.getCamera()->addCullCallback( new osgEarth::Util::AutoClipPlaneCullCallback(mapNode) );
//////////////////////////////////////////////////////////////////////////////////////////////////
请教一下osg::EllipsoidModel和osg::CoordinateSystemNode的问题
osg::EllipsoidModel为椭球坐标系模型
osg::CoordinateSystemNode功能和group类似,只是提供了和osg::EllipsoidModel关联的坐标运算接口


osg::CoordinateSystemNode其实不光是一个运算接口而已,OSG会在遇到CoordinateSystemNode时自动对其子节点进行坐标变换以保证大地坐标的正确渲染
////////////////////////////////////////////////////////////////////////////////////////

osg笔记

标签:

原文地址:http://blog.csdn.net/l_andy/article/details/45337833

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!