, если CubeObj.draw () является функцией рисования вашего куба (вероятно, это вызов glVertexPointer, а затем glDrawElements),
glPushMatrix(); //save the current matrix
glTranslatef(translatex, translatey, translatez);
//glRotatef(), glScale, etc.
CubeObj.draw();
glPopMatrix(); //restore the matrix
вызовы glPush / PopMatrix () гарантируют, что команды преобразования в блоке применяются толькок этому конкретному кубу.
Вы можете вызывать функцию рисования вашего объекта несколько раз, не восстанавливая объект.Другими словами, вы можете получить еще одну копию приведенного выше кода и изменить команды преобразования, и у вас будет 2 отдельных куба.
Надеюсь, это помогло.
РЕДАКТИРОВАТЬ:
убедитесь, что у вас есть вызов glLoadIdentity () в верхней части вашей функции отображения