首先贴一些记录,之后再整理
1. 程序跑起来之后,按‘L’键来开关光照效果,看物体的亮度是否会变。若物体的亮度不变,那么显然,该物体已经禁用了光照,它的颜色不受光照影响。
基于这一点,可以试验着修改一下TexEnv对象的那个setMode的参数。
2. osg::TexEnv::DECAL 是覆盖,即图片是咋样就贴成咋样,osg::TexEnv::BLEND 是多重纹理,默认好像就是这种,比如你给顶点设置了颜色值,那么就会把颜色和纹理的效果叠加,简单的说,就是如果顶点时红色,那么顶点周围的图片就偏红
3. 纹理坐标
图片左上角为(0,0),右下角为(1,1),依次与顶点坐标对应,注意这个是osg在windows下的对应关系,android上的还没有测试
金字塔顶点分别为:
pyramidVertices->push_back( osg::Vec3(0, 0, 0) ); // 左前
pyramidVertices->push_back( osg::Vec3(length, 0, 0) ); // 右前
pyramidVertices->push_back( osg::Vec3(length, length, 0) ); // 右后
pyramidVertices->push_back( osg::Vec3( 0,length, 0) ); // 左后
pyramidVertices->push_back( osg::Vec3( length/2, length/2,length) ); // 塔尖
纹理坐标如下&