2014-10-02 9 views
-2

Я хотел бы сделать приложение, в котором я каким-то образом определяю «архитектуру» виртуального мира (в терминах форм, вокселей и т. Д.), Затем трехмерные координаты камеры-обскуры и направление, которое оно указывает, и оно возвращает изображение, представляющее рендеринг 3D-мира. Какие-либо предложения? Бонусные очки, если вы можете одновременно отображать две разные камеры-обскуры, представляющие ваши два глаза. Заранее спасибо!3D-рендеринга для python?

+2

Я предлагаю вам немного времени, чтобы написать что-то хорошее, как [POV-Ray] (http://www.povray.org). :) И система 3D-рендеринга, написанная на Python кем-то, кто не является экспертом в таких вещах, будет несколько медленнее, чем написанная на C, которая была разработана командой высококвалифицированных программистов в течение нескольких десятилетий ... –

+0

Но если вы _really_ хотите сделать это, вам нужно будет создать язык, чтобы указать архитектуру вашего виртуального мира; написать парсер для этого языка; и достаточно знать 3D-геометрию/тригонометрию для реализации требуемой математики в вашем коде. –

+0

OTOH, делая _simple_ 3D-материал в Python со стерео выходом не слишком сложно. Один из способов обработки 3D-преобразований и т. Д. - использовать [Однородные координаты] (http://en.wikipedia.org/wiki/Homogeneous_coordinates). Во-первых, попробуйте написать простую программу, которая генерирует пары стерео кубических кадровых кубов. Если вы застряли, сообщите нам свой код, и мы будем рады помочь. –

ответ

2

Если вы хотите интерактивность, вы можете использовать OpenGL, если вы устанавливаете PyOpenGL. OpenGL довольно низкий уровень, и требуется некоторое время, чтобы учиться, но он достаточно мощный. Можно сделать одну и ту же сцену из двух (или двухсот) разных камер с помощью OpenGL, так что это так. Тем не менее, вам нужно будет указать всю геометрию, которую вы хотите отобразить, рисуя очень простые фигуры (на самом деле просто линии, треугольники и прямоугольники)

Производитель PyOpenGL также имеет дополнительный модуль под названием OpenGLContext, который принимает забота о некоторых из grungework для вас; есть даже учебники на http://pyopengl.sourceforge.net/context/tutorials/index.html, и он включает в себя функции графика сцены, которые облегчат определение ваших сцен.

Я слышал хорошие вещи о Panda3D, OpenSceneGraph и VPython, но сам не использовал их, и я не знаю, какую поддержку они оказывают для стереоскопического рендеринга.

Удачи!