Действительно ли PyOpenGL является хорошим местом, чтобы начать изучать программирование opengl?

Я хочу начать изучать OpenGL, но я действительно не хочу должным быть учить другой язык, чтобы сделать это. Я уже являюсь довольно опытным в Python и наслаждаюсь языком. Я просто хочу знать, как близко это к обычному API? Я смогу, довольно легко следуют учебным руководствам и книгам без слишком большой проблемы?

Я знаю, что C++ дает лучшую производительность, но для того, чтобы просто узнать, что я могу пойти не так, как надо с PyOpenGL?

9
задан Eric Leschinski 2 April 2015 в 12:27
поделиться

2 ответа

С оговоркой, что я сам очень мало программировал OpenGL, я считаю, что для целей обучения PyOpenGL - хороший выбор. Основная причина в том, что PyOpenGL, как и большинство других оболочек OpenGL, - это всего лишь тонкая оболочка вокруг API OpenGL.

Одним из больших преимуществ PyOpenGL является то, что в C вам нужно беспокоиться о вызове правильной команды glVertex3 {dfiX} , Python позволяет вам просто написать glVertex3 (x, y, z) , не беспокоясь о том, чтобы сообщить Python, какой тип аргумента вы передали. Это может показаться несущественным, но часто гораздо проще использовать утиную типизацию Python, чем чрезмерно беспокоиться о статической типизации.

Методы OpenGL почти полностью обернуты в методы Python, поэтому, пока вы будете писать на Python, используемые вами алгоритмы и вызовы методов идентичны написанию OpenGL на любом другом языке.Но поскольку вы пишете на Python, у вас будет гораздо меньше возможностей совершить «глупые» ошибки при правильном использовании указателя, управлении памятью и т. Д., Которые просто съели бы ваше время, если бы вы изучали API на C или C ++. , например.

13
ответ дан 4 December 2019 в 15:12
поделиться

PyOpenGL

Я не думаю, что это хороший выбор. На мой взгляд в C / C ++ проще поиграть с кодом OpenGL - начните с простого приложения, затем добавьте шейдер, затем добавьте некоторые геометрические функции, создайте генератор текстуры / геометрии, создайте сцену с помощью CSG и т. Д. Вы знаете - повеселиться, поиграться с кодом, поэкспериментировать и чему-то научиться в процессе. Честно говоря, я просто не думаю, что делаю это на Python. Конечно, можно программировать OpenGL на Python, но я не вижу причин для этого.Кроме того, несколько функций OpenGL принимают указатели памяти в качестве аргументов, и хотя, вероятно, существует класс (или дюжина альтернатив) для этого случая, я не вижу причин использовать их, когда традиционный способ работы доступен в C / C ++, особенно когда я думаю о количестве оберток, которые код Python использует для передачи вектора или массива в функцию OpenGL. Это просто похоже на усложнение вещей без реальной причины для этого. Плюс заметное падение производительности, особенно при использовании "RAW" OpenGL.

Кроме того, если вы собираетесь делать игры, весьма вероятно, что вам придется использовать C ++ или какой-нибудь другой язык, не являющийся Python.

P.S. Я сделал достаточно программирования OpenGL, много программирования DirectX, но я специализируюсь на C ++ и использую python только для определенных алгоритмических тестов, инструментов и скриптов.

0
ответ дан 4 December 2019 в 15:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: