我非常想在3D物體上創建重複紋理。cocos2d-x在3d中重複紋理
我試着從Maya輸出到.obj。材料文件(.mtl)看起來像這樣:
newmtl lambert10SG
illum 4
Kd 0.00 0.00 0.00
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
map_Kd -s 0.1 0.1 grass.jpg
Ni 1.00
行 「map_Kd -s 0.1 0.1 grass.jpg」 應說明,紋理重複。然而,這根本不起作用。直到我刪除「-s 0.1 0.1」,紋理纔會顯示。然後它被拉伸。
我試圖導出到.fbx,然後轉換爲.c3b。同樣的結果。紋理被拉伸。
然後我試着創建自己的紋理。我知道在OpenGL中,我必須將紋理座標設置爲> 1以使紋理重複。這些似乎相當於紋理(?)中的maxS和maxT。
這是我的紋理設置:
cocos2d::Image *textImage = new (std::nothrow) cocos2d::Image();
textImage->initWithImageFile("grass.jpg");
cocos2d::Texture2D *texture = new (std::nothrow)cocos2d::Texture2D();
texture->initWithImage(textImage);
cocos2d::Texture2D::TexParams texParam;
texParam.wrapS = GL_REPEAT;
texParam.wrapT = GL_REPEAT;
texParam.minFilter = GL_LINEAR;
texParam.magFilter = GL_LINEAR;
texture->setTexParameters(texParam);
texture->setMaxS(10.0f);
texture->setMaxT(10.0f);
sprite->getMesh()->setTexture(texture);
紋理仍然拉伸。
從搜索互聯網看來,我可以使用setTextureRect函數在Cocos中的2D精靈上設置紋理座標。然而,這似乎並不存在爲sprite3D。
任何想法將非常感激!