- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经实现了将 3DS 文件加载到我的 OpenGL 程序中的能力,但遇到了一个小问题。所有的顶点都正确放置,并且绘制了面,但问题是大多数(或所有)顶点似乎保留了与一个或两个顶点的连接,从而产生了大量额外的边。有人以前遇到过这个问题或对我如何解决它有建议吗?
下面的代码块是我用来绘制面孔的循环。它一次循环遍历一个顶点,跳过每四个值(理论上),因为它们是未使用的面修饰符。
glBegin(GL_TRIANGLES);
for(int x = 1; x < 4*numberOfTriangles+1; x++)
{
//Face bit modifiers not needed, skip em.
if(tLoop == 4)
{
tLoop = 0;
continue;
}
else
{
glVertex3f(Vertices[Triangles[x]*3],Vertices[(Triangles[x]*3)+1],Vertices[(Triangles[x]*3)+2]);
tLoop++;
}
}
glEnd();
接下来是代表我遇到的问题的图像。 http://img.photobucket.com/albums/v298/Reaperc89/Pistol.jpg
最佳答案
glBegin
和glEnd
在循环外是绝对没有问题的。一个接一个地使用每个顶点绘制三角形是正确的方法。它将每 3 个连续的顶点构建一个三角形,这就是您想要的。
您的问题是,您在 else block 内增加了 tLoop
,因此实际上跳过了每五个索引,而不是每四个。所以展开阻止了它,但它与 glBegin/glEnd
在循环外不工作无关。但是就像评论中所说的那样,无论如何您都不需要 tLoop
,因为您可以使用 x
代替:
glBegin(GL_TRIANGLES);
for(int x = 1; x < 4*numberOfTriangles+1; x++)
if(x % 4) //works if x starts at 1, though I don't know why x has to start at 1
glVertex3f(Vertices[Triangles[x]*3],Vertices[(Triangles[x]*3)+1],Vertices[(Triangles[x]*3)+2]);
glEnd();
或者更好的展开循环:
glBegin(GL_TRIANGLES);
for(int x = 1; x < 4*numberOfTriangles+1; x+=4) {
glVertex3f(Vertices[Triangles[x]*3],Vertices[(Triangles[x]*3)+1],Vertices[(Triangles[x]*3)+2]);
glVertex3f(Vertices[Triangles[x+1]*3],Vertices[(Triangles[x+1]*3)+1],Vertices[(Triangles[x+1]*3)+2]);
glVertex3f(Vertices[Triangles[x+2]*3],Vertices[(Triangles[x+2]*3)+1],Vertices[(Triangles[x+2]*3)+2]);
}
glEnd();
但是将 glBegin/glEnd
放在循环中是您可以做的最愚蠢的事情。事实上,如果您已经使用基于顶点/索引数组的表示,那么将您的渲染代码移植到顶点数组应该非常容易,这比立即模式快得多,在由 VBO 提供支持时更是如此。
关于c++ - 如何正确渲染 3ds 文件中的面孔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870426/
似乎可见的铃铛颜色是倒置的默认面,但我找不到在哪里以及如何控制它。 我知道可以设置 ring-bell-function 但这不是我想知道的。 最佳答案 在 Elisp 中无法控制可见铃的外观,因为它
使用下面的代码在 R 中生成热图。效果很好。第一部分是我用来为 map 着色的指标。我的问题是如何让标题如下所示。我知道有人会将第一行放在以 caption = Paste ("Source...")
我正在尝试定义一些 emacs 字体以进行一些自定义突出显示。当我单独定义它们时,这似乎有效: (defface my-r-face `((t (:foreground "red"))) "Red
我指的是 this post用于 3d 转换。 所以我尝试动态设置 .container 的透视属性,这样相邻的面应该垂直于正面,如下图绿线所示。 相关代码 .container { width:
首先,如果标题很长,我很抱歉。我正在使用 python 进行人脸检测。我正在尝试编写一个脚本,当在两个目录/文件夹之间检测到相同的图片或几乎相同的图片/面孔时,它将通知用户。 以下是我到目前为止编写的
我是一名优秀的程序员,十分优秀!