{//创建一个 Geode 对象osg::ref_ptr<osg::Geode> geode =newosg::Geode();//创建一个材质对象osg::ref_ptr<osg::Material> material =newosg::Material();//设置材质的漫反射颜色为红色material->setDiffuse(osg::Material::FRONT_AND_BACK, osg::Vec4(1.0f,0.0f,0.0f,1.0f));//将材质应用到 Ge...
步骤五:设置材质透明度(理论上由这里控制透明度) // 步骤五:材质实例 设置透明度(0-255): 设置了反倒没图形了pMaterial->setTransparency(osg::Material::FRONT_AND_BACK, color.a *255.0);// pMaterial->setTransparency(osg::Material::FRONT_AND_BACK, 255.0); 步骤六:设置材质 // 步骤...
步骤五:设置材质透明度(理论上由这里控制透明度) // 步骤五:材质实例 设置透明度(0-255): 设置了反倒没图形了pMaterial->setTransparency(osg::Material::FRONT_AND_BACK, color.a * 255.0);// pMaterial->setTransparency(osg::Material::FRONT_AND_BACK, 255.0); 步骤六:设置材质 // 步骤六:状态集 设置...
osg::ref_ptr<osg::PolygonMode> pPolygonMode = new osg::PolygonMode(osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::LINE); pStateSet->setAttribute(pPolygonMode); } #endif // 添加模式,0~100范围内使用线模型 pLod->addChild(pGeode, 0, 100); // 只是用一个部件 break; } #endif #...
确保透明的物体深度测试开启pStateSet->setMode(GL_DEPTH_TEST,osg::StateAttribute::ON);// 步骤三:创建材质实例osg::ref_ptr<osg::Material>pMaterial=newosg::Material;// 步骤四:材质实例 设置材质颜色(RGB部分),透明度在颜色数组中设置pMaterial->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(...
确保透明的物体深度测试开启pStateSet->setMode(GL_DEPTH_TEST,osg::StateAttribute::ON);// 步骤三:创建材质实例osg::ref_ptr<osg::Material>pMaterial=newosg::Material;// 步骤四:材质实例 设置材质颜色(RGB部分),透明度在颜色数组中设置pMaterial->setDiffuse(osg::Material::FRONT_AND_BACK,osg::Vec4(...
column_material->setAmbient(osg::Material::FRONT_AND_BACK, osg::Vec4(1.0, 0.7, 0.0, 1.0)); //设置散射光 column_material->setDiffuse(osg::Material::FRONT_AND_BACK, osg::Vec4(1.0, 1.0, 1.0, 1.0)); //设置镜面光 column_material->setSpecular(osg::Material::FRONT_AND_BACK, osg::Vec...
在OSG中,LOD技术通过osg::LOD节点来实现。osg::LOD节点是一个特殊的场景节点,它可以包含多个子节点,每个子节点代表一个不同详细程度的模型。根据视点与物体的距离或屏幕上的像素大小,osg::LOD节点会选择相应的子节点进行渲染。 子节点的添加 通过addChild方法,可以将不同详细程度的模型作为子节点添...
else glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); glPushMatrix(); glTranslatef(-2.0f,0.0f,0.0f); glBegin(GL_QUADS); glColor3f(1.0f,0.0f,0.0f); glVertex3f(-1.0f,-1.0f,-10.0f); glVertex3f(1.0f,-1.0f,-10.0f); glVertex3f(1.0f,1.0f,-10.0f); ...
new osg::PolygonMode(osg::PolygonMode::FRONT_AND_BACK, osg::PolygonMode::FILL), values); quad->getOrCreateStateSet()->setMode(GL_LIGHTING, values); return quad.release(); } osg::Texture2D *createTexture(const std::string &fileName) ...