【问题标题】:OpenGL per object materials每个对象材质的 OpenGL
【发布时间】:2017-09-20 15:30:49
【问题描述】:

我正在使用 OpenGL 3.3 编写我的第一个 3D 程序,但我发现为不同对象设置不同材质时遇到问题。我设法绘制了 3 个球体(顶点存储在一个 VAO 中,然后平移和绘制)并使用制服从顶点着色器更改了它们的外观。现在的问题是球体应该有不同的材料,但我不知道如何为每个球体设置不同的制服。最好的方法是什么?

【问题讨论】:

  • 材质在某种程度上相当于一个着色器程序。您可以绑定不同的纹理和制服,并且在渲染对象时只需使用 GlUseProgram() 即可。因此,在渲染每个球体之前,请绑定程序并统一您的材质属性(即纹理等)

标签: c++ opengl 3d lighting shading


【解决方案1】:

gl_VertexID 可以使用。但在这种情况下,我认为最好的是独立的 vbo。

https://rocketgit.com/user/bowler17/gl/source/tree/branch/wrench/blob/t.c

【讨论】:

  • 独立vbo是什么意思?您是否建议我应该为每个球体使用一个 vbo?然后我应该将材料存储在 vbo 中?
  • smth 像 vec4 和 mat coeficients。像带有法线的 vbo
  • 像魅力一样工作!
猜你喜欢
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 2020-11-11
  • 1970-01-01
相关资源
最近更新 更多