Pull to refresh
1
0

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

Send message

Разница между фальшивыми и истинными смещениями в 3D-графике

Reading time12 min
Views19K
image

Bump maps (рельефные текстуры), Normal maps (карты нормалей), Displacement и Vector Displacement — вероятно, вы уже сталкивались хотя бы с одним из этих терминов. Несмотря на то, что о них уже есть много информации, похоже, многие путают их различия и последствия использования разных типов карт. В статье я расскажу о том, какие проблемы могут вызывать эти карты.

Все четыре типа текстур имеют одинаковое предназначение — они позволяют добавить на поверхность модели дополнительные детали, используя для этого разные способы. Эти способы можно разделить на две категории, которые я буду называть истинными смещениями (True Displacements) и фальшивыми смещениями (Fake Displacements). Истинные смещения перемещают вершины, а фальшивые стремятся достичь того же внешнего вида без изменения геометрии. Пока я сосредоточусь только на различиях между двумя категориями, а не буду анализировать каждую карту по отдельности.

image

В общем случае, истинные смещения обеспечивают более чёткие результаты, но сильно увеличивают время рендеринга.
Total votes 19: ↑19 and ↓0+19
Comments4
Привет Хабр! Меня зовут Максим, я web-разработчик и это моя история про то, как я случайно нашел своего первого иностранного заказчика через приложение для знакомств. И про то, как можно оформить столь неформально начатые отношения, не разбираясь в международном законодательстве, налогообложении и всём таком.
Подробности — под катом
Total votes 53: ↑23 and ↓30+8
Comments44

Адаптивная фоновая подсветка для телевизора на Raspberry Pi – аналог Ambilight

Reading time21 min
Views47K
image

Это телевизор с диагональю 50” и 37 RGB точками адаптивной фоновой подсветки по верхней и боковым сторонам экрана. Как сделать аналогичную адаптивную фоновую подсветку для любого экрана или ТВ — тема избитая, но вполне актуальная по ряду причин.

Во-первых, все меняется. Пару лет назад еще не было проекта, работающего без программных или аппаратных костылей. Во всяком случае мне не встречались такие публикации. Те, что описаны на просторах рунета – либо потеряли актуальность в связи с устареванием программных или аппаратных платформ, либо реализуют данную технологию только применительно к мониторам, подключенным к ПК.

Во-вторых, на рынке нет и не будет самсунгов, сони, элджи и прочих ТВ с поддержкой данной технологии, так как она запатентована на многие годы вперед компанией Philips. И наконец — все решения «из коробки», доступные на али и иже с ним – имеют ряд ограничений в гибкости настроек и адаптации к размеру кадра видеоконтента, корректировок цветовой гаммы и т. д, являясь при этом всего лишь аппаратным костылем, анализирующим внешний сигнал и работающий только на формирование подсветки.
Total votes 35: ↑35 and ↓0+35
Comments38

Расширяем возможности UObject в Unreal Engine 4

Reading time15 min
Views30K

Всем привет! Меня зовут Александр, я уже более 5 лет работаю с Unreal Engine, и почти все это время — с сетевыми проектами.

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



На самом деле, статью я написал скорее как справочник. Большую часть информации крайне сложно найти в документации или сообществе, а тут можно быстро открыть ссылку и скопировать нужный код. Решил заодно поделиться и с вами! Статья ориентирована на тех, кто уже немного знаком с UE4. Будет рассмотрен С++ код, хотя знать его не обязательно. Можете просто следовать инструкциям, если вам нужно то, о чем пойдет речь. Более того, не обязательно копировать все, вы можете вставить код из раздела с нужными свойствами и он должен работать.

Читать дальше →
Total votes 38: ↑36 and ↓2+34
Comments7

Зрение Хищника: эффект термального видения

Reading time4 min
Views7.1K

В процессе поисков наилучшей реализации термального шейдера я наткнулся на matcap-шейдер, опубликованный пользователем bgolus в форумах Unity — неплохая отправная точка.

Я сильно изменил его, чтобы модели выглядели более целостными под разными углами, привязав cap к вершинам и нормалям. То есть по сути это уже не matcap, но мне всё равно хотелось бы отдать должное этому шейдеру, с которого всё началось.


Будем двигаться по порядку, сначала вершинная функция:
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments0

UE4 и мобильная разработка: мифы и реальность

Reading time14 min
Views72K


Широко распространено мнение, что Unreal Engine 4 — слишком «тяжелая» технология для мобильных игр. В то же время число проектов, выпущенных на этом движке в мобильных сторах, растёт с каждым днём.


