微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在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 举报,一经查实,本站将立刻删除。