OpenGL ES для android, моделирование мебели

В настоящее время я играю с OpenGL ES для Android. Я решил поставить себе задачу сделать стул. Должен ли я кодировать каждую отдельную вершину или есть способ умножить один набор и преобразовать их на 10 единиц влево.

Например, вместо того, чтобы кодировать каждую ногу, могу ли я умножить одну на четыре и получить их в разных позициях?

И если так, возможно ли это вне класса рендеринга?

1 ответ

Вы можете сделать это довольно легко, используя glTranslate() Функция между каждый раз, когда вы рисуете ножку стула. Если вы представляете, что рисуете на листе бумаги, где ваша рука заблокирована в этом положении и каждый раз может рисовать только одну и ту же ножку стула в одном и том же месте, glTranslate() перемещает лист бумаги под рукой между рисованием каждой ножки стула.

Однако для большинства сложных моделей, таких как стул, вы можете рассмотреть возможность их создания с использованием пакета программного обеспечения для 3D-моделирования, такого как блендер (который бесплатен). Когда вы сохраняете его как файл, файл фактически содержит все вершины. В зависимости от того, в каком формате вы сохраняете файл, вы можете написать некоторый код для загрузки файла, проанализировать его, чтобы извлечь вершины, а затем использовать эти вершины, чтобы нарисовать кресло.

Другие вопросы по тегам