• Можно ли рендерить реалистичные изображения без чисел с плавающей запятой?

    • Перевод

    Введение




    «Что получится, если мы заменим числа с плавающей запятой на рациональные числа и попытаемся отрендерить изображение?»

    Такой вопрос я задал себе после размышлений над твитом исследователя и преподавателя компьютерной графики Моргана Макгвайра. Он рассуждал о том, насколько сильно студенты компьютерных наук удивляются, когда впервые узнают, что для хранения привычных нам чисел с плавающей запятой в современных компьютерах нужно идти на компромиссы. И эти компромиссы делают сложными простые задачи, например, проверку принадлежности точки треугольнику. Проблема, разумеется, заключается в том, что проверка нахождения четырёх точек в одной плоскости (копланарности) с помощью определителя или какого-нибудь векторного умножения (а на самом деле это одно и то же) никогда не даст значение, точно равное нулю, чего требуют эти математические методы. Даже если бы настоящие вычисления нахождения на одной плоскости были бы точны, те же компромиссы с точностью почти с вероятностью в 1,0 дали бы ответ, что сами четыре точки не копланарны.

    Это зародило во мне мысль — если допустить, что все входящие данные рендерера (координаты вершин, 3D-преобразования и т.д.) были бы заданы как рациональные числа, то создавали бы все операции, от создания луча, обхода ускоряющей структуры и до пересечения лучей с треугольниками только рациональные числа? Если это было бы так, то мы бы смогли выполнять проверку копланарности совершенно точно! Возможно, вы зададитесь вопросом, почему 3D-сцена, выраженная в рациональных числах должна давать результаты тоже только в рациональных числах…


    Простая сцена, трассировка пути в которой выполнена рациональной арифметикой. Здесь используется система чисел «с плавающей чертой дроби», а не числа с плавающей запятой.
    Читать дальше →
  • Создаём процедурные глобусы планет

    • Перевод
    Искажения, бесшовный шум и как с ними работать.

    image

    Генерируем планету


    Один из простейших способов генерации планеты — использование шума. Если мы решим выбрать его, то у нас есть пара возможных вариантов. Давайте рассмотрим каждый и определим лучший:

    • Шум Перлина (Perlin Noise) — самый простой вариант. Шум Перлина был разработан Кеном Перлином в 1983 году, он имеет пару недостатков — визуальные артефакты и довольно низкая по сравнению с другими вариантами скорость при генерации больших изображений.
    • Симплекс-шум (Simplex Noise) — разработан Кеном Перлином в 2001 году как попытка устранения недостатков шума Перлина; это вполне достойное и быстрое решение, однако обладающее серьёзным недостатком: использование трёхмерного симплекс-шума защищено патентом, что делает его довольно дорогостоящим.
    • Открытый симплекс-шум (Open Simplex Noise) — был разработан KDotJPG с одной простой целью: создать современную и бесплатную версию симплекс-шума, относительно быструю и без искажений.

    Из этих трёх лично я предпочитаю Open Simplex Noise, который использую в своих личных проектах. Стоит заметить, что в текущей реализации OpenSimplexNoise для получения простого доступа к масштабу, октавам и порождающим значениям потребуется дополнительная работа. В Интернете есть множество информации о том, что делает каждый из этих элементов, и я крайне рекомендую вам её изучить. Однако в своей статье я буду говорить не об этом.
    Читать дальше →
    • +36
    • 4,7k
    • 7
  • Nvidia + Nexus 7 + две лупы + коробка = VR шлем

      Добрый день! В интернете уже накопилось достаточное количество статей по сборке DIY VR шлемов и хабр тому не исключение. Но в большинстве случаев при сборке используются смартфоны с относительно не большими дисплеями, что не позволяет получить широкий угол обзора. Сегодня же мы будем собирать шлем на основе Nexus 7, потратив всего 600 рублей в ближайшем гипермарките. Ну и т.к. главный лозунг этой статьи «Меньше теории, больше практики», хватит лишних слов, начинаем!



      Читать дальше →
    • Learn OpenGL. Урок 4.4 — Отсечение граней

      • Перевод
      • Tutorial
      OGL3

      Отсечение граней


      Попробуйте представить куб и подсчитать максимальное число его граней, которое вы можете увидеть с любого направления. Если ваше воображение не излишне живое, то, верней всего, вы придете к выводу, что это число 3. Из какой бы точки или с какого бы направления вы не смотрели на куб, вы никогда не сможете увидеть больше чем три грани. Так к чему же тратить вычислительные мощности на отрисовку оставшихся трех граней, если их не будет видно? Если бы мы могли отбросить их обработку каким-то образом, то сэкономили более чем половину выполнений фрагментного шейдера!
      Читать дальше →
    • Создание игры «35ММ». Постапокалипсис в России



      Всем доброго времени суток, меня зовут Сергей Носков. Сегодня я бы хотел рассказать о создании моего первого полноценного инди-проекта под названием 35ММ, вышедшего в Steam в 2016 году. История конечно давняя, и с тех пор уже было опубликовано несколько статей и интервью на тему проекта, однако, подробного описания процесса разработки не было. Также, практически не были затронуты технические моменты реализации. Об этом, собственно, мы и поговорим.

      Начнем с небольшой предыстории. 35ММ — это адвенчура с видом от первого лица в сеттинге постапокалипсиса на территории России. В народе — симулятор ходьбы. Игра повествует нам историю путешествия двух странников по опустевшим землям, оставленным цивилизацией. Основная часть населения вымерла после страшной болезни, и теперь природа отыгрывает у человечества свои очки. К сожалению, уже не помню точно, как зародилась идея данного проекта, но точно помню, что на тот момент я был ярым фанатом темы сталкера, игр «Метро» и вообще подобного атмосферного антуража. У меня всегда вызывали трепет и восторг пейзажи заброшенных городов, промышленных зон и деревень. Уж не знаю, что это за болезнь такая и как такую любовь объяснить, но нас таких много. В общем-то, подобной страсти по данной теме было достаточно для того, чтобы начать создание своего небольшого игрового мира.
      Читать дальше →
    • Виды моделирования. Основы скульптинга, ретопологии и развертки



      В этой статье мы поговорим про скульптинг, ретопологию и развертку. Но сначала нужно определиться с целью. Что мы будем моделировать, и каким способом?

      Предположим, что мы решили создавать персонажа для игры, но что если это будет окружение, архитектура или что-то еще? Сначала нужно узнать какие бывают способы моделирования и понять какой нам больше подходит.
      Читать дальше →
    • Введение в реверс-инжиниринг: взламываем формат данных игры

      • Перевод

      Введение


      Реверс-инжиниринг незнакомого файла данных можно описать как процесс постепенного понимания. Он во многом напоминает научный метод, только применённый к созданным человеком абстрактным объектам, а не к миру природы. Мы начинаем со сбора данных, а затем используем эту информацию для выдвижения одной или нескольких гипотез. Проверяем гипотезы и применяем результаты этих проверок для их уточнения. При необходимости повторяем процесс.

      Развитие навыков реверс-инжиниринга — в основном вопрос практики. Накапливая опыт, вы выстраиваете интуитивное понимание того, что нужно исследовать в первую очередь, какие паттерны необходимо искать, и какие инструменты удобнее использовать.

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

      Небольшая предыстория


      Всё это началось, когда я пытался воссоздать игру Chip's Challenge на Linux.

      Изначально Chip's Challenge была выпущена в 1989 году для ныне забытой портативной консоли Atari Lynx. Для того времени Atari Lynx была впечатляющей машиной, но она вышла в одно время с Nintendo Game Boy, которая в конце концов захватила рынок.

      Chip's Challenge — это игра-головоломка с видом сверху и тайловой картой. Как и в большинстве таких игр, цель каждого уровня заключается в том, чтобы добраться до выхода. В большей части уровней выход охраняется разъёмом для чипа, который можно миновать, только собрав определённое количество компьютерных чипов.
      Читать дальше →
      • +46
      • 10,2k
      • 8
    • Ко дню космонавтики. Продолжение истории советского баллистического центра

        image
        «Земля слушает». Нестеров.В.Д. 1965 год

        Моя прошлая статья с, возможно, претенциозным названием вызвала оживленную дискуссию. Чтобы дать ответы на часть вопросов, я решил выложить письмо Платонова полностью, без какой-либо редактуры. Тем более что оно представляет исторический интерес. Конечно, это письмо было ответом на мое. Но все вопросы, что я задавал, хорошо читаются из ответов.
        Читать дальше →
        • +49
        • 7,1k
        • 6
      • Проектирование на основе «отражения»

        Всем привет. Недавно задался вопросом: «А что, если… ?». В результате родилась вот такая тема-идея: Проектирование на основе «отражения».

        Этой самой идеей я и хочу поделиться с Вами в данной публикации.

        image
        Читать дальше →
      • Ускоряем работу нейросетей с помощью хеширования

        • Перевод

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




        В последние годы компьютерная индустрия была занята, пытаясь ускорить вычисления, требуемые для искусственных нейросетей – как для обучения, так и для получения выводов её работы. В частности, довольно много усилий было положено на разработку специального железа, на котором можно выполнять эти вычисления. В Google разработали Tensor Processing Unit, или TPU, впервые представленный публике в 2016-м. Позже Nvidia представила V100 Graphics Processing Unit, описывая его, как чип, специально разработанный для обучения и использования ИИ, а также для других высокопроизводительных вычислительных нужд. Полно и иных стартапов, концентрирующихся на других типах аппаратных ускорителей.
        Читать дальше →
        • +13
        • 3,1k
        • 7
      • Ищем и скачиваем непопулярные и старые файлы в интернете

          Преимущественно медиафайлы. На полном серьезе, без шуток.

          Введение

          Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

          Попытка скачать хотя бы один файл
          Увы, частая ситуация в попытке хоть что-то скачать

          Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
          Читать дальше →
          • +211
          • 97,7k
          • 72
        • Dwarf Fortress отказывается от текстовой графики, но не от своей сути

          • Перевод

          Переход разработчика от ASCII к двумерной графике обусловлен не просто желанием продать больше копий – есть ещё желание улучшить игру и познакомить с ней более широкую аудиторию




          Игру Dwarf Fortress сложно отнести к какой-либо категории. Это и симулятор, и RPG, и rogue-like. В ней автоматически создаётся двумерный мир, а игрок должен управлять строительством крепости и помогать дварфам выживать в ней. В игре встречаются гоблины, боги, загадки, квесты, гуси, бухло, кошки и прочее – и все эти элементы непредсказуемо взаимодействуют друг с другом. После одного из обновлений игроки начали замечать, что по округе шляются пьяные кошки, и периодически блюют. Причина была в том, что в обновлении появились таверны, из-за чего на улицах начало появляться пролитое пиво, по которому ходили кошки. Когда они потом умывались, алкоголь попадал к ним в организм, и они пьянели. Настолько глубока симуляция этого мира.
          Читать дальше →
        • Основы движков JavaScript: оптимизация прототипов. Часть 1

          • Перевод
          Всем привет. Все меньше времени остается до запуска курса «Безопасность информационных систем», поэтому сегодня мы продолжаем делиться публикациями, приуроченными к запуску данного курса. Кстати, нынешняя публикация является продолжением вот этих двух статей: «Основы движков JavaScript: общие формы и Inline кэширование. Часть 1», «Основы движков JavaScript: общие формы и Inline кэширование. Часть 2».

          В статье описаны ключевые основы. Они являются общими для всех движков JavaScript, а не только для V8, над которым работают авторы (Бенедикт и Матиас). Как JavaScript разработчик могу сказать, что более глубокое понимание того, как работает движок JavaScript поможет разобраться в том, как писать эффективный код.

          Читать дальше →
          • +18
          • 3,5k
          • 4
        • Трансляция посадки на Луну [22:00МСК 11 апр 2019]

            image
            Фото nytimes.com

            Наступающий вечер четверга перед Днем Космонавтики выдался на редкость удачным! Любителей межпланетных путешествий ждет не только первый коммерческий запуск Falcon Heavy, но и настоящая посадка на Луну!

            Герой этого поста — израильская некоммерческая организация SpaceIL, созданная в 2011 году, для участия в конкурсе Google Lunar X PRIZE (GLXP), предлагавшего приз за посадку частной автоматической межпланетной станции на Луну. Несмотря на то, что конкурс GLXP закончился не выявив победителя, SpaceIL сумела завершить постройку лунного зонда Beresheet и отправить его к Луне.

            21 февраля 2019 года аппарат стартовал на ракете-носителе Falcon 9 и выведен на орбиту с апогеем 60 тысяч км. C помощью собственной двигательной установки Beresheet поднял апогей орбиты так, чтобы быть захваченным гравитационным притяжением Луны. На это ушло почти 8 недель. Перед посадкой он сделает два витка вокруг Луны. И сегодня вечером по Москве мы сможем наблюдать за посадкой Beresheet на Луну в прямом эфире!

            Читать дальше →
          • Сергей Зонов: «Первый „Спектрум“ я сделал потому, что мне было интересно»



              Музей DataArt существует 10 лет, некоторые экспонаты мы уже представляли в виде постеров. Коллекция продолжает расширяться, но теперь мы решили дополнить ее интервью с людьми, повлиявшими на историю ИТ. Это первый из серии исторических материалов, которые будут выходить в нашем блоге регулярно.

              В первой половине 1980-х популярным компьютером в Европе был ZX Spectrum. Когда он пришел в СССР, местные умельцы начали его копировать, перерабатывать и улучшать. Одним из тех, кто сделал свой вариант «Спектрума», был Сергей Зонов. По его схемам собраны десятки тысяч компьютеров.
              Читать дальше →
            • Кажется, эта квантовая машина противоречит стремлению Вселенной к беспорядку

              • Перевод

              Один из первых квантовых симуляторов продемонстрировал загадочное явление: ряд атомов, который периодически возвращается к упорядоченному состоянию. Физики наперегонки пытаются объяснить происходящее.




              Тающее мороженое не подвержено спонтанному замерзанию. Однако один из квантовых симуляторов постоянно возвращается в упорядоченное состояние после достижения системой равновесия.

              Пройдёт достаточно времени, и даже в самой прибранной комнате возникнет беспорядок. Одежда, книги и бумаги покинут своё упорядоченное состояние и рассеются по полу. И, что раздражает, эта тенденция к беспорядку отражает закон природы: беспорядок стремится расти.

              Если, к примеру, вы вскроете баллон аквалангиста под давлением, молекулы воздуха внутри него вылетят наружу и разлетятся по комнате. Поместите кубик льда в горячую воду, и молекулы воды, замёрзшие в упорядоченной кристаллической решётке, разорвут свои связи и рассредоточатся. При смешивании и распределении система стремится к равновесию с окружающей средой, что называется термализацией.
              Читать дальше →
            • Прототип за 1 день вместо 2-3 недель: 3D-печать в концерне «Океанприбор»



                Литейная технология подразумевает переход металла из одного агрегатного состояния
                в другое – из твердого в жидкое и опять в твердое. Такому же принципу отвечает и метод
                литья пластиков. Опыт «Океанприбора» хорошо иллюстрирует, как аддитивные технологии помогают решать проблемы в этой области.
                Читать дальше →
                • +14
                • 2,6k
                • 4
              • Трансформатор Теслы на плате площадью в один квадратный дюйм

                • Перевод


                Увидев заголовок статьи «One inch tesla coil», я поначалу подумал, что речь идёт о трансформаторе Теслы высотой в один дюйм. Оказалось, что он несколько больше, но выполнен на плате площадью в один квадратный дюйм — таковы условия конкурса. Но даже это достаточно интересно, чтобы взяться за перевод.
                Читать дальше →
              • Миниатюрный функциональный аналог декатрона для реплики Harwell Dekatron Computer и не только

                • Перевод
                • Tutorial

                Разрабатывая этот функциональный аналог декатрона, автор преследовал две цели: поучаствовать всё в том же конкурсе конструкций на платах площадью в один квадратный дюйм, а также применить множество таких модулей в проекте WITCH-E по воссозданию Harwell Dekatron Computer, также известного как WITCH (Wolverhampton Instrument for Teaching Computing from Harwell) на современных компонентах. Но можно собирать на таких «декатронах» и более простые схемы.
                Читать дальше →
                • +41
                • 5,1k
                • 4