All streams
Search
Write a publication
Pull to refresh
18
0
Алексей Румянцев @0xEEd

Программист

Send message
спасибо, исправил
Об этом было в предыдущем "Урок 2.1 — Цвета"
Про гамма-коррекцию будет перевод урока 5.2: https://learnopengl.com/#!Advanced-Lighting/Gamma-Correction
Новичкам в первую очередь нужно познакомиться и разобраться с базовыми принципами и методами программирования 3d-графики: матрицами, шейдерами, тригонометрией и пр. После этого перейти на другое API будет уже не так уж сложно.
Вторая ссылка — сайт источник перевода этого урока. На нем о PBR рассказывается в 6 разделе, а этот урок из 2. Ждите когда доперевожу дотуда. (Если по уроку в месяц, то через год будет готово :)
Тогда нужно использовать какую-нибудь вспомогательную библиотеку. Потому что вручную самостоятельно разбирать формат PNG наверное будет слишком трудоемко, да и зачем?
В Windows читать .PNG умеет «штатный» GDI+ объект Bitmap (т.е. никаких библиотек не нужно)
В не-Windows можно воспользоваться библиотекой libpng.
А потом, имея массив пикселей создать в OpenGL текстуру функцией glTexImage2D(..) и т.д.
И вам спасибо :)
Читать на русском может быть и приятнее, но пользы меньше. Лично я после такого чтения на следующий день уже почти ничего не помню :( Поэтому и взялся за переводы. Так хоть что-то в голове оседает.

На русском есть книжка «Рост Рэнди — OpenGL Трехмерная графика и язык программирования шейдеров».
Еще «Боресков Алексей — Разработка и отладка шейдеров» но она больше похожа на обзорно-ознакомительный справочник, чем на самоучитель. Обе старые, 2005 года, но почитать стоит.
Да, в фиксированном конвейере визуализации присутствует. Но здесь то речь идет о шейдерах, т.е. о программируемом конвейере. А в нем нем ни Гуро ни Фонга. Вернее вообще ничего кроме переменных и функций нет, поэтому всё приходится считать вручную.
Это скорее не диффузный а фоновый (Ambient) цвет объекта.
В следующем уроке (2.2 Основы освещения) будет рассмотрена модель освещения по Фонгу (Ambient, Diffuse и Specular). O свечении (emission map) будет упомянуто в уроке (2.4 Текстурные карты), но только в разделе «Упражнения» (т.е. в качестве задания и готового решения)
Судя по всему этот курс рассчитан на новичков, поэтому автор пытается писать попроще и вопросам эффективности особо много внимания не уделяет. В следующем уроке (2.2 Основы освещения) он так и пишет, примерно следующее:… это не эффективно, но в целях обучения вполне сойдет.
О вероятности интеллектуальности драйвера ничего сказать не могу….в книжке Рост Рэнди пишет, что это зависит от конкретной реализации.
Может быть для шейдера перемножение трех матриц не такая уж трудоемкая операция (по сравнению например с сэмплированием текстур), что бы её оптимизировать? Не знаю, до замеров производительности и профилирования я пока не добрался. Надеюсь более компетентные читатели что-нибудь сообщат на эту тему.
эти статьи не мои, они с сайта learnopengl.com
я только две штуки русифицировал, пока у инициатора переводов Megaxela проблемы со свободным временем
Что значит «учить»? Осваивать какие-то новомодные технологии только потому что они в заголовках новостей?
Мне кажется это пустая трата времени. Надо просто решать возникающие задачи, выбирая для этого наиболее подходящее средство. А для доморощенных любителей вроде меня, OpenGL как раз таким средством и является, «дешевым и сердитым». Написать какую-нибудь игрульку вполне хватит.
Кроме того, на моем ноутбуке интегрированная видеокарта поддерживает только OpenGL 3.1, поэтому Vulkan я судя по всему увижу еще очень не скоро. Не покупать же ради него новое железо. Да он вроде и не слишком отличается от GLSL….переучиться наверное будет легче, чем перейти с OpenGL 1.5 на 3.0. Или нет?
Спасибо за комплименты. Полностью согласен, автор оригинала (Joey de Vries) их заслужил.

Да, начинающим всё это понять не просто, но благодаря иллюстрациям и сопутствующим примерам, вполне по силам. Не думаю, что объемная теоретическая часть уроков — это лишнее. Бывают, конечно, самоучители в стиле Lazy Foo, где почти голый код. Там точно «лишнего» нет совсем, но вот усвояемость информации, как мне кажется, от этого жутко хромает.

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

P.S.: написать (вернее упомянуть) о буфере глубины автор был вынужден для полноценной демонстрации примера куба.
На самом деле это уже не первый раз: урок 1.5 тоже был опубликован «новичком» (@FERusM).
О Z-fighting будет идти речь в уроке, посвященном проверке глубины (Depth testing'у). То есть в первом уроке чтвёртого раздела (Advanced-OpenGL/Depth-testing). Что бы до него добраться, нужно перевести еще 10 уроков.
Но, к сожалению, и в нем информации не много, всего три совета:
1) Не допускать «перекрывания» объектов
2) По возможности устанавливать ближнюю плоскость отсечения максимально далеко
3) Если позволяет производительность, использовать повышенную (32bit) точность буфера глубины

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity