【发布时间】:2013-03-05 06:39:34
【问题描述】:
我有一个能够在 OpenGL 上下文中解析和解释 OBJ 文件格式的程序。
我在 Blender 中创建了一个小项目,其中包含一个带有“头发”粒子的简单球体。
转换后(从球体中分离粒子)我的粒子形成一个新的网格。所以我的项目中有两个网格(名为“Sphere”和“Hair”)。当我想在 OBJ 文件(文件/导出/Wavefront (.obj))中导出网格“球体”时,选择“包含法线”,导出后,该文件包含有关法线的所有信息(例如:vn 0.5889 0.14501 0.45455, ...)。
当我尝试对粒子做同样的事情时,也选择“包含法线”,我在 OBJ 文件中没有法线。 (在导出之前我已经选择了正确的网格。)
所以,我不明白为什么不为类型粒子的网格导出法线属性。
这是我的头发颗粒的一般 Blender 渲染图。如您所见,所有粒子都会与光发生反应。所以 Blender 使用这些粒子的法线属性。
现在,上图显示(在 Blender 的“编辑模式”-> 转换后)粒子由几行组成。在我的 opengl 程序中,我使用 GL_LINES 来渲染相同的粒子。我只想获得法线信息来管理粒子上的光属性。
您知道如何导出粒子网格的法线属性吗?
提前感谢您的帮助。
【问题讨论】:
-
这种情况下的粒子是用点来描述的吗?如果是这样,他们为什么会有法线?
-
是的,我已经看到了这个页面,我的头发颗粒已经转换成 OBJ 文件,但没有法线信息。我的粒子,是用线条来描述的(一根头发是由几条细线组成的)。所以我认为有可能有法线属性(我相信一条线(GL_LINES)是一个小多边形,OpenGL中的所有多边形都应该有法线属性)。你怎么看我的观点?谢谢
-
啊,错过了关于头发的部分。我猜这是在 Blender 中的一个很好的理由,我在下面的回答中解释了更多(它不想放在评论中:))
标签: graphics 3d blender wavefront