Войти
ПрограммированиеФорумГрафика

OpenGL ES Двумерная графика

#0
11:28, 29 янв 2013

Долго и продолжительно гуглил по теме, но в основном все статьи крайне старательно пытаются донести особенности трехмерной реализации проектов с использованием этой библиотеки. Я кончено понимаю, что в основном это определяется только выбором матрицы отображения, но тем не менее разбирать нужны ли какие-то последующие куски кода (реализующие например освещение) — занятие довольно муторное, хотя кончено никто и не говорил что будет легко.

Выполняю задачу под iPhone, необходима релизация на C++, базовую инициализацию выполнил, даже нарисовал пару треугольников, но вот как на них натянуть тексутры средствами чисто C++ не могу найти. Честно говоря беспокоит так же вопрос о том, как из всего этого составить класс спрайта, так чтобы его можно было перемещать в плоскости экрана. Смотрел уроки NeHe, но насколько я успел понять информация в них сильно устарела и не является актуально, в особености касательно разработки под мобильные устройства. К слову сказать большинство статей об OpenGL вообще сразу же начинают оперировать понятиями типа контекст приложениея, контекст устройства, контекст рендеринга и так далее, совершенно пропуская ту часть, в которой должна даваться хоть какая-то базовая информация о том, что это такое и зачем вообще нужно. Оно конечно ясно, что на все есть поисковые системы, но такой разбор информации сильно осложняет ее изучение.

Посоветуйте пожалуйста какое-нибудь чтиво по теме или если вдруг вам есть что рассказать — расскажите.

#1
11:46, 29 янв 2013

Fennec
> натянуть тексутры средствами чисто C++
wut?

Просто качни примеры от Apple.

#2
11:53, 29 янв 2013

Sergio

XCode поддерживает возможность написания кода на C++. В моем случае это необходимо для того, чтобы обеспечить легкую портируемость приложения с платформы на платформу от родного iPhone Objective-C остаются только небольшие мостики. Примеры Apple здесь совсем не помощь поскольку они целиком на Obj-C.

#3
11:58, 29 янв 2013

1. Читаем http://www.books.ru/books/opengl-rukovodstvo-po-programmirovaniyu… 85659/?show=1
и разбираемся во всех примерах.
2. Качаем с офсайта спеки и читам их.
3. Пишем свое приложение.

P.S. Если возникнут вопросы - можно постучаться в мой жаббер trex6 jabber.ru

#4
12:18, 29 янв 2013

Fennec
OpenGL - это вообще-то чистый C. И разницы (именно с точки зрения использования OpenGL) на чем ты пишешь нет.

#5
12:32, 29 янв 2013

Sergio я же говорю — необходимо обеспечить переносимость проекта. Это значит что синтаксис должен быть одинаков для ращных платформ. Да OpenGL есть адаптированная и для использования в Java и Objective-C и еще в куче языков. Но если я, к примеру возьму кусок кода, написаннный на Obj-C и унесу его на Дройдовский проект, фигушки у меня чего скомпилируетя. В то же время на обоих устройствах есть поддержка С++ которая позволяет мне писать код, который в большинстве своем будет успешно собираться и там и там

#6
12:36, 29 янв 2013

Fennec

Книжки тебе походу уже не помогут, если ты элементарные вещи не понимаешь.
Если ты не понимаешь что такое контекст, то скопипейсти код инициализации, или возьми Glut, SDL и забудь о нём. Контекст можно упрощённо понимать как ID устройства куда ты рисуешь.
Спрайт это двумерная картинка, которую можно нарисовать пользуясь координатами x,y, при этом зная её размеры w, h. В OpenGL общий случай, только указывать надо все точки (3 или 4) куда ты собираешься рисовать свою картинку, и это не в 2D, а в 3D делается. Зная размер картинки, ты можешь написать класс спрайта сам, который получает x, y, и по известным w, h вычислит остальные координаты спрайта. Это и превратит общее понятие текстуры в узкое понятие спрайта. Вот и вся разница. Ты похоже привык пользоваться высокоуровневым GUI, потому и вопросы такие задаёшь.

#7
14:57, 29 янв 2013

Fennec
> Но если я, к примеру возьму кусок кода, написаннный на Obj-C и унесу его на
> Дройдовский проект

А ты не бери кусок кода. Посмотри как сделано и напиши на нужном языке так, как тебе надо. В этом как бы и смысл примеров. А тупо копипастить плохо.

#8
16:13, 29 янв 2013

write in C...

Но в любом случае по OpenGL очень хороши OpenGL API Quick Reference Cards.
Ищешь там названия функций, которые похожи на то, что надо сделать, а потом смотришь в доках зависимости.

ПрограммированиеФорумГрафика

Тема в архиве.