CryptoAgents: коллекция арт-объектов на смарт-контракте Арт на смарт-контракте, как @cryptopunksnfts и @autoglyphs, является священным граалем крипто-арта CryptoAgents следует тому же принципу - каждый пиксель полностью хранится на @ethereum Давайте погрузимся в то, как работает CryptoAgents 🧵
1/ РЕГИСТРАЦИЯ ВИЗУАЛЬНЫХ АКТИВОВ Все визуальные активы сначала регистрируются в смарт-контракте CryptoAgents на Solidity, что позволяет нам создать 10 000 агентов. 3 основные функции: - addDNA(): Инопланетянин, Конг и т.д. - addItem(): Глаза, Голова и т.д. - setPalettes(): Леденец, Доброта и т.д.
2/ ОНЧАЙН ИСКУССТВО РЕНДЕРИНГ Эта функция работает следующим образом: - Получает данные о позиции для каждого признака (ДНК, голова и т.д.) - Соответствует каждому признаку его цветовой палитре - Генерирует карту 24×24 пикселя (2304 байта), где каждый пиксель имеет значения RGBA - Объединяет все признаки в один массив пикселей
Интересная часть заключается в том, как обрабатываются данные о чертах: - Каждая черта имеет позиции, которые ссылаются на индексы палитры - Они обрабатываются группами по 5 байт (x, y, r, g, b) - Эти данные собираются в один буфер пикселей RGBA размером 24×24
3/ ГЕНЕРАЦИЯ SVG Вот как мы реализовали функцию, которая возвращает каждого CryptoAgent в виде SVG: - Получает данные пикселей из функции рендеринга искусства - Проходит по каждому пикселю - Для непрозрачных пикселей (alpha > 0) создает SVG-прямоугольник с цветом - Объединяет все прямоугольники в полный SVG - Возвращает URI данных с содержимым SVG SVG использует прямоугольники размером 1×1 для каждого пикселя, расположенные по правильным координатам x,y.
4/ ОПТИМИЗАЦИЯ АССЕМБЛЕРА - Мы используем ассемблер для манипуляции памятью, чтобы сэкономить газ - Мы также используем собственный формат для эффективного кодирования значений ERG
3,22K