everyone! I'm currently working on a project with OpenGL. I know that rendering with indexed vertex attributes could save a lot of memory. That requires that every vertex attribute should be unique, or else the advantage of indexed rendering will not be true. So, here comes the question:
Say I want to render a statue with a cubic base from an OBJ file. As far as I know, for OBJ format, one vertex could be shared by several facets. That means the vertex could be specified with several different normals which are normals of the facets sharing the vertex.
Situation 1: For the statue, I want to average the normals of each vertex to get only one normal for this vertex, so indexed rendering could be used. What's more, the interpolated normals inside each facet gives the statue a more smooth appearance.
Situation 2: For the cubic base, I want use different normals for the vertex when rendering different sides to make the surface looks flat as it actually is.
Is there an universal way to handle the preceding situations?
Do I have to separate the statue and its base into different objects and treat them differently?