Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
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
Топ
Рейтинг
Избранное