Почему все больше разработчиков выбирают для своих проектов UE4? С какими сложностями вы можете столкнуться при работе над игрой для мобильных устройств? Какие подходы и пайплайны стоит использовать, а чего следует избегать? Наш опыт студии Pushkin приоткроет завесу тайны над этими и другими вопросами.


Данная статья является является текстовой версией доклада, прочитанного 9 февраля 2017 года на мероприятии Unreal Engine Meetup в Mail.Ru Group. Несмотря на дату публикации исходного материала, представленная информация является не только тем самым наступившим «сегодняшним днём» и содержит в себе актуальные цифры, но и подтверждает прогнозы, высказанные автором на самом мероприятии.

Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments29

Приготовься к введению в России социального рейтинга

Reading time9 min
Views90K
image

Уже сегодня банки формируют свои предложения исходя из данных собранных их приложениями на смартфонах клиентов. В частности ставка по кредиту, которую вам предложат, сильно зависит от файлов, размещенных на вашем устройстве, и сайтов, которые вы посещали. Именно поэтому банки так настойчиво предлагают их установить (даже отказывая в обслуживании, сославшись на возможность выполнения необходимых действий самостоятельно). Для этого банковские клиенты требуют максимальных прав на устройстве. Например, Сбербанк Онлайн утверждает, что ему необходим доступ к файловой системе для… поиска вирусов на устройстве.

Вам может показаться, что получение низкой ставки по кредиту за социально полезные действия- перспектива далекого будущего. Но уже сегодня ставка ипотеки для молодой семьи находится в районе 10%, тогда как остальные предложения близки к 20%. Т.е. это уже давно реальность, просто вы не придавали этому значения.

Я считаю, что ряд непопулярных решений будет принят в течении последнего президентского срока Владимира Путина: этому человеку больше не надо «сохранять лицо». Поэтому до 2024 года мы увидим новый виток «закручивания гаек», в том числе введение социального рейтинга в России.
Читать дальше →
Total votes 138: ↑97 and ↓41+83
Comments687

Зачем учить Java и как делать это эффективно. Доклад Яндекса

Reading time11 min
Views58K
Чем Java отличается от других популярных языков? Почему именно Java может быть первым языком для изучения? Давайте составим план, который поможет выучить Java как с нуля, так и с применением навыков программирования на других языках. Перечислим отличия между созданием продакшен-кода на Java и разработкой на других языках. Михаил Затепякин прочитал этот доклад на встрече для будущих участников стажировки Яндекса и других начинающих разработчиков — Java Junior meetup.


— Всем привет, меня зовут Миша. Я разработчик из Яндекс.Маркета, и сегодня я расскажу вам, зачем учить Java и как делать это эффективно. Вы можете задать резонный вопрос: почему это буду рассказывать я, а не какой-нибудь сильный разработчик с кучей лет стажа? Дело в том, что я сам изучал Java недавно, года полтора назад, поэтому еще помню, как это примерно было и какие есть подводные камни.
Читать дальше →
Total votes 19: ↑16 and ↓3+18
Comments21

Рейтинг лучших CPU для игровых ПК в 2019 году

Reading time8 min
Views77K


В 2019 году на рынке десктопных процессоров стало интересно. Много лет здесь доминировала Intel, но AMD выпустила Ryzen 7 — прямых конкурентов моделям Intel i7. Потом серия ударов Ryzen 3 и 5 против Intel i3 и i5 — и добивание конкурента кувалдами Ryzen Threadripper 3960X и 3970X. Впрочем, эти монстры не для игрового рынка, а для иных приложений HEDT.

С 24/32-ядерными Threadripper компания AMD стала технологическим лидером. Intel ничего не может ответить на самые быстрые процессоры AMD, но пытается конкурировать во втором эшелоне более дешёвых CPU. Для этого Intel пришлось сильно снизить цены. Intel также продолжает манипуляции со своим компилятором, который замедляет выполнение программ на альтернативных процессорах (см ниже в разделе «Читерство компилятора Intel»).

Что же теперь? Какие лучшие игровые CPU в разных ценовых категориях? В конце ноября-начале декабря 2019 года свои рекомендации опубликовали AnandTech, WePC, PC Gamer, Digital Trends, Tom's Hardware, PC World. Посмотрим, что происходит на игровой сцене?
Читать дальше →
Total votes 26: ↑23 and ↓3+27
Comments194

Функциональное программирование — это не то, что нам рассказывают

Reading time17 min
Views126K

Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

