Алмаз
> на каждой платформе используй свой родной API. И будет тебе счастье.
Да уж, писать одно и то же много раз - это всегда весело :)
SNVampyre
Кто мешает написать свой собственный глут с джанкет-туром и членодевками?
Алмаз
А зачем ещё раз писать что уже есть?
SNVampyre
А почему бы и не написать?
Cyber_Wanderer
>Нужны соответственно процедуры для построения матриц масштабирования, поворота и переноса, есть ли они где-то на просторах OpenGL, сторонние библиотеки не предлагать
когда писал свои матрицы и вектора этим пользовался.
http://www.gamedev.ru/code/articles/faq_matrix_quat
PixPainter,
когда писал свои матрицы и вектора этим пользовался.
http://www.gamedev.ru/code/articles/faq_matrix_quat
Спасибо, обязательно посмотрю, сравню по скорости со своими. К сожалению я не нашел в интернете нормальной информации о том как построить матрицы масштабирования, поворота, переноса, вида и проекции. Именно в такой последовательности они умножаются на вершину если не транспонированны, не повернуты и порядок умножения сохранен как строка на столбец. Как строятся первые догадаться не сложно, зато как построить матрицу проекции, я даже сейчас не верю своему счастью, что получилось, дней пять наверно убил. В интернете информации много, но очень путанной, то представление матриц обратное (транспонированное), при этом операция умножения тоже обратная, получается, что матрицы обычные просто повернутые и вовсе не транспонированные. То система координат не указана лево или право и думай тогда для каких систем координат это все написано, а учитывая еще любовь авторов к повернутости и траспонированию, вообще получается, что ничего не ясно, вообщем, чтобы понять пришлось брать самому листик, ручку и писать, много писать, пока не получилась матрица modelViewProjection.
Теперь вопрос! Припустим, что обработку шейдеров я настроил, передаю туда массу параметров и построенную матрицу, но только нюанс в том, что рисует шейдер ровно в том порядке в котором я задаю ему вершины, значит мне нужно отсортировать видимые! вершины по приближению к камере, то-есть дальние рисовать первыми, ближние последними, вопрос заключается в том, может ли за меня это сделать OpenGL, может ли он автоматически вызывать вершинный шейдер только для видимых вершин в отсортированном порядке? Или если я использую шейдер, то о вкусностях фиксированного конвеера можно забыть окончательно и писать самому отбраковку и сортировку вершин по фрустуму?
Executor,
Возьми glm к примеру.
Спасибо за дельный совет по glm, я не сразу сообразил, что он там есть. Правда, лень было разбираться в нем из-за этого написал свои матрицы. Хотя, glm все же скачал, поверхностно посмотрел, и оказывается там даже есть поддержка sse, так что, пускай пока полежит. :)
.Scotina,
Есть. Это всякие glRotate...(), glTranslate...(), glScale...(). Посмотри уроки на:nehe.gamedev.net
Была идея использовать устаревшие процедуры, но подумал, что как-то не красиво.
Cyber_Wanderer
> Или если я использую шейдер, то о вкусностях фиксированного конвеера можно
> забыть окончательно и писать самому отбраковку и сортировку вершин по фрустуму?
Однако, как мощно Вы замахнулись... Может стоит изучить матчасть ?
innuendo
Однако, как мощно Вы замахнулись... Может стоит изучить матчасть ?
Конечно стоит и когда-то я обязательно возьму докумментацию по OpenGL 2.0 и буду водя пальцем всматриваться в каждую строчку, но делать я это буду во время отпуска не спеша - сейчас не хочется :)
Конечно, если никто не ответит, придется посмотреть на порядок работы Programming Function Pipeline для OpenGL 2.0
Но пока попробую более точно сформулировать вопрос может кто знает, и мне не придется вместо одного эксперемента ставить два:
То что, процедуры OpenGL 1.1 ничего отсекать не будут пока я им не задам modelViewProjection matrix "пускай даже по кусочкам", это и так понятно, не понятно, будут ли эти процедуры изменять порядок вызова вершинного шейдера и исключать его вызовы для отбракованных вершин, когда я им все-таки задам эту матрицу? Учитывая, что изначально процедуры (расширения) OpenGL 1.1 писались для фиксированного конвеера, у меня возникают сомнения что такой ход будет работать. Хотя с другой стороны, рисование через шейдер производят как раз те же процедуры из OpenGL 1.1, расширения из OpenGL 2.0, просто позволяют создать шейдерную программу и загрузить ее в GPU. Ну а расширения OpenGL 1.3 позволяют производить мультитекстурирование, в моем случае просто подгружать много текстур в мультитекстурники.
Коротко вопрос звучит так: Есть ли автоматическое отсечение невидимых вершин и их сортировка от дальних к ближним для вызовов вершинного шейдера в OpenGL?
Cyber_Wanderer
> Коротко вопрос звучит так: Есть ли автоматическое отсечение невидимых вершин и
> их сортировка от дальних к ближним для вызовов вершинного шейдера в OpenGL?
Коротко ответ звучит так: Учите матчасть, да получите просветвление :)
p.s. http://www.opengl.org/registry/specs/ARB/vertex_program.txt - сильно не повредит
Cyber_Wanderer
> Коротко вопрос звучит так: Есть ли автоматическое отсечение невидимых вершин и
> их сортировка от дальних к ближним для вызовов вершинного шейдера в OpenGL?
Нет.
innuendo
p.s. http://www.opengl.org/registry/specs/ARB/vertex_program.txt - сильно не повредит
Я не использую ARB расширений напрямую. Я использую набор процедур по привязке к конкретной версии OpenGL, они конечно могут строиться на ARB расширениях, но предоставляют другие интерфейсы. Вы случайно нигде не преподаете, а то таких развернутых ответов я не встречал аж с университетских времен. Не обижайтесь, но послать кого-нибудь почитать доки любой может, но разве так сложно понять, что чтение доков занимает намного больше времени нежели быстрый ответ.
Executor
Нет.
Так я и думал. :) Ладно, тогда все же придется учить гл-часть.
Cyber_Wanderer
> Вы случайно нигде не преподаете, а то таких развернутых ответов я не встречал
> аж с университетских времен.
Да, я преподаю умение выкручиваться из любых ситуаций :)
> Так я и думал. :) Ладно, тогда все же придется учить гл-часть.
Ученье - свет
Cyber_Wanderer
Умение самому находить нужную информацию - очень полезный навык.
Алмаз
Cyber_Wanderer
Умение самому находить нужную информацию - очень полезный навык.
Cyber_Wanderer
...но разве так сложно понять, что чтение доков занимает намного больше времени нежели быстрый ответ.
В этом и суть форумов - ИМХО.
Cyber_Wanderer
> В этом и суть форумов - ИМХО.
Но только не этого форума. :)
Тема в архиве.