Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Unreal Engine 5 задает новую планку игровой реалистичности

Время на прочтение3 мин
Количество просмотров90K


Компания Epic Games впервые продемонстрировала возможности игрового движка Unreal Engine 5. Одной из главных целей его создания было достижение исключительной фотореалистичности, сравнимой только с AAA-блокбастерами и самой жизнью.

Unreal Engine 5 поддерживает ПК, Mac, консоли текущего и нового поколения, iOS и Android. Полноценный релиз движка ожидается в следующем году.

В новом движке выделяются две ключевые области:

  • Первая ― полностью динамическое глобальное освещение, мгновенно реагирующее на изменение сцены. Теперь нет необходимости ограничиваться игрой со статичным миром ― можно проводить итерации над ним чрезвычайно быстро. Новая система освещения носит название Lumen.
  • Вторая ― виртуализированная геометрия. С UE5 художникам не обязательно задумываться о подсчете полигонов или о том, сколько места в памяти системы они займут. Можно использовать ассеты кинематографичного качества в движке напрямую, загружать модели из ZBrush и данные фотограмметрии, не тратя время на оптимизацию уровней детализации или понижение качества для того, чтобы вписаться в нужную частоту кадров. Эта технология получила название Nanite.

Теперь рассмотрим все нововведения на примере игрового демо для PlayStation 5.
Всего голосов 68: ↑67 и ↓1+89
Комментарии250

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 42 и 43

Время на прочтение5 мин
Количество просмотров3.3K

предыдущие главы


42. Еще про несоответствие данных


Предположим, вы разработали систему распознавания речи, которая очень хорошо работает на обучающей выборке и на «выборке для валидации обучающей». Однако у нее низкое качество на валидационной выборке: очевидно, вы имеете дело с проблемой несоответствия данных. Что можно сделать в этом случае?


Я бы порекомендовал следующее: (i) Постараться понять, чем именно различаются распределения данных обучающей и валидационной выборок. (ii) Найти как можно больше обучающих примеров, которые соответствуют примерам валидационной выборки и на которых алгоритм ошибается.

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Телепортируем процесс на другой компьютер! 

Время на прочтение12 мин
Количество просмотров14K
Однажды коллега поделился размышлениями об API для распределённых вычислительных кластеров, а я в шутку ответил: «Очевидно, что идеальным API был бы простой вызов telefork(), чтобы твой процесс очнулся на каждой машине кластера, возвращая значение ID инстанса». Но в итоге эта идея овладела мной. Я не мог понять, почему она такая глупая и простая, намного проще, чем любой API для удалённой работы, и почему компьютерные системы, кажется, не способны на такое. Я также вроде бы понимал, как это можно реализовать, и у меня уже было хорошее название, что является самой трудной частью любого проекта. Поэтому я приступил к работе.

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

На видео показано, что рендеринг на 64-ядерной VM в облаке завершается за 8 секунд (плюс 6 секунд на телефорк туда и обратно). Тот же рендеринг локально в контейнере на моём ноутбуке занимает 40 секунд:

Всего голосов 53: ↑53 и ↓0+53
Комментарии12

Как мы написали крутейший в мире автопилот для маневрового тепловоза

Время на прочтение8 мин
Количество просмотров34K
image
Один из ранних прототипов, использовавшихся для тестов.

Сразу скажу: крутейший он потому, что единственный из доведённых до опытной эксплуатации автопилотов третьего уровня. А единственный доведённый до опытной эксплуатации он потому, что без наработок по автопилотированию трамваев и чего-то ещё в этот рынок соваться просто нет смысла. Тепловозов довольно много, задача интересная и важная для производств, но не окупается как отдельная. Мы знаем про наработки на эту тему у НИИАС и Siemens, но не знаем, чтобы их трамваи где-то ездили в городской среде, а локомотивы перевозили реальные грузы.

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

