在两个不同的位置渲染obj文件

时间:2014-07-29 08:20:59

标签: c++ opengl rendering

我需要在其地形上加载建筑物,该建筑物可用作两个不同的.obj文件。

当我加载文件时,它们是重叠的。如何调整两个不同的模型,使建筑物完全位于地形之上。

注意:4582420.obj是构建文件和       4582421.obj是地形文件

用于加载obj模型的代码片段如下所示

//加载obj模型。

for ( int i = 0; i < 2; i++ )
{
    char objName[ 256 ];
    char mtlName[ 256 ];


    sprintf_s( objName, "models/sampleA/%d.obj", 4582420 + i );
    std::ifstream ifs( objName );

    if ( ifs.is_open() )
    {

        sprintf_s( mtlName, "models/sampleA/%d.mtl", 4582420 + i );
        CObjLoader* pObjMesh = new CObjLoader();
        pObjMesh->Load( offset, objName, mtlName );

        // if open is ok, the obj model will be pushed into gObjs.
        gObjs.push_back( pObjMesh );
    }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

您使用什么程序进行渲染?通常,您必须提供包含每个对象的缩放,旋转和平移的变换矩阵。然后将对象的每个顶点乘以变换矩阵以确定其在世界空间中的位置。这就是所谓的世界空间转换对象空间。