чем ужасные императивные программы вроде


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


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

Читать дальше →
Total votes 208: ↑200 and ↓8+251
Comments795

Опыт работы в Netflix: Netflix изнутри

Reading time22 min
Views39K
Недавно мы поделились с Вами материалом о том, как работает Netflix, теперь пришло время рассказать о том, как работается в одной из крупнейших IT-компаний мира. Для этих целей мы расшифровали интервью одного из сотрудников Netflix, который рассказал много интересного о компании и работе в целом. Кто же предпочитает видео — ссылка в конце.

Руслан Гафаров (далее – Р): – Дим, представься – лучше, если это будешь делать ты, чтобы ты правильно презентовал, потому что в «Нетфликсе» нет, условно, менеджерских позиций, инженерии – структура полностью плоская. Как называется твоя роль внутри?
Дмитрий (далее – Д): – Ты уже за меня всё рассказал. Зачем что-то рассказывать? Ну, меня зовут Дмитрий, я работаю в «Нетфликсе». Порядка двух лет… Нет, уже больше двух лет. Да, «Нетфликс» — это самый крупный стриминговый сервис в мире: человек платит конкретно за подписку месячную и получает неограниченный доступ к фильмам, сериалам. Я инженер, работаю над проектами, которые позволяют построить, в частности, первый экран, когда человек открывает и видит список рекомендованных фильмов; можно зайти ещё дальше – посмотреть фильмы, разделённые по жанрам. В общем, я работаю над системами, которые связаны с этими вещами.

Р: – Почему вы выбрали именно «Нетфликс»?

Д: – Мне импонирует их подход к работе: у «Нетфликса» два принципа – freedom and responsibility – это свобода и ответственность. Человек здесь свободен выбирать, что ему делать и как делать, то есть принимать решения только, если он готов взять на себя ответственность за эти решения.
Total votes 25: ↑22 and ↓3+19
Comments29

Oracle, обход мутирующих таблиц

Reading time3 min
Views41K

Рис.1 – художники мутанты ниндзя черепашки

Мутирование таблиц (ошибка ORA-04091) возникает, если в триггере уровня строки выполняется изменение или чтение данных из той же самой таблицы, для которой данный триггер должен был сработать.

Рассмотрим два способа обхода данной ситуации. Первый – через пакет – древний, как удар маваши гери с разворота, смотрится эффектно, но долго готовится и сложен в исполнении. Второй – более свежий и простой – с использованием составных триггеров.
Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments5

Как программисту переехать в Нидерланды

Reading time26 min
Views69K
Disclaimer: Эта статья была начата еще летом. Не так давно на хабре был всплеск статей на тему поиска работы за рубежом и переезда. Каждая из них придавала моей пятой точке некоторое ускорение. Что в итоге заставило меня перебороть свою лень и сесть написать, а точнее дописать, очередную статью. Часть материала может повторять статьи других авторов, но с другой стороны, у каждого свои фломастеры.



Итак, перед вами часть третья, и на данный момент последняя, о похождениях блудного попугая программиста. В первой части я уехал жить и работать на Кипр. Во второй части я пытался устроиться в Google и переехать в Швейцарию. В третьей части (вот этой самой) я устроился на работу и переехал в Нидерланды. Сразу скажу, что про поиск работы будет мало, так как его фактически не было. В основном будет про обустройство и жизнь в Нидерландах. В том числе про детей и покупку дома, что не было подробно описано в недавних статьях других авторов.
Так что кому интересно, прошу под кат.
Total votes 85: ↑75 and ↓10+65
Comments330

Зарубежные заказчики и легализация доходов программиста в РФ. Что надо делать и сколько это всё будет стоить?

Reading time11 min
Views46K

image


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


Сразу пишу к чему пришёл в ходе изысканий:


  1. ИП на ПСН
  2. поступление оплаты за услуги по разработке ПО на счёт ИП в долларах США
  3. основание для оплаты инвойс, сумма которого не превышает 200 000 руб.
  4. инвойсы выставляются по-мере необходимости
  5. ККТ не используется

То есть, спокойно работаю, в конце оговоренного периода формирую инвойс, в котором указываю согласованную с работодателем сумму не превышающую указанный порог, получаю деньги прямо на расчётный счёт, оплачиваю раз в год или в течение года патент и взносы в размере 54 000 рублей и больше не переживаю о том, что завтра злобные налоговики придут ко мне с повесткой и ужасными новостями (это была минутка юмора). В следующем году эта сумма подрастёт до 60 000 рублей за год.