Там проблема в том, что движение тепловоза регламентируется множеством сигналов, положениями людей и объектов инфраструктуры, а также командами диспетчера. Машинист должен оставаться предельно внимательным всю смену (примерно 12 часов), в том числе и ночью. В результате он рано или поздно либо пропускает что-то и попадает в аварию, либо кого-то сбивает. Это жизнь, травмы на транспорте случаются, но конкретно в этих ситуациях можно позволить себе ставить на тепловозы радары, потому что встаёт не просто один тепловоз, а целое крупное предприятие. Надолго. Предотвращение столкновений и автопилот могут сильно снизить нагрузку на человека в кабине, и тогда производства не будут вставать.

Модуль на картинке — один из ранних прототипов блока камер, с которого мы начинали. С этого момента он претерпел значительные изменения, но всегда интересно посмотреть, с чего всё начиналось. Сейчас расскажу, как вообще роботы способны ориентироваться на станциях, потому что задача вообще-то нетривиальная.
Всего голосов 117: ↑115 и ↓2+154
Комментарии114

Имитируем иридисценцию: шейдер CD-ROM

Время на прочтение27 мин
Количество просмотров8K
Этот туториал посвящён иридисценции. В этом туториале мы исследуем саму природу света, чтобы понять и воссоздать поведение материала, создающего цветные отражения. Туториал предназначен для разработчиков игр на Unity, однако описанные в нём техники можно запросто реализовать на других языках, в том числе в Unreal и на WebGL.


Туториал будет состоять из следующих частей:

  • Часть 1. Природа света
  • Часть 2. Усовершенствуем радугу — 1
  • Часть 3. Усовершенствуем радугу — 2
  • Часть 4. Разбираемся с дифракционной решёткой
  • Часть 5. Математика дифракционной решётки
  • Часть 6. Шейдер CD-ROM: дифракционная решётка — 1
  • Часть 7. Шейдер CD-ROM: дифракционная решётка — 2
Всего голосов 19: ↑18 и ↓1+17
Комментарии10

Написание шейдеров в Unity. GrabPass, PerRendererData

Время на прочтение9 мин
Количество просмотров29K
Привет! Я хотел бы поделиться опытом написания шейдеров в Unity. Начнем с шейдера искажения пространства (Displacement/Refraction) в 2D, рассмотрим функционал, используемый для его написания (GrabPass, PerRendererData), а также уделим внимание проблемам, которые обязательно возникнут.

Информация пригодится тем, кто имеет общее представление о шейдерах и пробовал их создавать, но мало знаком с возможностями, которые предоставляет Unity, и не знает с какой стороны подступиться. Загляните, возможно, мой опыт поможет вам разобраться.


Читать дальше →
Всего голосов 53: ↑53 и ↓0+53
Комментарии9

Реализация пула объектов на языке C#

Время на прочтение8 мин
Количество просмотров55K
Доброго времени суток!
В этой статье я расскажу, как повысить производительность многопоточного (и не только) C#-приложения, в котором часто создаются объекты для «одноразовой» работы.
Немного про многопоточность, неблокирующую синхронизацию, использование встроенного в VS2012 профилировщика и небольшой бенчмарк.
Читать дальше →
Всего голосов 68: ↑63 и ↓5+58
Комментарии16

CaptureManager SDK

Время на прочтение6 мин
Количество просмотров7.5K
Эта статья представляет мой «Hobby» проект — CaptureManager для настольной платформы Windows. Этот проект является простым набором функционала (SDK) для включения поддержки широкого набора видео и аудио источников в разрабатываемое приложение.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии4

Средства построения графиков для .NET

Время на прочтение4 мин
Количество просмотров103K

