Pull to refresh
25
0
Игорь @iByte

User

Send message

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 5 из 6

Reading time11 min
Views67K

Содержание основного курса




Улучшение кода






Official translation (with a bit of polishing) is available here.




Пришла пора веселья, давайте для начала смотреть размер текущего кода:
  • geometry.cpp+.h — 218 строк
  • model.cpp+.h — 139 строк
  • our_gl.cpp+.h — 102 строки
  • main.cpp — 66 строк


Итого 525 строк. Ровно то, что я обещал в самом начале курса. И заметьте, что отрисовкой мы занимаемся только в our_gl и main, а это всего 168 строк, и нигде мы не вызывали сторонних библиотек, вся отрисовка сделана нами с нуля!
Я напоминаю, что мой код нужен только для финального сравнения с вашим работающим кодом! По-хорошему, вы всё должны написать с нуля, если следуете этому циклу статей. Очень прошу, делайте самые безумные шейдеры и выкладывайте в комментарии картинки!!!


Читать дальше →

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4б из 6

Reading time5 min
Views65K

Содержание курса




Улучшение кода






Official translation (with a bit of polishing) is available here.




Сегодня мы заканчиваем с ликбезом по геометрии, в следующий раз будет веселье с шейдерами!
Чтобы не было совсем скучно, вот вам тонировка Гуро:



Я убрал текстуры, чтобы было виднее. Тонировка Гуро очень проста: добрый дяденька-моделёр дал нам нормальные вектора к каждой вершине объекта, они хранятся в строчках vn x y z файла .obj. Мы считаем интенсивность освещения для каждой вершины треугольника и просто интерполируем интенсивность внутри. Ровно как мы делали для глубины z или для текстурных координат uv!

Кстати, если бы дяденька-моделёр был не таким добрым, то мы могли бы посчитать нормали к вершине как среднее нормалей граней, прилегающих к этой вершине.

Текущий код, который сгенерировал эту картинку, находится здесь.
Читать дальше →

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 4a из 6

Reading time7 min
Views88K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Построение перспективного искажения


Четвёртая статья будет разбита на две, первая часть говорит про построение перспективного искажения, вторая про то, как двигать камеру и что из этого следует. Задача на сегодня — научиться генерировать вот такие картинки:



Читать дальше →

Снимаем образы с картриджей для Dendy/Famicom/NES

Reading time7 min
Views133K
Ни для кого не секрет, что сейчас можно легко скачать эмулятор почти любой игровой консоли 80х-90х и поиграть в классические игры на компьютере, телефоне и многих других платформах. В сети легко можно найти и ROM'ы этих самых игр. Зачастую люди качают их и даже не задумываются, каким же образом кто-то однажды прочитал их из картриджа. В этой статье я и постараюсь рассказать, как же это делалось в случае с NES/Famicom, которая у нас была больше известна как «Денди», и покажу, как можно сделать это самостоятельно.

image

Читать дальше →

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 3 из 6

Reading time6 min
Views97K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




А что потом? Я разобрал весь материал!



В статьях 7 и 8 мы поговорим о программировании непосредственно под OpenGL. Есть ненулевая вероятность получить краткий курс OpenCL/CUDA в статьях 9+.

Удаление невидимых поверхностей


Знакомьтесь, это мой друг z-buffer головы абстрактного африканца. Он нам поможет убрать визуальные артефакты отбрасывания задних граней, которые у нас оставались в прошлой статье.



Кстати, не могу не упомянуть, что эта модель, которую я использую в хвост и в гриву, была любезно предоставлена замечательным Vidar Rapp.

Мы её можем использовать исключительно в рамках обучения рендерингу. Это очень качественная модель, с которой я варварски обошёлся, но я обещаю вернуть ей глаза!
Читать дальше →

Простой «железный» терминал

Reading time5 min
Views70K
Данная статья является продолжением описания микроконтроллера на процессоре 6502 «Аюша». В ней мы рассмотрим, как превратить контроллер в полноценный компьютерный комплект, причём в качестве основы не обязательно делать «Аюшу», сойдёт любой иной девайс. Ну или применим собранный терминал для чего-нибудь ещё. И опять же, для сборки будет применён «подножный корм»…

image
Читать дальше →

Основы CG-рисунка на примерах: рисуем осциллограф, применяем 3D

Reading time3 min
Views154K


