2012-12-19 2 views
0

У меня вопрос (ну, собственно, несколько)
1) Как вы визуализируете куб в Python с объектами буфера вершин?
2) Как я мог переместить этот куб несколько раз
3) Как бы я пошел, не отринув на нем определенные лица? (У меня есть Octree хранить свои позиции, и я хочу, чтобы не оказывать лица, которые касаются друг друга)
БлагодаряPyOpenGL Рисование куба с VBOs

ответ

1

1: Я использую этот модуль для визуализации кубов в OpenGL 3+

Render Cube with VBO

Если у вас нет модели представления/проекции матрицы, просто перейдите в 'numpy.identity (4)', что приведет к тому, что вершины будут центрированы вокруг начала координат. Это также означает, что камера появится внутри куба, чтобы она не была видимой.

2: Вы не перемещаете объекты, вы меняете матрицы модели/проекции и визуализируете VBO снова.

Вершины куба не знают, где они находятся в трехмерном пространстве, они относятся к началу координат. Когда вы его визуализируете, вы применяете матрицу (проекционный вид модели), которая перемещает вершины куба.

3: Есть несколько способов сделать это:

A. Создание ВАО/VBO за лицо и только делают лицо, которые вы хотите.

B. Назначьте атрибут вершины каждой вершине, которая соответствует каждой грани. Затем, используя единообразное значение, передайте достаточно информации для шейдера вершин/фрагментов, чтобы узнать, должны ли они отображаться или нет. Вы можете реализовать это легко с помощью одного целого числа и использовать один бит для представления каждой грани.

Я бы использовал B, поскольку вы не меняете состояние VAO/VBO часто, просто меняя 6 значений (по 1 на каждую грань).

+0

Ваша ссылка содержит страницу 404. – jakebird451

+0

Спасибо за уведомление, я обновил ссылку =) – Rebs

Смежные вопросы