Не так давно пришлось столкнуться с тривиальной задачей — найти решение, которое позволит рендерить рисунки графиков для .NET. Сразу оговорюсь, что меня интересовали только линейные графики. Камнем преткновения, который подтолкнул к переделыванию уже существующего решения (это были графики, встроенные в rdlc отчеты), было быстродействие. В целом, к искомому решению были предъявлены такие требования:
  1. Необходимо оставить данную оптимизацию незамеченной для конечного пользователя, следовательно, решение должно быть широко настраиваемым, чтобы, в конечном счете, выглядеть так же, как и предшественник.
  2. Работать быстро (ну понятно, пользователи не любят ждать).
  3. Желательно, быть бесплатным или с открытым исходным кодом. Покупка не стала бы большой проблемой, найди я отличное платное решение, но начать лучше с open source.

Интересно
Всего голосов 30: ↑28 и ↓2+26
Комментарии24

Некоторые полезные средства настройки графиков (plot) в MATLAB

Время на прочтение3 мин
Количество просмотров65K
Недавно, в очередной раз проверяя домашние работы своих студентов, я загорелся желанием автоматизировать этот процесс. Задание состояло в составлении рабочей таблицы девиации магнитного компаса и построения кривой девиации.

Входными данными служили показания магнитного компаса (МК), синхронно наблюдаемые показания гирокомпаса (ГК), поправка ГК и значение магнитного склонения для района, в котором проходили измерения.
Читать дальше →
Всего голосов 5: ↑2 и ↓3-1
Комментарии1

Изменение кодировки git репозитория

Время на прочтение3 мин
Количество просмотров11K
Привет. В силу специфики, на работе используется Linux с KOI8-R, все коммиты в git репозиторий осуществлялись в локальной кодировке. Через некоторое время было принято решение перекодировать репозиторий в UTF-8. В этой статье я хочу обсудить технологию изменения кодировки существующего git репозитория, а заодно и исправления некоторых ошибок допущенных в определенных коммитах.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии3

Используйте GIT при документировании

Время на прочтение7 мин
Количество просмотров35K
Иногда не только сама документация, но и процесс работы над ней может быть критичным. Например, в случае проектов львиная часть работы связана именно с подготовкой документации, и неправильный процесс может привести к ошибкам и даже к потере информации, а, следовательно, и к потере времени и выгоды. Но даже если эта тема и не является центральной в вашей работе и находится на периферии, то все равно правильный процесс может улучшить качество документа и сэкономить вам время.

Изложенный здесь подход, с примером конкретной реализации, имеет низкий порог вхождения. Технически, уже завтра вы можете начать работать по-новому.
Читать дальше →
Всего голосов 27: ↑24 и ↓3+21
Комментарии30

Паттерны для новичков: MVC vs MVP vs MVVM

Время на прочтение6 мин
Количество просмотров794K
Добрый день, уважаемые коллеги. В этой статье я бы хотел рассказать о своем аналитическом понимании различий паттернов MVC, MVP и MVVM. Написать эту статью меня побудило желание разобраться в современных подходах при разработке крупного программного обеспечения и соответствующих архитектурных особенностях. На текущем этапе своей карьерной лестницы я не являюсь непосредственным разработчиком, поэтому статья может содержать ошибки, неточности и недопонимание. Заинтригованы, как аналитики видят, что делают программисты и архитекторы? Тогда добро пожаловать под кат.
Читать дальше →
Всего голосов 45: ↑40 и ↓5+35
Комментарии36

Генерируем на .Net

Время на прочтение12 мин
Количество просмотров27K
Генерировать код на .Net можно несколькими способами:
  • Reflection Emit. Доступен с версии .Net 1.0.
  • CodeDom. Позволяет создавать динамический код из представления CodeDom или напрямую из исходников, написанных на одном из высокоуровневых языков, например C#, VB или JScript. Доступен с версии .Net 1.0.
  • Expression trees. Доступен с версии .Net 3.5. Позволяет создавать динамический код из представления Expression.

В этой статье я хочу рассказать про технику кодогенерации с использованием Reflection Emit.
Подробности под катом
Всего голосов 33: ↑28 и ↓5+23
Комментарии16

