LINUX.ORG.RU

Работа с openGL в linux

 , ,


0

2

В универе начался курс под названием «Компьютерная графика». Суть состоит в том, чтобы рассказать как работает вся эта графика, как написать «свой» 3dsmax (конечно это все громко сказано) и т.д.

Первая лабораторка посвящена подключению openGL. Все это под оффтопиком и на делфи, метода тоже описана для делфи.

Задание примерно такое:

Определить формат пикселя для конкретного компьютера и его краткое описание

Определить разрешение для конкретного компьютера

Куда рыть, что смотреть? Возможно ли вообще такое? Есть ли истории успеха?

Хотелось бы все-таки работать в linux?

★★★★★

Последнее исправление: Amet13 (всего исправлений: 1)

Если преподу важнее суть, а не соответствие кода методичке конца девяностых, то бери SDL для C.

Ещё хорошо бы учить core profile, а не устаревший fixed pipeline.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

два чая этому пятизвездочному.

x0r ★★★★★
()
Ответ на: комментарий от PolarFox

Мне важна суть. Если я пойму, что да как, я расскажу преподу, что да как, не впервой.

SDL для C

В этом деле я вообще ничего не знаю. С чего начать, после википедии?

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Не знаешь SDL или C?

Есть всякие туториалы. Проще найти для более старого SDL1.2, но по сути мало что отличается от 2.0, потому что SDL нужен только для создания окна, отслеживания ввода и тому подобного, всё рисование графики происходит в OpenGL.

С си будет потруднее, но в целом он весьма похож на паскаль, так что особых трудностей не будет.

PolarFox ★★★★★
()
Ответ на: комментарий от Amet13

http://wiki.libsdl.org/ лучше всего идти сюда, я думаю.

Конкретно по твоему текущему заданию тебя будут интересовать функции http://wiki.libsdl.org/SDL_GetCurrentDisplayMode, http://wiki.libsdl.org/SDL_GetWindowPixelFormat и, возможно, http://wiki.libsdl.org/SDL_GetPixelFormatName

PolarFox ★★★★★
()
Ответ на: комментарий от Amet13

SDL умеет больше и в принципе популярнее. В принципе можно и freeglut попробовать, если его функциональность устроит.

PolarFox ★★★★★
()
Ответ на: комментарий от PolarFox

В рамках лабораторок думаю устроит. Правда конкретно по своему заданию ничего не нашел. Вот вроде как неплохой сайт, но там ничего для меня нет.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Medar

Опередил. ТС, посмотри на ссылку этого господина.

gavlig ★★★
()
Ответ на: комментарий от Amet13

freepascal уж тогда - на freepascal + opengl написаны hedgewars, например. Но куда правильнее, как уже сказали, C + SDL

anonymous
()
Ответ на: комментарий от Medar

Когда я впервые почитал этот сайт, нашел занятным, что он сделан 20-летним нидерландским студентом.

Deleted
()

на делфи

Объясни преподу, что пора становится мужиком и писать на си.

Bacteriophage
()
Ответ на: комментарий от quiet_readonly

Я знаю, можно и еще проще, заюзать SFML/ClanLib. Но думается мне препод будет не в восторге, задача явно ставилась что бы мозг студЕнтам пожарить низкоуровнево.

Bacteriophage
()
Ответ на: комментарий от Bacteriophage

Я знаю, можно и еще проще, заюзать SFML/ClanLib. Но думается мне препод будет не в восторге, задача явно ставилась что бы мозг студЕнтам пожарить низкоуровнево.

Вообще-то SDL очень даже низкоуровневый, но кроссплатформенный.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

SDL очень даже низкоуровневый

4.2 В чем проявляется его т.н. «низкоуровневость»? Даже контекст создается неявно, не говоря уже про всякие ttf/image плугины где абстракция на абстракции.

x0r ★★★★★
()

Определить формат пикселя для конкретного компьютера и его краткое описание
Определить разрешение для конкретного компьютера

К OpenGL это не имеет никакого отношения.

andreyu ★★★★★
()

Вот ещё не плохая библиотека: http://www.glfw.org/ SDL покруче конечно, но glfw тоже весьма не плох. Давненько всё это было...

arbv
()
Ответ на: комментарий от Medar

Спасибо, годная ссылка. Тоже буду ссылаться :)

arbv
()
Ответ на: комментарий от andreyu

В этом деле я вообще ничего не знаю.

Можете вкратце абстрактно описать слои взаимодействия сего?

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от x0r

4.2 В чем проявляется его т.н. «низкоуровневость»? Даже контекст создается неявно, не говоря уже про всякие ttf/image плугины где абстракция на абстракции.

Контекст OpenGL в SDL 2.x создаётся явно. TTF и изображения к OpenGL не имеют отношения, да и работа с ними достаточно низкоуровневая для игр.

quiet_readonly ★★★★
()
Ответ на: комментарий от Amet13

Можете вкратце абстрактно описать слои взаимодействия сего?

OpenGL рисует сцену. Создать окно? перейти в фулскрин или иначе управлять окном, изменить разрешение экрана, создать контекст OpenGL или выбрать для него формат пикселей, переместить контекст OpenGL в другой поток — это всё не задачи OpenGL, их выполняют API вроде XGL/WGL/GLKit.framework, или построенные поверх них кроссплатформенные API вроде SDL/glfw, или библиотеки вроде freeglut/Qt/gtk/Ogre. EGL берёт на себя задачу низкоуровневой работы с данными OpenGL типа загруженных на видеокарту текстур, но создать окно EGL сам по себе не может (а вот создать контекст из окна Xorg или android - вполне).

quiet_readonly ★★★★
()
Последнее исправление: quiet_readonly (всего исправлений: 2)
Ответ на: комментарий от quiet_readonly

в xlib на создание конекста уходит екран кода, к которому вполне можно отнести и создание окна. в SDL2 для создания конекста и окна вызываются 2 процедурки, который маскируют реальные действия. о низкоуровневости речь идти не может.

TTF и изображения к OpenGL не имеют отношения

речь не об OGL, а о «низкоуровневости» API SDL2.

x0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.