osg fbx 模型树结构

void Test::printOsgGroup(osg::ref_ptr<osg::Group> &groupParam)
{
    qDebug() <<groupParam->getNumChildren();
    //std::cout << groupParam->getNumChildren() << std::endl;
    for (int k = 0; k<groupParam->getNumChildren(); k++)
    {
        osg::ref_ptr<osg::Group> group_index = groupParam->getChild(k)->asGroup();
        if (group_index->getNumChildren()>1)
        {
            printOsgGroup(group_index);
        }
        //转换编
        //std::string name = w2m1(m2w1(groupParam->getChild(k)->getName(), CP_UTF8));
        //std::cout << k << "=" << name << std::endl;
        qDebug() <<QString::fromStdString(groupParam->getChild(k)->getName());
        QString item1 = QString::fromStdString(groupParam->getChild(k)->getName());
        QStandardItem* itemProject = new QStandardItem(item1);
        qStandardItemModel->appendRow(itemProject);
        //qStandardItemModel->setItem(qStandardItemModel->indexFromItem(itemProject).row(), 1, new QStandardItem(QStringLiteral("项目信息说明")));
        //sg->getChild(k)->setNodeMask(1);
        //std::cout << k << "  " << sg->getChild(k)->getName() << "  " << sg->getNodeMask() << std::endl;
    }
}
QStandardItemModel* Test::showTreeView()
{
    qStandardItemModel = new QStandardItemModel(this->tesla_manage_ui.treeView);
    qStandardItemModel->setHorizontalHeaderLabels(QStringList() << QStringLiteral("名称") << QStringLiteral("信息"));

    return qStandardItemModel;
}

原文地址:https://www.cnblogs.com/herd/p/11183283.html

时间: 2024-11-17 16:59:47

osg fbx 模型树结构的相关文章

osg fbx模型删除模型中的某几个节点,实现编辑模型的功能

fbx model element count:80 三维视图: {三维} 4294967295 osg::MatrixTransform1 基本墙 wall_240 [361750] 4294967295 osg::MatrixTransform2 基本墙 wall_240 [361813] 4294967295 osg::MatrixTransform3 基本墙 wall_240 [361889] 4294967295 osg::MatrixTransform4 基本墙 wall_240 [

osg fbx 模型结构操作

osg::Node* TeslaManage::findOsgNodeByName(QString &nodeNme) { osg::Node* findNode = NULL; std::vector<osg::Node*>::iterator vec_iter; for (vec_iter = allOsgNode.begin();vec_iter != allOsgNode.end();++vec_iter) { osg::Node *node_index = *vec_iter

[Unity菜鸟] FBX模型动画提取

角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了,但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以提取出来了,然后你可以把整个fbx模型都删掉了,新生成的动画已经不再基于fbx了,这样可以大大减小资源大小. 如果是一个程序员的话你可能会想那这个实现代码是怎样的呢 using UnityEngine; using UnityEditor; using System.Collections; us

fbx模型

[fbx模型] 1.FBX是Autodesk的一个用于跨平台的免费三维数据交换的格式(最早不是由Autodesk开发,但后来被其收购),目前被 众多的标准建模软件所支持,在游戏开发领域也常用来作为各种建模工具的标准导出格式.Autodesk提供了基于C++(还有Python)的SDK来实现对FBX格式的各种读写.修改以及转换等操作,之所以如此是因为FBX的格式不是公开的,这也是FBX的诟病之一. 2.一个典型的fbx模型如下: 3.每个结点的模型有4种(除了空以外),分别为mesh.light.

osg项目经验1&lt;MFC+OSG中模型点选效果&gt;

点选主要是重载osg的GUIEventHandler, 1 class CPickHandler : public osgGA::GUIEventHandler{ //自定义回调函数名:CPickHandler 2 osgViewer::Viewer * mViewer; //在这里定义要在重载函数里使用的变量 3 osg::Group * mGroup; 4 osg::Node * lastSelect; 5 osg::Node * replacedNode; 6 int replaceNum

Unity动态创建FBX模型配置文件的存放路径

创建前目录结构: 创建后的目录结构: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using System.IO; using System.Text; public class BuildTool { [MenuItem("BuildTool/RefreshCloth/RefreshSelectClothConfig")] stati

unity3D 动态导入FBX、obj模型

公司项目的需求,需要动态的从本地导入FBX模型于是花了一天时间翻墙找到了一点可怜的资料. 1.这个可以动态加载OBJ模型,这个的话unity自带的有这个函数,当然OBJ模型是不带贴图的,对于一些场景是无法创建的. http://download.csdn.net/detail/xiaomuzi0802/8316215 2.这个比较实用的,可以动态载入多种模型,特别是FBX模型,在创建场景时候很好用,不过这个是试用版本,贴图会有问题,如果要更好的还是推荐买正版 http://download.cs

Unity导入FBX文件部分模型丢失材质的BUG

BUG描述: Unity导入3DMax生成的FBX文件时, 丢失模型的文件为大量小件物品的组合, 如椅子等. 但椅子上也只是部分材质丢失 , 如只有靠背丢失材质. 原因: Unity不支持单个物体超过若干万面, 当大量物体被塌陷到一个模型中后, 导入到Unity中会被默认切分成两个文件(在导入FBX模型时, 控制台会有提示), 同时材质也会被切分, 造成两组模型都没有全部的材质. 解决办法: 将模型按共享材质进行塌陷时, 要考虑模型的定点数最好不超过3W

3dmax坐标系与导出fbx的坐标系

3dmax和opengl都是右手坐标系,但是3dmax是z轴向上,而opengl中是Y轴向上.如图: 所以在3dmax的fbx导出对话框中有“轴转化”一项,可以设置“Y向上”或者“Z向上”. 默认是“Y向上”,这样导出以后再加载到opengl程序里,模型就不至于是“躺着”的了. 不过这个“轴转化”的原理只是给fbx根节点乘了一个绕X轴旋转90的矩阵,并不改变各mesh子节点的局部空间矩阵, 所以如果我们在opengl程序中要给导入的fbx模型中的某个mesh节点node添加child的话,我们心