This sounds like a problem with variable and memory initialisation etc. When run within VS you operate in a clean sandbox where all the memory is nicely managed and initialised by VS. In the debug versions, numeric variables and pointers are initialized to 0 and NULL whilst in the release versions, those numeric variables and pointers are any random value so you could have unexpected results.
google "debug v release" for more info on this - plenty of people have been bitten. Also http://www.codeproject.com/KB/debug/releasemode.aspx contains some good info. I might be wide of the mark but it's the best I can manage based on your first 2 sentences. Nick YangXiao wrote: > Hi > When i run my project exe int vs2005,that's ok, But when i run outer > it's not > correct! I function is render a scale a graphics boudary_width and > graphics .. > osg::Group * createGraph(osg::Vec3Array* points,osg::Vec4Array* > graph_color,osg::Vec4Array* boudary_color,int > boudary_width,std::string _name) > { > osg::Group* trans = new osg::Group; > osg::MatrixTransform* trans_scale = new osg::MatrixTransform; > osg::Geode * graph = new osg::Geode; > graph->setName(_name + "inter"); > osg::Geode * graph_scale = new osg::Geode; > graph_scale->setName(_name + "outer"); > //得到所有点的x,y轴的包围盒 > float x_min=0,x_max=0,y_min=0,y_max=0; > x_min = x_max = points->operator [](0).x(); > y_min = y_max = points->operator [](0).y(); > for (int i=1;i<points->size();++i) > { > if ((points->operator [](i).x())<x_min) > x_min = points->operator [](i).x(); > if ((points->operator [](i).x())>x_max) > x_max = points->operator [](i).x(); > if ((points->operator [](i).y())<y_min) > y_min = points->operator [](i).y(); > if ((points->operator [](i).y())>y_max) > y_max = points->operator [](i).y(); > } > //中心点 > double x_mid = (x_min+x_max)/2; > double y_mid = (y_min+y_max)/2; > //得到要伸缩的比例 > double x_scale = 1+2*boudary_width/(x_max-x_min); > double y_scale = 1+2*boudary_width/(y_max-y_min); > > //设置变换矩阵 > osg::Matrix matrix_scale; > osg::Matrix matrix_trans; > osg::Matrix matrix_trans1; > matrix_scale.makeScale(osg::Vec3(x_scale,y_scale,1)); > matrix_trans.makeTranslate(-x_mid,-y_mid,0); > matrix_trans1.makeTranslate(x_mid,y_mid,0); > //生成几何节点 osg::Geode* graph = new osg::Geode(); > { > //生成新的几何节点 > osg::Geometry* geometry = new osg::Geometry(); > //geometry->setName("geometry" ); > osg::Geometry* geometry_scale = new osg::Geometry(); > //geometry_scale->setName("geometry_scale"); > //设置节点的顶点 > geometry->setVertexArray(points); > geometry_scale->setVertexArray(points); > // 设置几何面的颜色 > geometry->setColorArray(graph_color); > geometry->setColorBinding(osg::Geometry::BIND_OVERALL); > geometry_scale->setColorArray(boudary_color); > geometry_scale->setColorBinding(osg::Geometry::BIND_OVERALL); > > // 添加绘制的几何 > geometry->addPrimitiveSet(new > osg::DrawArrays(osg::PrimitiveSet::POLYGON,0,points->size())); > geometry_scale->addPrimitiveSet(new > osg::DrawArrays(osg::PrimitiveSet::POLYGON,0,points->size())); > > > // Setup blending > geometry->getOrCreateStateSet()->setMode(GL_BLEND, > osg::StateAttribute::ON); > osg::BlendFunc *fn = new osg::BlendFunc(); > fn->setFunction(osg::BlendFunc::SRC_ALPHA, > osg::BlendFunc::ONE_MINUS_SRC_ALPHA); > > geometry->getOrCreateStateSet()->setAttributeAndModes(fn, > osg::StateAttribute::ON); > geometry_scale->getOrCreateStateSet()->setAttributeAndModes(fn, > osg::StateAttribute::ON); > > //设置透明属性 --透明开关打开 > > geometry->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN); > geometry_scale->getOrCreateStateSet()->setRenderingHint(osg::StateSet::TRANSPARENT_BIN); > > //添加到节点 > graph_scale->addDrawable(geometry_scale); > trans_scale->addChild(graph_scale); > osg::Matrix t = matrix_trans*matrix_scale*matrix_trans1; > trans_scale->setMatrix(t); > > graph->addDrawable(geometry); > trans->addChild(graph); > trans->addChild(trans_scale); > > } > return trans; > } > Best regards. YangXiao. > > ------------------------------------------------------------------------ > 雅虎邮箱,您的终生邮箱! <http://cn.mail.yahoo.com/> > ------------------------------------------------------------------------ > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > _______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

