Этот класс может сделать трюк, он преобразует объект в стандартный json.
import json
class Serializer(object):
@staticmethod
def serialize(object):
return json.dumps(object, default=lambda o: o.__dict__.values()[0])
use:
Serializer.serialize(my_object)
работает в python2.7
и python3
.
Просто используйте glTranslatef (или эквивалентный DirectX) для рисования куба с помощью того же кода, но перемещая относительную точку, где Вы тянете его. Возможно, существует лучший способ сделать это, хотя, я довольно плохо знаком с OpenGL. Обязательно установите Вашу точку зрения, таким образом, Вы видите их всех.
Да, если бы Вы были эффективны, то Вы бросили бы все в тот же буфер вершины, но я не думаю, что кубы рисунка 100 продвинут любой GPU, произведенный за прошлые 5 лет, таким образом, необходимо будет быть в порядке следующие за предложениями выше.
Запись основная передача через вершинный шейдер, заштрихуйте однако, Вы требуете в пиксельном шейдере. Или передача в мировой матрице и делает перевод в вершинном шейдере или просто вычисляет мировые позиции вершины пространства относительно стороны ЦП (сделайте это, если Ваши кубы собираются остаться зафиксированными).
Вы могли стать необычными и сделать геометрия, инстанцирующая и т.д., но просто получить основы, идущие сначала.
Вы говорите наличие достаточных затруднений, заставляя один куб отобразиться..., таким образом, я не уверен, есть ли у Вас для отображения или нет.
В основном... помещает Ваш код для записи куба в одной функции, затем просто вызывают ту функцию 100 раз.
void DrawCube()
{
//code to draw the cube
}
void DisplayCubes()
{
for(int i = 0; i < 10; ++i)
{
for(int j = 0; j < 10; ++j)
{
glPushMatrix();
//alter these values depending on the size of your cubes.
//This call makes sure that your cubes aren't drawn overtop of each other
glTranslatef(i*5.0, j*5.0, 0);
DrawCube();
glPopMatrix();
}
}
}
, Который является основной схемой для того, как Вы могли пойти о выполнении этого. Если Вы хотите что-то более эффективное, смотрят в Дисплейные списки когда-то, после того как Вам выяснили основы :)