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

[wip] Цикл уроков по OpenGL 3.3 (4 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 13 4 5 644 Следующая »
#45
10:35, 27 сен. 2010

Вобщем пока код и подход к нему пока устаканиваются, так что возможно к
выходу урока будет совсем по другому. Правда одно "но" делать как у NeHe не
представляется возможным, все таки материал предполагается сложнее чем
представлен в первых уроках, опять же делать такой процедурный подход
тоже не совсем корректно. Возможно стоит начать с объединения различных
модулей в один исходный файл, а со временем начать делить, но давайте
дождемся первого урока и уже после будем думать в какую сторону менять.
Вариантов реализации масса, сделать один который понравится всем - нереально,
кому-то нравится так кому-то эдак, поэтому придется все равно выбирать.

К тому же я решил пересмотреть структуру проекта, исходный код в транке
будет идти своим ходом, однако отдельные примеры будут оформляться в
бренч, с вынесением снапшота кода на момент урока туда, в итоге если
понадобиться накатить изменения сделать это будет достаточно просто.
С другой стороны получаем линейное дерево для конкретного урока
и основной код будет развиваться дальше, получая изменения для создания
следующего урока. Вобщем посмотрите :)


#46
15:18, 27 сен. 2010

KpeHDeJIb
> #define OPENGL_CALL(expression)
там в проверке ошибок нужен не if, а while
нет гарантии, что второй вызов glGetError() обязательно вернёт GL_NO_ERROR

#47
15:58, 27 сен. 2010

не забывайте про __FILE__ и __LINE__

#48
18:13, 27 сен. 2010

arabesc
> нет гарантии, что второй вызов glGetError() обязательно вернёт GL_NO_ERROR
У нас не тот случай, я гарантирую это.

susageP
> не забывайте про __FILE__ и __LINE__
В LOG_ERROR это учтено, помимо __FILE__ и __LINE__ там еще и __func__ для информативности.

#49
18:50, 27 сен. 2010

Когда будет 1й урок?

#50
20:03, 27 сен. 2010

KpeHDeJIb
"...делать как у NeHe не представляется возможным..."

Да, ладна... Инициализацию как у Нехе в отдельный файл, математику, которую теперь приходится делать ручками, тоже в отдельный файл, вот и всё.

"...все таки материал предполагается сложнее чем представлен в первых уроках..."

Что значит сложнее? Если смотреть твоё первое сообщение, то предполагаемые уроки ничем не сложнее уроков Нехе. К тому же предполагаемая целевая аудитория этих уроков, как я понимаю, новички. А для них материал максимально должен соответствовать педагогическим принципам. В данном случае принципу "доступности". Ты посмотри что пишут в темах свежие новички, которые после 1 сентября зарегистрировались, у тебя сразу желание пропадёт сделать уроки "посложнее", или написать как-то по объектно-ориентированней.

#51
20:19, 27 сен. 2010

Мне почему-то кажется, что из таких уроков нифига хорошего не получится ).
Отчасти изза того, что я сам когда-то загорелся подобной идеей ) и точно так же открыл репозиторий и тд и тп.
А когда дело дошло до написания самого урока, а не просто примера с кодом как то пришло ощущение, что чего то ни хватает ).
Отчасти изза того, что быть может крендель прочтет мой пост, и мне на зло, все же хоть чтонить напишет )))

PS: но в целом тенденция плачевная, я пока смотрю и понимаю, что ни чего из уроков почерпнуть то особо и не смогу.
OPENGL_CALL - костыль, и учить такому зло, уж лучше библиотеки всяческие подключать.
вместо OPENGL_CALL я бы лучше написал обертку над каждой gl функцией с более расширенной проверкой параметров и с реакцией на ошибки
допустим glInit_checked
и написал подобную конструкцию

#ifdef _DEBUG
#define glInit glInit_checked
#endif

#52
20:33, 27 сен. 2010

Исходный код первого урока уже доступен http://code.google.com/p/gl33lessons/downloads/list
Поменял структуру проекта для более простого доступа.

Теория на подходе, она пишется и оформляется :)

#53
21:14, 27 сен. 2010

VSync, низкий фпс, UNICODE и расширенные версии функций (Ex) - вот на что следует обратить внимание.

Добавлено позже:
Класс GLWindow надо было всё-таки оставить чисто для оконной работы, а создание контекста и хранения самого контекста следовало бы оформить в отдельном классе.

Ещё немного, судя по коду должно создаться окно 800 на 600 пикселей, на самом деле выходит окно 816 на 638 пикселей (и кстати, не хрена не по центру) - тоже минус.

#54
21:39, 27 сен. 2010

Алмаз
> VSync, низкий фпс, UNICODE и расширенные версии функций (Ex) - вот на что
> следует обратить внимание.

Про первые два не понял, про UNICODE могу с уверенностью сказать - не надо, где ты
предлагаешь его использовать? А по поводу функций Ex тоже не понял.

> Класс GLWindow надо было всё-таки оставить чисто для оконной работы, а создание
> контекста и хранения самого контекста следовало бы оформить в отдельном классе.

На то он и GLwindow, что в нем все создается, инициализаця и рендер в других
местах уже будут. Но об этом позже. В частности по кускам кода будет же описание
в статье, так что прежде чем полностью оценить урок надо дождаться текста :)

> Ещё немного, судя по коду должно создаться окно 800 на 600 пикселей, на самом
> деле выходит окно 816 на 638 пикселей (и кстати, не хрена не по центру) - тоже
> минус.

800х600 это размер клиентской области окна, т.е. того самого "черного квадрата".
Либо размер полноэкранного приложения. Кстати F1 - переключение, ESC - выход.

Не по центру это как? Скриншот можно?

#55
22:02, 27 сен. 2010

Надо в самом первом уроке вырубить VSync, это важно, ИМХО. Фпс слишком низкий - 380 против 570 кадров на моём движке в окне такого же размера. Функции винды чисто юникодные, следовательно необходимо использовать только юникодные версии, с приставкой W на конце или вставить куда надо дефайн с UNICODE и _UNICODE. Насчёт расширенных функций, у которых приставка Ex на конце. ChangeDisplaySettings() - замени на ChangeDisplaySettingsEx() и т. п. Используешь WNDCLASSEX - будь добр присобачить иконку, и маленькую, и большую. WNDCLASSEX только этим и отличается от WNDCLASS. Иначе смысла нет в его использовании. У тебя окно центрируется исходя из размеров экрана, а не от размеров рабочего стола. В полноэкранном режиме так и должно быть, но в оконном - нет.

#56
22:09, 27 сен. 2010

Алмаз
Слишком завышенные требования к уроку по OpenGL 3.3.

#57
22:13, 27 сен. 2010

AxMeT
Ничего не завышенное. :)

#58
22:23, 27 сен. 2010

А почему бы вместо платформо-зависимого ненавистного мне win32 кода не использовать что-то типа SDL? Оно и проще для обучения и красивее.

#59
22:26, 27 сен. 2010

PANDA
Фууууу

Страницы: 13 4 5 644 Следующая »
ПрограммированиеФорумГрафика

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