Всем привет! Меня зовут Иван Смирнов, я работаю концепт-художником в Allods Team, игровой студии Mail.Ru Group, на проекте Skyforge. Помимо этого я преподаю на факультете концепт-арта в Scream School и веду онлайн-курсы. Не так давно я проводил лекцию по основам CG-рисунка: в частности, речь шла о том, как нарисовать простой предмет, например, осциллограф. Материалами этой лекции я спешу поделиться с вами. Осторожно, траффик!
Читать дальше →

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 2 из 6

Reading time7 min
Views145K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Update:


Внимание, статья 4в даёт новую, более простую версию растеризатора.

Давайте знакомиться, это я.



То есть, модель моей башки, отрендеренная в программе, которую мы сделаем за ближайшие час-два.

В прошлый раз мы нарисовали проволочную сетку трёхмерной модели, в этот раз мы зальём полигоны. Точнее, треугольники, так как OpenGL практически любой полигон триангулирует, поэтому ни к чему разбирать сложный случай. Напоминаю, что этот цикл статей создан для самостоятельного программирования. Время, которое я здесь привожу — это не время чтения моего кода. Это время написания вашего кода с нуля. Мой код здесь только для того, чтобы сравнить ваш (рабочий) код с моим. Я совсем не являюсь хорошим программистом, поэтому ваш код может быть существенно лучше моего. Любая критика приветствуется, любым вопросам рад.

Пожалуйста, если вы следуете этому туториалу и пишете свой код, выкладывайте его на github.com/code.google.com и им подобные и давайте ссылки в комментариях! Это может хорошо помочь как и вам (другие люди могут чего посоветовать), так и будущим читателям.
Читать дальше →

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 1 из 6

Reading time7 min
Views411K

Содержание курса



Улучшение кода






Official translation (with a bit of polishing) is available here.




Постановка задачи


Цель этого цикла статей — показать, как работает OpenGL, написав его (сильно упрощённый!) клон самостоятельно. На удивление часто сталкиваюсь с людьми, которые не могут преодолеть первоначальный барьер обучения OpenGL/DirectX. Таким образом, я подготовил краткий цикл из шести лекций, после которого мои студенты выдают неплохие рендеры.

Итак, задача ставится следующим образом: не используя никаких сторонних библиотек (особенно графических) получить примерно такие картинки:



Внимание, это обучающий материал, который в целом повторит структуру библиотеки OpenGL. Это будет софтверный рендер, я не ставлю целью показать, как писать приложения под OpenGL. Я ставлю целью показать, как сам OpenGL устроен. По моему глубокому убеждению, без понимания этого написание эффективных приложений с использованием 3D библиотек невозможно.
Читать дальше →

Потрясающая коллекция бесплатных шрифтов за 2014 год

Reading time1 min
Views123K
Привет, Хабр! Многие уже знают о моей страсти к попытке собрать самое лучше, что может быть полезно для веб-разработчиков или веб дизайнеров. И шрифты — не исключение. Программное обеспечение для работы со шрифтами постоянно развивается. Количество дизайнеров желающих опробовать себя в типографике растет с каждый днем. А сегодня я хочу представить вам их наработки — 30 потрясающих бесплатных шрифтов, которые мне удалось собрать за последний год.

Polar



Polar

Читать дальше →

Программируем Arduino на чистом Си

Reading time3 min
Views142K
В жизни ардуинщика рано или поздно наступает момент, когда в штатной среде разработки становится тесно. Если скетчам перестает хватать памяти, требуется жесткий реалтайм и работа с прерываниями или просто хочется быть ближе к железу — значит пришло время переходить на C. Бывалые электронщики при упоминании Arduino презрительно поморщатся и отправят новичка в радиомагазин за паяльником. Возможно, это не самый плохой совет, но мы пока не будем ему следовать. Если отбросить Arduino IDE и язык wiring/processing, у нас в руках останется прекрасная отладочная плата, уже оснащенная всем необходимым для работы микроконтроллера. И, что немаловажно, в память контроллера уже зашит бутлоадер, позволяющий загружать прошивку без использования программатора.
Читать дальше →

Певица демонстрирует протезы в новом клипе

Reading time1 min
Views27K
Что делать, если многочисленные операции не помогают исправить вывихнутые от рождения бедро и ногу? Виктория Модеста, певица и модель из Латвии, убедила врачей ампутировать ей эту конечность и теперь демонстрирует протезы ноги. Как утверждает девушка, ампутация помогла ей избавиться от комплексов, и теперь она чувствует себя гораздо более уверенной.

