私はOpenGLで3Dモデルを読み込もうとしています。私は今私は同じローダーを使用して350000の頂点を持っているモデルをロードしようとしている2000の頂点を持っている小さなモデルを読み込むことに成功しているが、それは単に表示されません。 iはhttp://www.morrowland.com/apron/tut_gl.php からローダを使用しています、これは私は3DS形式を使用していOpenGLで3Dモデルを読み込む
iは3DSモデル
void C3dsLoader::Render_3ds()
{
for(int i = 0; i < m3DModel.numOfObjects; i++)
{
if(m3DModel.pObject.size() <= 0) break;
t3DObject *pObject = &m3DModel.pObject[i];
if(pObject->bHasTexture)
{
glEnable(GL_TEXTURE_2D);
glColor3ub(255, 255, 255);
glBindTexture(GL_TEXTURE_2D, TextureArray3ds[pObject->materialID]);
}
else
{
glDisable(GL_TEXTURE_2D);
glColor3ub(255, 255, 255);
}
glBegin(GL_TRIANGLES);
for(int j = 0; j < pObject->numOfFaces; j++)
{
for(int whichVertex = 0; whichVertex < 3; whichVertex++)
{
int index = pObject->pFaces[j].vertIndex[whichVertex];
glNormal3f(pObject->pNormals[ index ].x, pObject->pNormals[ index ].y, pObject->pNormals[ index ].z);
if(pObject->bHasTexture) {
if(pObject->pTexVerts) {
glTexCoord2f(pObject->pTexVerts[ index ].x, pObject->pTexVerts[ index ].y);
}
} else {
if(m3DModel.pMaterials.size() < pObject->materialID)
{
BYTE *pColor = m3DModel.pMaterials[pObject->materialID].color;
glColor3ub(pColor[0], pColor[1], pColor[2]);
}
}
glVertex3f(pObject->pVerts[ index ].x, pObject->pVerts[ index ].y, pObject->pVerts[ index ].z);
}
}
glEnd();
}
}をレンダリングする機能です。 これはなぜですか?
多分、使用したチュートリアルのコードはオーバーフローして多数のプリミティブで壊れます。 – datenwolf
オハイオ州、私は参照してください、 私は大きなモデルを読み込むことができるローダーを持つことができるリンクを私に提供することができますインターネット上のすべてのローダーが小さな3Dモデルのようであり、それらのどれも動作していないようです –
私は3DSローダを手にしています。私のプロジェクトでは、まったく率直に言って、私はそのフォーマットを使用していません。私はWebGL用のJSONとスタンドアロンのプログラムプロジェクトでOpenCTMまたは独自のフォーマットを使用する傾向があります。 – datenwolf