Четыре способа извлечения значений из скрытых полей в C#

Время на прочтение4 мин
Количество просмотров39K
Добрый день. Не так давно на хабре проскакивала статья, в которой показывалась возможность обращения к закрытым полям объекта из другого экземпляра того же класса.

public class Example
{
  private int JustInt;

  // Some code here

  public void DoSomething(Example example)
  {
    this.JustInt = example.JustInt; // Вполне валидная строка, некоторых удивляет
  }
}

Почему бы не пойти дальше, и не забирать данные из скрытых полей иных классов?
Всего голосов 20: ↑18 и ↓2+16
Комментарии27

Поиск в ширину (BFS) на С#

Время на прочтение4 мин
Количество просмотров47K
Сразу скажу, что статья больше подойдёт людям, желающим познакомиться с поиском в ширину, и новичкам, осваивающим программирование. К тому же, когда мне понадобился этот метод, я нигде не нашёл наглядного рабочего примера на C#.

Устно об алгоритме:

Разберём алгоритм на произвольном графе (для простоты примера рёбра не имеют вес).

Последовательность алгоритма заключается в следующим:

1. Выбирается произвольно вершина графа (отмечается серым).
2.Последовательно рассматриваются вершины (так же отмечаются серым), связанные с нашей первой вершиной (после этого она становится не серой, а чёрной).
3. Выполняется пункт 2 для отмеченных (серых) вершин до тех пор, пока все вершины не будут закрашены чёрным.


Читать дальше →
Всего голосов 16: ↑6 и ↓10-4
Комментарии3

Графы для самых маленьких: DFS

Время на прочтение3 мин
Количество просмотров179K
В этой статье хотелось бы рассказать об одном из самых распространенных алгоритмов на графах — об обходе в глубину — на примере решения задачи о нахождении пути сквозь лабиринт. Всем, кому это интересно — добро пожаловать под кат!

Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии39

Жадные алгоритмы

Время на прочтение4 мин
Количество просмотров192K
ДеньгиДоброго времени суток, хабр! Сегодня я бы хотел рассказать про жадные алгоритмы.

Есть много методов решения тех или иных задач: динамическое программирование, перебор. Не менее известными и довольно распространенными являются жадные алгоритмы.

Думаю, каждый программист в своей жизни хотя бы раз написал жадину, может быть, даже не задумываясь об этом. Что же это такое? Добро пожаловать под кат.
Читать дальше →
Всего голосов 106: ↑100 и ↓6+94
Комментарии17

Как искусственный интеллект меняет науку

Время на прочтение12 мин
Количество просмотров10K

Новейшие алгоритмы ИИ разбираются в эволюции галактик, подсчитывают функции квантовых волн, открывают новые химические соединения, и прочее. Есть ли что-нибудь в работе учёных, что не получится автоматизировать?




Никакой человек или даже группа людей не может поспевать за водопадом информации, производимой огромным количеством экспериментов по физике и астрономии. Некоторые из них оставляют после себя терабайты данных ежедневно, и этот поток лишь увеличивается. Антенная решётка Square Kilometre Array, радиотелескоп, который планируют включить в середине 2020-х, будет выдавать ежегодно объём данных, сравнимых со всем интернетом целиком.

Это наводнение данных заставило многих учёных обратиться за помощью к искусственному интеллекту (ИИ). С минимальным участием человека такие ИИ-системы, как нейросети – симулированные на компьютере сети нейронов, имитирующие работу мозга – способны пробираться сквозь горы данных, находя аномалии и распознавая последовательности, которые люди никогда бы не заметили.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии5

ИИ в медицине: науки о жизни и открытие лекарств

Время на прочтение18 мин
Количество просмотров6.7K
Привет, Хабр! Сегодня я покажу тебе свой перевод одного замечательного интервью с Александром Жаворонковым. Надеюсь тебе будет так же интересно читать, как и мне переводить.

image
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии10

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность