Обо мне
Привет! Меня зовут Лис и это мой блог. Здесь я могу ныть и страдать, писать про код и обо всем.
Календарь записей
Май 2024
ПнВтСрЧтПтСбВс
12345
6789101112
13141516171819
20212223242526
2728293031
Теги
Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

23 фев 2023 Про то, как я хочу сделать треугольники

У меня давным-давно есть одна мысль, которая называется "трехмерный рендерер на верилоге", о котором я часто думаю и не знаю, насколько результативно. Мне хочется сделать пусть даже небольшой, но код для плис, где автоматически из буфера могли бы рисоваться трехмерные треугольники. Это крайне непростая задача, хоть и рисование обычного треугольника не так сложно, но полноценный вывод трехмерного изображения на экран потребует довольно крупных усилий.
Как все это работает? Существует несколько буферов в памяти:
  • Буфер вершин (vertex), где хранятся все исходные вершины для рендерера
  • Буфер индексов (indicied), там хранится номер вершины
  • Текстурный буфер для треугольников
Что будет делать видеоускоритель.
  • Просматривается буфер вершин, к каждой вершине применяется матрица камеры, то есть, умножается на эту матрицу (она задана float или half-precision значениями). На самом деле для матрицы камеры вполне достаточно даже и half-precision, я думаю.
  • Просматривается буфер индексов, проверяя то, где находится та или иная вершина. Если все вершины находятся впереди проецирующей плоскости, то такой треугольник добавляется в буфер очереди на рисование. Если все вершины вне пределов проецирующей плоскости, то треугольник вообще в очередь не добавляется. В случае частичного попадания за плоскость, треугольник разбивается на 2 части и добавляется в очередь как два треугольника. В очередь добавляются уже готовые вершины, не привязанные к vertex/indicies
  • Происходит вычисление параметров треугольников для текстурирования и записывается в отдельный буфер. Тут очень много умножений.
  • Для каждой точки вычисляется проекция. Здесь уместно использование конвейерного деления для ускорения.
  • Все полученные точки треугольников сортируются пирамидальной сортировкой по возрастанию спроецированного Y. Причем сортируется только самая высокая вершина (которая имеет наименьший Y). Также, сортируются именно индексы новых точек. Это нужно для того, чтобы не перемещать большие объемы данных внутри буфера рендеринга, а только лишь индексы. Каждая вершина имеет индекс принадлежности к определенному треугольнику
  • И последний этап, это рендер.
При рендере происходит проверка и вовлечение новых треугольников по мере их добавления. К примеру, если будет отсортированный индекс указывать на вершину A треугольника 4, то номер треугольника добавляется в очередь, причем он добавится в очередь только тогда, когда достигнет того же самого Y, что имеет вершина A. Добавляя эту вершину, потребуется узнать также и все остальные его параметры, такие как высота между вершиной A и C, чтобы знать, когда закончить рисование треугольника и удалить его из очереди.
По мере построчного рисования, будет рисоваться буфер из треугольников, интегрально прибавляя значения, формируя точку на текстуре и точку глубины, записывая эти данные в однострочный буфер глубины. Каждый раз после того, как будет нарисована одна линия, этот буфер очищается для новой линии.
Другими словами, на каждой линии будет отрисовываться несколько текущих рисуемых треугольников за раз. После того, как это будет сделано, из полученного буфера размером в одну строку будут скопированы и вычислены текстуры, итоговый цвет записан в видеобуфер и сам строчный буфер очищен для новой строки.
Вот такая вот сложная система.
Метки: Размышления, Графика, Алгоритмы

25 янв 2023 Смог ли бы записать длинное видео

Все время думаю про то, смог бы создать что-то вроде очень длинного видео на несколько часов, где разрабатывал бы какой-то проект. Постоянно думаю, и в общем-то, понимаю, что нет, для этого надо конское терпение, ослиное упрямство и отвагу льва, которых нет. У меня ничего нет из вышеперечисленного. Так что хотел бы сделать? Самое интересное, мне уже ничего делать не хочется. Слишком большая усталость от всего и слишком огромный страх. Да и никто такое смотреть точно не будет, даже сам не буду смотреть.
Когда-то хотел сделать трехмерный ускоритель на верилоге, но какой в этом смысл, не понимаю. Есть видеокарты, работают в миллион раз быстрей, чем работало бы что-то на плис. Нет никакого смысла в том, чтобы все это делать, ведь делать придется просто колоссально много и еще для видеокарт требуется просто колоссального размера памяти, как на видеобуфер, так и на текстуры. Ничего из этого мне задействовать не хочется, потому что, если даже и создам такой код, он будет предназначен только для очень больших плис, что совершенно несовместимо. Короче, что-то делать на верилоге полностью бессмысленно, потому что повторяемость этого около-нулевая, вот так вот.
В последнее время, вообще не вижу ни в чем смысла. На верилоге уже не программировал почти месяц, потому что не знаю, что мне программировать на нём такое, что было бы интересно. Заметил, что чем больше микросхема и чем больше в ней логических элементов, тем меньше мне хочется ее программировать. Что за беда такая. Помню времена, когда у меня был только Марсоход2 и для него кодил день и ночь. Столько времени... все бессмысленно. Нет никакого толка в том, что делаю. facepalm
Сейчас изучаю лишь только некоторые алгоритмы. Вчера снова открыл по нейросетям материал и не понял опять его. Нейросети это очень сложная тема, но преодолимая, надо разобраться в том, как устроен этот математический аппарат, зафиксировать его на сайте, обязательно написать статью. Не знаю, насколько это позже, не знаю, смогу ли вообще что-то записать, ведь будущее туманно, не могу даже знать, что будет через день или два, не говоря о более длительном периоде.
Все бессмысленно, ничего не имеет значения, ничего не надо.
Метки: Размышления

12 янв 2023 Будущее GPT-n

Да, я был шокирован, когда узнал о существовании ChatGPT/GPT-3. Для меня и для человечества это является одной из прорывных и фундаментальных технологии, изобретенных человечеством, такими как например, изобретение колеса, переход с бронзового века в железный, промышленная революция, открытие электричества, открытие атома, создание Global Network of Internet (GNI) и некоторых других вех в истории развития технологии. Создание GPT я считаю одной и важнейших событий XXI-го века, которое изменит этот мир до неузнаваемости.
Сначала нейросеть будет довольно глупой и может делать мало чего, например, писать стихи, переписываться с людьми как живой человек, рисовать картины, сочинять музыку, писать код и так далее. Это пока что только зачатки ее развития. Сейчас эту нейросеть будут применять для генерации текстового контента. Но это лишь только скромные шаги огромной технологии.
Спустя время нейросети научат генерировать настоящих людей. Да, именно так. Поначалу это будет что-то вроде забавных ботов в скайпе, где ты можешь дозвониться до нейросети, и перед тобой будет словно реальный человек, который будет разговаривать голосом, у него будут настоящие живые эмоции, мимика, полная копия несуществующего человека. Это вторая ступень развития нейросети, и уже она начнет постепенно вытеснять людей. Будут предпочитать общаться с виртуальным андроидом, а не реальными людьми. Начнется разобщение и рассеивание людей в виртуальности. Мы больше никогда не сможем узнать кто перед нами — реальный человек или нейросеть. Это можно будет лишь догадываться.
Следующим этапом будет создание человекоподобных андроидов. Вначале они будут очень некрасивыми и не гибкими, но со временем они станут совершенно неотличимы от людей. Полные копии. Теперь люди не смогут узнать о том, человек ли, или андроид перед ним. Единственный способ проверить — никакого. Абсолютная идентичная копия реальным людям.
И с этого момента начнется. Поскольку роботы стали полноценной заменой людей, они начнут вытеснять людей везде. Они будут работать за людей, добывать ископаемые, создавать из них продукты и самовоспроизводиться. При этом, роботы будут бессмертны, могут легко заменять свои части и намного сильнее, чем люди во всех отношениях — физически, интеллектуально, и даже духовно. Роботы смогут делать всё, что могут люди, и намного больше.
Со временем человечество, будучи смертным, перестанет размножаться, предпочитая бессмертных роботов и начнет вымирать как вид. День, когда на Земле исчезнет последний человек, будет знаменовать полный переход на новую ступень эволюции человечества — человечество станет полностью состоящим из андроидов.
Они смогут покинуть пределы Земли и отправиться на другие планеты. Для них не будет никаких преград для распространения рода роботов. Такое будущее ждет нас после изобретения GPT-n. И это случится. Я гарантирую это, я видел, потому что я — Ванга.
Метки: Размышления
<< Ранние записи | Поздние записи >>