PyGame делает 3d? - PullRequest
       3

PyGame делает 3d?

23 голосов
/ 01 февраля 2011

Кажется, я нигде не могу найти ответ на этот вопрос. Я понимаю, что для работы с openGL нужно использовать pyOpenGL или что-то подобное, но мне было интересно, возможно ли сделать очень простую трехмерную графику без каких-либо других зависимостей.

Ответы [ 9 ]

16 голосов
/ 01 февраля 2011

Нет, Pygame - это оболочка для SDL, которая является 2D API. Pygame не предоставляет никаких возможностей 3D и, вероятно, никогда не будет.

3D-библиотеки для Python включают Panda3D и DirectPython , хотя они, вероятно, довольно сложны в использовании, особенно последние.

13 голосов
/ 01 февраля 2011

Ну, если вы можете сделать 2d, вы всегда можете сделать 3d.На самом деле все 3d - это перекошенные двухмерные поверхности, создающие впечатление, что вы смотрите на что-то с глубиной.Реальный вопрос в том, может ли он сделать это хорошо, и вы бы даже хотели.После просмотра документации pyGame, похоже, это всего лишь оболочка SDL.SDL не предназначен для трехмерного программирования, поэтому ответ на реальный вопрос - нет, и я бы даже не попробовал.

7 голосов
/ 25 мая 2012

Вы можете делать псевдо-3d игры (например, "Doom") только с pygame:

http://code.google.com/p/gh0stenstein/

, и если вы просматриваете сайт pygame.org, вы можете найти больше "3d"игры сделаны с python и pygame.

Однако, если вы действительно хотите заняться трехмерным программированием, вам следует изучить OpenGl, Blender или любую другую настоящую трехмерную библиотеку.

3 голосов
/ 02 января 2012

Python Soya может отображать трехмерную графику на поверхностях Pygame.

2 голосов
/ 31 марта 2013

Если вам нужны функции 3D-проекции и все эти вещи, вам придется использовать 3D API, но если вы хотите сделать базовый 3D-вид, я рекомендую учебник Питера по веб-сайту:

1 голос
/ 22 июня 2018

То, что вы видите в 3D, на самом деле является 2D игрой.В конце концов, вы смотрите на свой экран, который (обычно;)) является 2D.Виртуальный мир (который находится в 3D) проецируется на плоскость, которая затем отображается на вашем экране.Затем наш мозг преобразует это 2D-изображение в 3D-изображение (как они делают с изображением наших глаз), делая его похожим на 3D.

Так что создать игру 3D относительно легко: вы просто создаетевиртуальный мир с использованием многомерной матрицы, а затем проецируйте ее каждый цикл на двухмерную плоскость, которую вы отображаете на экране.

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

1 голос
/ 15 декабря 2015

Pygame изначально никогда не предназначалась для создания 3d, но есть способ, которым вы можете сделать 3d с любой 2d графической библиотекой.Все, что вам нужно, это следующая функция, которая преобразует 3d-точки в 2d-точки, что позволяет вам создавать любую 3d-форму, просто рисуя линии на экране.,Это может быть сделано, но может быть медленным и чрезвычайно трудным, поэтому предлагается использовать библиотеку, предназначенную для 3d.

0 голосов
/ 01 июля 2018

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

Из-за этого легко создавать 2D-игры с Pygame, поскольку все, что вам действительно нужно, - это вышеописанное.Но 3D-игра - это просто несколько 3D-объектов, «сжатых» (визуализированных) в 2D, чтобы их можно было отобразить на экране.Таким образом, чтобы создать 3D-игру, использующую только pygame, вы должны сами обработать этот рендеринг, включая все необходимые сложные математические математические вычисления.

Мало того, что это будет выполняться медленно из-за огромных вычислительных мощностей, связанных с этимно это потребовало бы от вас написания массивного движка 3D рендеринга / растеризации.И из-за интерпретации Python это будет еще медленнее.Правильный подход состоит в том, чтобы запустить этот процесс на графическом процессоре с использованием (Py) opengl.

Так что, да, технически возможно сделать 3D, используя только Pygame, но определенно не рекомендуется.Я бы посоветовал вам изучить Panda3D или похожий 3D-движок.

0 голосов
/ 15 июня 2018

Легко сделать 3D драйвер для PyGame. PyGame имеет некоторые ресурсы для разработки 3D-игр. Сейчас я занимаюсь разработкой драйвера Py3D с использованием PyGame. Когда я закончу, я покажу вам ссылку для загрузки Py3D. Я пытался сделать 3D-игру с PyGame, и мне нужен только небольшой аддон для PyGame. Это неправильно, вы думаете, что вы должны использовать SDL, PyOpenGL, OpenGL, PyQt5, Tkinter. Все они не подходят для создания 3D-игр. OpenGL и PyOpenGL или Panda3D очень сложны для изучения. Все мои игры, созданные на этих драйверах, были ужасны. PyQt5 и Tkinter не являются драйверами для создания игр, но у них есть надстройки для этого. Не пытайтесь делать какие-либо игры на этих водителей. Все драйверы, где нам нужно использовать модуль math.py, жесткие. Вы можете легко сделать небольшое дополнение для них, я думаю, что каждый может сделать драйвер для PyGame на 1-2 недели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...