image
Читать дальше →

Internet Archive выложил 2400 DOS игр

Reading time1 min
Views27K


Разработчики, стоящие за Internet Archive, явно души не чают в старых игрушках (и это хорошо). Ранее Internet Archive представил эмуляторы для игры в игры для Atari и некоторых других платформ. Играть можно абсолютно бесплатно, за что большое спасибо сервису Internet Archive.

Теперь благодарность игроков увеличится во сто крат, поскольку на Internet Archive выложили огромных архив из 2400 игрушек для MS-DOS. Понятно, что большую часть архива можно достать где-то еще, но теперь все это собрано в одном месте.

Читать дальше →

Вычислительная техника в Deutsches Museum

Reading time1 min
Views11K
Deutsches Museum — самый большой музей техники в Европе. В нем существуют практически все разделы современной техники и, в частности, история развития вычислительной техники. Я хочу представить несколько фотографий, которые могут быть интересны широкому кругу читателей.
Читать дальше →

Сэр Синклер собирает деньги на выпуск нового ZX Spectrum

Reading time1 min
Views12K
Сэр Клайв Синклер открыл краудфандинговую кампанию на Indiegogo по выпуску нового ZX Spectrum с предустановленной 1,000 игр.

Sinclair Spectrum Vega стоит 100 фунтов (около 155 долларов) и на нем, конечно, будут работать и все остальные игры и приложения, разработанные для оригинального ZX Spectrum. Часть из них, возможно, будет доступна бесплатно.

Компьютер по старинке подключается к телевизору.

В рамках кампании Синклер хочет получить 100,000 фунтов, то есть продать около 1,000 компьютеров Vega. Сейчас, за два месяца до окончания кампании, уже набрано более 30,000 фунтов.

Ошибки фантастов или размышления о том, почему остановилась космонавтика

Reading time9 min
Views75K


Весь двадцатый век фантасты много и талантливо писали об освоении космоса. Герои «Хиуса» подарили человечеству богатства Урановой Голконды, пилот Пиркс работал капитаном космических сухогрузов, по Солнечной системе ходили лидер-контейнероносцы и балкер-трампы, и я уж не говорю про всякую мистику путешествий к таинственным монолитам. Однако 21 век не оправдал надежд. Человечество робко стоит в прихожей Космоса, не выбравшись на постоянной основе дальше земной орбиты. Почему так получилось и на что надеяться тем, кто хотел бы читать в новостях про повышение урожайности марсианских яблонь?
Читать дальше →

Internet Arcade: 900 классических игр прямо в браузере

Reading time1 min
Views9.4K


Недавно на Geektimes писали о том, что Роскомнадзор заблокировал Internet Archive. Вероятно, многие из вас уже нашли способ обойти блокировку, поскольку создатели Internet Archive приготовили сюрприз многим геймерам.

На «машине времени для сайтов» появился раздел Internet Arcade, где представлено более 900 классических игрушек 70-х 80-х годов прошлого века. Все, что нужно для работы игрушек, размещено на стороне Internet Archive.

Читать дальше →

СКАЛА — ЭВМ ЧАЭС, история создания

Reading time4 min
Views81K
imageСегодня исполняется 28 лет со дня чернобыльской катастрофы. На эту тему написано очень много статей, выдвинуто немало теорий о причинах взрыва, сделано множество расследований и выводов. В этой статье я постараюсь не касаться самой темы взрыва и последующей катастрофы, а расскажу о истории создания компьютера, который регулировал работу станции — о системе СКАЛА. Кому интересно — добро пожаловать под кат.
Читать дальше →

Советская операция по спасению мертвой космической станции

Reading time19 min
Views352K

Источник: Spacefacts.de

Эта история произошла в 1985 году, но в последствии постепенно забылась. Шли годы — многие подробности были искажены, кое-что было выдумано. Даже те, кто первыми рассказал об этих событиях, допускали явные ошибки. Операция «Союза-13» по спасению орбитальной станции «Салют-7» была впечатляющей попыткой проведения ремонта в открытом космосе. Писатель Николай Белаковский собрал все факты воедино и готов впервые за все время предоставить нам полноценный рассказ о тех событиях.
Читать дальше →

Information

Rating
Does not participate
Location
Украина
Date of birth
Registered
Activity