如何在OpenGL 4.0中的缓冲对象中使用顶点法线?

问题描述

很抱歉这个模糊的问题。

我正在尝试将OBJ加载到我的OpenGL程序中,然后对其进行正确着色。但是,一个obj的顶点法线是分开存储的,而Face Indexes既指向位置又指向法线,并且可以选择使用UV,而总的来说,我感到很困惑。

是否有足够的资源逐步学习此功能?我一直在关注https://learnopengl.com/Lighting/Basic-Lighting,但仍然感到困惑。

我不确定这是否完全是问题,但是我认为这是我尝试按以下方式绑定(正确的动词?)“顶点属性指针”

在此布局中,我有一个顶点数组,其中p是“顶点位置”,n是“顶点法线”:

p,p,n,...
p,n

因此,我的glVertexAttribPointer应该看起来像这样:(在使用JOGL的Java中,与c ++应该没有太大的区别)

vGL.glVertexAttribPointer(0,3,GL4.GL_FLOAT,false,6 * Buffers.SIZEOF_FLOAT,0);
vGL.glEnabLevertexAttribArray(0);

vGL.glVertexAttribPointer(1,3 * Buffers.SIZEOF_FLOAT);
vGL.glEnabLevertexAttribArray(1);

对吗?至少这就是我从learningopengl解释它的方式。

任何资源将不胜感激,但同样有用的是,知道上面的代码是否正确,因为那样一来,导入后我如何存储顶点将只是一个问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)