Рубрика «OpenGL»

Недавно мне подарили настоящую легенду — STB 3dfx Voodoo 3 с двумя TMU, 16'ю мегабайтами видеопамяти и 2D-ускорителем. Как настоящий гик и любитель покопаться в ретро-железе, я сразу же нашел даташит и начал изучать внутреннюю архитектуру этого игрового монстра. И поверьте, здесь есть на что посмотреть!

В сегодняшней статье мы во всех деталях изучим архитектуру оригинальной 3dfx Voodoo, узнаем почему Nvidia выиграла в гонке видеокарт и почему игры с API Glide выглядели гораздо красивее, чем с D3D/OpenGL! Если любите настоящие технарские статьи без нейрослопа и рерайта — жду вас под катом!

❯ Предыстория

Читать полностью »

Ранее я часто рассказывал об особенностях видеокарт из 90-х. В рамках прошлых статей, мы успели с вами рассмотреть внутреннюю архитектуру 3dfx Voodoo, узнать о кастомном графическом API в S3 ViRGE, и даже написать свою собственную небольшую демку под видеокарты из 90-х. Вместо рассказов о GeForce 256 и ATi 3D Rage, в сегодняшнем материале мне хотелось бы поговорить о видеокарте, которая обогнала своё время — и при этом всё равно провалилась. Как вы уже поняли — речь пойдет об Intel i740.

Каким был первый GPU от Intel, на что он был способен и в чём заключается его главная тайна — читайте в сегодняшней статье!

❯ Предисловие

Читать полностью »

В программировании частая задача это работа с последовательными элементами. В этой, порой непростой задаче, нам часто помогают вектора. Вектора бывают самыми разными от queue и set до unordered_map и обычных массивов. Все они позволяют работать с данными по разному, где то быстрее вставка, где то быстрее доступ, но все они выполняют одну важную задачу это хранение данных.

И не смотря на их всеобъемлющую вариативность, в жизни встречаются ситуации когда один вектор не может решить задачу. Точнее может, но через костыли...

О чем я?

Читать полностью »
Австрийский программист Марио Цехнер (Mario Zechner), автор движка Pi, на котором работает OpenClaw

Австрийский программист Марио Цехнер (Mario Zechner), автор движка Pi, на котором Читать полностью »

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

Представь: тебе нужно «поколдовать» над пикселями прямо в UI - добавить живой градиент, искажение картинки под пальцем, стеклянный блеск карточке и тому подобные эффекты. Раньше для этого приходилось прибегать к «тяжеловесам» таким как OpenGL/Vulkan, либо мучить CPU постобработкой битмапов. AGSL (Android Graphics Shading Language)Читать полностью »

В предыдущих частях мы рассмотрели создание консольной и GUI-версии "Сапёра" на Python. Теперь пришло время совершить качественный скачок перенести классическую игру в трехмерное пространство с использованием современных графических технологий и популярный библиотек.(буду стараться подробно описать комментариями в коде, если не понятно, то напишите в коммментариях, чтобы обновил статью и сделал её более подробной)

Почему именно 3D-версия?

Читать полностью »

...которая будет работать на первых Android-смартфонах в мире, ретро-компьютерах из 90-х и даже Mac'ах! Часть 1.

Иногда у меня лежит душа просто взять и написать какую-нибудь небольшую игрушку с нуля, без использования готовых движков. В процессе разработки я ставлю перед собой интересные задачки: игра должна весить как можно меньше, работать на как можно большем числе платформ и использовать нетипичный для меня архитектурный паттерн. Недавно я начал писать трёхмерные «танчики», которые должны весить не более 600 килобайт с учетом всех ресурсов и в рамках подробной статьи готов рассказать о всех Читать полностью »

Релятивистская трассировка лучей - 1

В этой статье я покажу как можно самому, бесплатно и без смс, нарисовать черную дыру при помощи OpenGL, в полном соответствии с ОТО.

Для этого, мы сначала выведем уравнения движения лучей света, напишем интегратор Рунге-Кутты на GLSLЧитать полностью »

Создаем эмулятор Sega Mega Drive на C++ - 1

В этой статье описано создание эмулятора 16-битной приставки Sega Mega Drive на C++.

Будет много интересного: эмуляция процессора Motorola 68000, реверсинг игр, графика на OpenGL, шейдеры, и многое другое. И все это на современном C++. В статье много картинок, можно хоть на них посмотреть.

Устройство Sega Mega Drive

Читать полностью »

Иногда все, что требуется — быстро вывести какой‑то текст в Renderpass. Традиционно отрисовка текста требует отрендерить все возможные символы шрифта в атлас, затем привязать полученный атлас как текстуру и затем отрендерить каждый глиф, рисуя треугольники, каждый из которых должен соотноситься с нужным глифом из текстуры атласа шрифта.

Так делает imgui, равно как и все, кто использует stb_truetypeЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js