首页 > 解决方案 > 任何想法如何翻转网格以生成对象?

问题描述

我尝试减少一个非常复杂的网格(减少文件本身的对象数据)。例如:人体。我想把它切成两半,只将半个网格数据保存在磁盘上(波前 obj)。现在我想读取数据,将其推送到渲染列表,然后...通过代码镜像/加倍。但是怎么做?;-) 有没有一种简单的方法可以做到这一点?

我搜索了 SE 和 youtube,但只找到了关于翻转法线的东西。

标签: openglsdlglut

解决方案


通过 -1 1 1 缩放网格(通过 x 轴镜像),并通过 glFrontFace 反转面缠绕。例如在老派 OpenGL 中:

drawObject();
glPushMatrix();
glScalef(-1, 1, 1);
glFrontFace(GL_CW);
drawObject();
glFrontFace(GL_CCW);
glPopMatrix();

如果您使用着色器,则将局部缩放应用于您的 mvp 矩阵。要通过 y 轴镜像模型,请使用 1 -1 1 的比例,类似地,z 轴使用 1 1 -1 的比例。


推荐阅读