Pull to refresh

Comments 11

А вы в курсе, что уже почти 2015 год и используемый вами opengl 3.0 устарел лет на 7?
И начиная чуть ли не с opengl 3.2 (2009г.) нужно включать специальный режим совместимости, чтобы это старьё заработало (возможно, он включается где-то в glutInit)
Устарел неверное слово, правильно говорить разделился на 2 ветки, режим ядра и режим совместимости с первоначальным стандартом. Режим ядра штука хорошая, но он как ассемблер требует написание всего с нуля, там нет ни матриц ни понятного интуитивно функционала, поэтому для познания основ 3D не особо подходит, да и под питоном возникнет рад дополнительных сложностей связанных с манипуляцией структурированными данными. Код выше представленной ёлочки растянулся бы раз в 5-10 =) Да и статьи бы как таковой небыло, потому что автор до сих пор ломал голову над шейдерами, матрицами и математикой построения цилиндра.

И да всех с наступающим, вот вам от меня Ёлочка =)
sysky.in/mrgobus/three.js/elka.html
«deprecated» — значит deprecated.
устаревший; не рекомендуемый; сомнительный.
(лес.) «с гнилой сердцевиной»

«написание с нуля» требуется ровно на столько же, насколько для и ёлочки требуется glBegin/glEnd и смена цвета карандашика, с которым черепашка ползает от вертекса к вертексу.

glut — это библиотека, работающая на стороне пользовательского кода, а нечасть opengl api.
Под новые стандарты есть новые библиотеки. В частности — glm. Вот на питоне развечто glm нету, это да. Зато есть numpy.

А за семь лет подобных статей написано уже стопицот. От автора каждой «hello, ёлочка». Смысла в стопицот первой особо нету.
А вот по новому api какраз нифига нет, кроме opengl-tutorial.org
И как прикрутить его к питону, к numpy — совершенно не очевидно.
В курсе что устарел (но не смотря на это без проблем работает и на современном железе), но для того, чтобы пример получился насколько возможно простым, использовал старый API. PyOpenGl дает возможность использовать и современный API с шейдерами и отрисовкой всего за один проход, но пример в таком случае (на мой взгляд) получился бы слишком усложненным и непонятным для новичков.
Зря вы так, новые версии — не значит усложнение для новичков.
Думаю, стоит прислушаться к Ваши словам и попробовать написать вторую версию этой программа на современном OpenGL. Спасибо за комментарий. Если у меня получится задуманное, обязательно сделаю отдельный пост.
А почему не поворачивается ножкой к камере?
Мы вращаем объекты используя последовательность вызовов glRotatef по различным осям. Это дает не совсем тот результат, который можно ожидать (матрицы вращения накладываются друг на друга). Наиболее правильно осуществлять вращение трехмерных объектов с использованием кватернионов (Статья).
Sign up to leave a comment.

Articles