【问题标题】:texture does not map the whole nurbs surface纹理不会映射整个 nurbs 表面
【发布时间】:2011-11-22 00:53:38
【问题描述】:
glGenTextures(1, &texName[0]);
glBindTexture(GL_TEXTURE_2D, texName[0]);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, widthImage , widthImage, 
    0, GL_RGB, GL_UNSIGNED_BYTE, image);

我尝试将纹理映射到 nurbs 表面。

gluBeginSurface(theNurbs);

gluNurbsSurface(theNurbs, numOfKnots, knots, numOfKnots, knots, ctrNum*3, 3, &tCtrPoint[0][0][0],order, order,GL_MAP2_TEXTURE_COORD_2);

gluNurbsSurface(theNurbs, numOfKnots2, knots2, numOfKnots2, knots2, ctrNum2*3, 3, &ctrPoint[0][0][0], order2, order2, GL_MAP2_VERTEX_3);

gluEndSurface(theNurbs);

问题是纹理看起来映射了表面的所有区域,但是,照片只出现在左下角的小网格(白色网格)中。另一部分是黑色的。

我想将照片映射到整个表面。但我不知道该怎么做。

【问题讨论】:

  • 所以你实际上发布了一张图片,但图片并没有显示不正确的纹理,它只是显示了一个 15*15 的网格,这肯定没有人可以想象。

标签: opengl glu nurbs


【解决方案1】:

花了好几个小时,终于找到问题所在了。

当我计算控制点的坐标时,我使用tCtrPoint[i][j][1] =j/(num-1);之类的代码,问题是被除数和除数是整数类型。所以除法\ 没有得到正确的值。我以前犯过这种错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多