Parece que no puedo encontrar la respuesta a esta pregunta en ningún lado. Me doy cuenta de que tiene que usar pyOpenGL o algo similar para hacer cosas OpenGL, pero me preguntaba si es posible hacer gráficos en 3D muy básicos sin ninguna otra dependencia.¿pyGame do 3d?
Respuesta
No, Pygame es un contenedor para SDL, que es una api 2D. Pygame no proporciona ninguna capacidad 3D y probablemente nunca lo hará.
Las bibliotecas 3D para Python incluyen Panda3D y DirectPython, aunque probablemente sean bastante complejas de usar, especialmente esta última.
Bueno, si puedes hacer 2d siempre puedes hacer 3d. Todo lo que realmente 3D tiene son superficies bidimensionales asimétricas que dan la impresión de que estás mirando algo con profundidad. La verdadera pregunta es ¿puede hacerlo bien, e incluso querrías hacerlo? Después de examinar la documentación de pyGame por un tiempo, parece que es solo un contenedor SDL. SDL no está destinado a la programación en 3D, por lo que la respuesta a la pregunta real es: No, y ni siquiera lo intentaría.
Lo he intentado. De hecho, he escrito una emulación completa de OpenGL en C++ antes. Es desagradable, y aprender una verdadera API 3D es una idea mucho mejor hasta que sepa lo que está haciendo con la tecnología 3D. – imallett
Python Soya puede renderizar gráficos 3D en superficies de pygame.
Usted puede hacer juegos de pseudo-3d (como "Doom"), con sólo pygame:
http://code.google.com/p/gh0stenstein/
y si explora el sitio pygame.org puede encontrar más "3d" juegos hacer con Python y pygame.
Sin embargo, si realmente quieres entrar en la programación en 3D, debes buscar en OpenGl, Blender o cualquier otra lib real en 3D.
si las funciones de proyección en 3D y todas esas cosas que tendrá que usar una API 3D, pero si usted quiere hacer un aspecto básico 3D recomiendo de Peter Sitio web tutorial: http://www.petercollingridge.co.uk/pygame-3d-graphics-tutorial
Pygame nunca se pensó originalmente hacer 3d, pero hay una manera en que puedes hacer 3d con cualquier biblioteca de gráficos 2D. Todo lo que necesita es la siguiente función, que convierte puntos 3d en 2d puntos, lo que le permite hacer cualquier forma en 3D simplemente dibujando líneas en una pantalla.
def convert_to_2d(point=[0,0,0]):
return [point[0]*(point[2]*.3),point[1]*(point[2]*.3)]
Esto se llama pseudo 3d o 2.5d. Esto se puede hacer, pero puede ser lento y extremadamente difícil de hacer, por lo que se sugiere utilizar una biblioteca para 3d.
- 1. Zend_Mail y = 0D = 0A = 3D = 3D = 3D = 3D = 3D
- 2. Múltiples pantallas en Pygame
- 3. Redes básicas con Pygame
- 4. Adición wxpython en pygame
- 5. pygame code organization
- 6. transformando imágenes en pygame
- 7. Pygame, sonidos no juegan
- 8. Pygame equivalent for Ruby?
- 9. Fuentes Unicode en PyGame
- 10. Ocultando la pantalla de pygame
- 11. Pygame: dibuja un solo píxel
- 12. Pygame zoom/ventana de desplazamiento
- 13. Comience con pyglet o pygame?
- 14. ¿Mejores recursos para aprender PyGame?
- 15. Entrada internacional SDL o PyGame
- 16. Cómo utilizar GFX en pygame
- 17. no se puede importar pygame
- 18. DBIx :: Class do unions?
- 19. El do-while
- 20. ¿Qué significa FormsAuthentication.SetAuthCookie do
- 21. CoffeeScript do, pasan argumento
- 22. ¿Qué significa auto && do?
- 23. Gráficos 3D: software para visualizar vectores 3D?
- 24. ¿Qué hace/[\ []/do en JavaScript?
- 25. break in do while loop
- 26. Rubí Imprimir Inyectar Do Sintaxis
- 27. ¿Qué hace android: isScrollContainer do?
- 28. Romper DO While Loop Java?
- 29. extensión .do en páginas web?
- 30. Do-while loop en Clojure?
¿Qué hay de malo en esto? Pygame no hace 3d. PyOpenGL hace 3d. Vuelve a leer su pregunta. – Kylotan
Sí, sí, actualmente estoy escribiendo un juego en 3D. Y ni siquiera estoy usando OpenGL. Estoy usando un método como el que publicó Horst JENS. – Cnorwood7641