Почему так? Какие могут быть ещё варианты? Чем плохи для меня Upwork, PayPal и Payoneer? Попробую ответить под катом. Кому интересны все эти детали, читаем дальше :-)

Читать дальше →
Total votes 63: ↑59 and ↓4+78
Comments231

Обзор типов индексов Oracle, MySQL, PostgreSQL, MS SQL

Reading time6 min
Views199K
В одном из комментариев здесь была просьба рассказать подробнее об индексах, и так как, в рунете практически нет сводных данных о поддерживаемых индексах различных СУБД, в данном обзоре я рассмотрю, какие типы индексов поддерживаются в наиболее популярных СУБД
Взглянем?
Total votes 99: ↑96 and ↓3+93
Comments41

Starlink — дело крупное

Reading time27 min
Views58K


Эта статья из серии, посвященной ликбезу в области космических технологий.


Starlink — план SpaceX раздавать интернет через десятки тысяч спутников — главная тема в посвященной космосу прессе. Еженедельно выходят статьи о последних достижениях. Если в общем-то схема ясная, да ознакомившись с отчетами в Федеральной комиссии связи, хорошо мотивированный человек (скажем, ваш покорный слуга) может накопать очень много деталей. Тем не менее с этой новой технологией по-прежнему связано много заблуждений, даже у просвещенных обозревателей. Нередко попадаются статьи, в которых Starlink сравнивают с OneWeb и Kuiper (среди прочих) так, будто они конкурируют на равных. Другие авторы, явно озабоченные благом планеты, вопиют о космическом мусоре, космическом праве, стандартах и безопасности астрономии. Надеюсь, что дочитав эту — довольно длинную — статью, читатель лучше поймет и проникнется идеей Starlink.

Total votes 115: ↑106 and ↓9+97
Comments205

Баги C++20. Итоги встречи в городе Белфаст

Reading time5 min
Views13K
На днях прошла встреча комитета по стандартизации языка программирования C++ в городе Белфасте. От представителей стран в комитет прилетело около 400 замечаний к C++20, с половиной из них успели расправиться.

Под катом вас ждут результаты обсуждений замечаний России (да-да, ВАШИХ замечаний к C++20), некоторые замечания других стран, ну и подходящие новинки C++23 (Executors!).
Читать дальше →
Total votes 55: ↑55 and ↓0+55
Comments46

Инкремент элементов вектора

Reading time13 min
Views17K
В каком случае инкремент элементов вектора std::vector будет быстрее – если они имеют тип uint8_t или uint32_t?

Чтобы не рассуждать отвлечённо, рассмотрим две конкретные реализации:

void vector8_inc(std::vector<uint8_t>& v)
{
  for (size_t i = 0; i < v.size(); i++)
  {
    v[i]++;
  }
}

void vector32_inc(std::vector<uint32_t>& v)
{
  for (size_t i = 0; i < v.size(); i++)
  {
    v[i]++;
  }
}
Попробуем угадать
Total votes 107: ↑105 and ↓2+103
Comments65

7 бесплатных курсов для разработчиков от Microsoft

Reading time5 min
Views82K
Привет, Хабр! Сегодня мы начинаем серию статей, в которую войдет 5 подборок бесплатных обучающих курсов от компании Microsoft. В этой статье у нас самые крутые курсы для разработчиков, которые сильнее всего нравятся программистам.

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 6/7 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Новая серия статей


Следующая серия статей, начало 2020 года


Эта серия статей, 2019 год


Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments18

Разбор задач Одноклассников на Joker 2019

Reading time4 min
Views9.3K


С 28 по 29 октября в Санкт-Петербурге проходила Joker 2019 – самая большая и хардкорная на просторах России конференция, посвященная Java-разработке. Мероприятие проходило в седьмой раз и как всегда побило рекорд по посещаемости, в этот раз мероприятие привлекло более 2000 специалистов.

Одноклассники традиционно принимают участие в Joker в качестве партнеров мероприятия. В этом году на нашем стенде можно было попробовать справиться со знаменитыми «нерешаемыми» задачами от ведущих инженеров OK.RU. Участники конференции, правильно ответившие на вопросы, получили призы.

Справедливости ради надо сказать, что из 1 000 листочков с задачами, которые мы раздали, обратно было получено менее 100. Лучшим оказалось решение, набравшее 4.5 балла из 5 возможных.

Мы публикуем задачи и их решения, чтобы вы смогли проверить свои силы.
Читать дальше →
Total votes 32: ↑32 and ↓0+32
Comments7

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity