Рубрика «UV»

Знаете, в чём проблема большинства гайдов и курсов, которые обещают научить всему и сразу — да ещё и устроить на работу? Часто они учат примитиву, выдавая это за качественный контент. В итоге появляется много низкокачественного кода: на первый взгляд он работает, но в реальности трудно поддерживается.

Если в проекте нет структуры, он быстро превращается в кашу. Каждая доработка — это не отдельный продуманный модуль, а «приматывание новых кусков кода синей изолентой»Читать полностью »

Недавно на работе передо мной возникла задача максимально быстро погрузиться в автоматизированное тестирование с ранее мной не использовавшимся фреймворком pytest. Почитав порядка десяти статей на Хабре я понял, что в каждой из статей есть много всего интересного, а чтобы системно погрузиться — необходимо идти читать документацию. Я решил, в привычной мне манере, разобраться и систематизировать самый сок для того, чтобы быстро въехать в суть и важные тонкости положив основу для дальнейшего использования. 

Всем интересующимся - добро пожаловать под кат!

Читать полностью »

Привет! С вами Леша Жиряков, техлид backend-команды витрины онлайн-кинотеатра KION и по совместительству пропагандист Python: в МТС я возглавляю Python-гильдию. Но как бы много я ни говорил про преимущества этого ЯП, многие стандартные инструменты экосистемы ограничены. Тот же pip не всегда эффективно разрешает конфликты зависимостей, например при сложных иерархиях пакетов. Это сказывается на производительности команд разработчиков, особенно когда проекты растут и кодовая база увеличивается.

Читать полностью »

Введение

Привет! Меня зовут Женя и я работаю аналитиком данных. В этой статье я бы хотел рассказать начинающим аналитикам о том, как правильно настроить окружение для работы с Python. Когда я только начинал заниматься анализом данных, концепция питоновского виртуального окружения вводила меня в ступор, и здесь я постараюсь показать, что в ней нет ничего сложного.

Для этого мы:

  1. Установим Python

  2. Создадим и активируем виртуальное окружение при помощи базовых инструментов pip и venv

  3. В качестве примера установим библиотеки notebook и pandas

  4. Читать полностью »

Пакетных менеджеров для питона как‑то слишком много. У этого, конечно, есть очевидная причина — скудность функционала pip, встроенного пакетного менеджера. Но всё равно внутренний перфекционист хочет простое решение из коробки. Установил питон — и сразу получаешь быстрый и удобный пакетный менеджер, и ещё желательно менеджер версий питона. Но вместо этого получаешь pip. Кто‑то, конечно, его реально пользует, но всё‑таки poetry, pdm, conda, pipenv или хотя бы pip‑tools гораздо удобнее.

Читать полностью »

Merge Texture Set быстро и без лишних усилий…

Merge texture sets, или как делать один набор текстур в Substance Painter - 1

Доброго времени суток, меня зовут Julia, и сегодня я расскажу вам о том, как объединить Texture Sets в Substance Painter и экспортировать один набор текстур.Читать полностью »

Доброго дня!

Речь пойдет о решении такой проблемы, как полимеризация готовых 3D моделей после печати на LCD 3D принтерах, например как на нашем — Anycubic Photon S. Этот принтер печатает на базе фотополимерной смолы — после распечатки модели моются в изопропиловом спирте, но сами модели остаются липкими, мягкими.

Предпосылкой написания явилась острая и быстрая необходимость в лампе для отверждения распечатанных моделей перед покраской. Анализ интернета показал отсутствие в продаже готовых бюджетных ламп — странно, при такой распространённости 3Д принтеров сейчас…

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

Поехали

По инструкции от смолы — отвердителем для нее является УФ свет длиной волны 400-405нм.
Проверенным решением было бы купить к принтеру, его фирменную сушилку, но цена совсем не понятная — при бюджете принтера в 32 тысячи рублей, платить еще 23 за коробку со светодиодами какое то барство.

Экспресс UV лампа своими руками 400-405 нм для полимеризации 3D фотополимерных моделей - 1

Решение — сколхозить лампу своими руками из доступных компонентов.
Читать полностью »

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

Unity: отрисовываем множество полосок здоровья за один drawcall - 1

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

Я не буду никого стыдить за код, но достаточно сказать, что некоторые из решений были не совсем блестящими, например, кто-то добавлял к каждому врагу объект Canvas (что очень неэффективно).

Метод, к которому я в результате пришёл, немного отличается от всего того, что я видел у других, и не использует вообще никаких классов UI (в том числе и Canvas), поэтому я решил задокументировать его для общества. А для тех, кто хочет изучить исходный код, я выложил его на Github.
Читать полностью »

Динамическое рисование по мешу в Unreal Engine 4 - 1

В этом туториале по Unreal Engine 4 вы научитесь рисовать цветами по мешу любого типа.

Рисование по мешу позволяет игрокам раскрашивать внутриигровые объекты. Примеры рисования по мешу: граффити (goop) в Super Mario Sunshine, гели в Portal 2 и чернила в Splatoon. Рисование может использоваться как геймплейний элемент или быть просто графическим оформлением. Как бы то ни было, рисование по мешу открывает новые возможности для дизайнеров геймплея и художников.

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

В этом туториале вы узнаете, как рисовать на скелетном меше. Для этого мы сделаем следующе:

  • Развернём меш в его UV-форму
  • Используем точку пересечения трассировки линии для создания сферической маски меша
  • Отрендерим развёрнутый меш и сферическую маску в render target с помощью захвата сцены (scene capture)
  • Используем маску для смешивания текстур в материале персонажа

Учтите, что этот туториал не посвящён рисованию вершин. Рисование вершин зависит от разрешения меша и его невозможно изменять в процессе игры. Используемый в этом туториале метод, напротив, работает вне зависимости от разрешения меша и его можно применять во время игры.
Читать полностью »

Эта статья предназначена 3d художникам, техническим художникам, а также всем разработчикам, которые связаны с 3д графикой, текстурами и составлением технических заданий. В ней я покажу чем может быть полезно следование одному текселю, как его считать и на что он может влиять. Основные действующие лица — чеккер, модели, текстуры, мыльцо, UV и прочие радости разработки 3d контента.
Texel density. Зачем нужен и как его применять - 1

0. Что такое texel density.

Для начала, что такое тексель. Texel (аббревиатура от двух слов «TEXture» и «ELement» — текстура и элемент) — элемент текстуры, «точка». Текстура, в свою очередь, представляет собой массив текселей. Тексель может представлять собой цветную точку в изображении. Но, поскольку, текстура может быть не только изображением (двумерным массивом цветных точек), а также и другими массивами данных различных типов и размерности, то тексель, как текстурный элемент — более общее понятие.

Texel density (текселерация, тексель (сокращенно, в контексте)) — это величина, которая является отношением размера текстуры (в пикселях) к габаритам 3d модели в сцене. Texel density характеризует плотность, «качество» текстуры, в общем смысле. Выглядит в техзадании примерно так: 256px/m, 128px/inch, и так далее. Таким образом, текселерация определяет какая площадь текстуры будет отдана на модель исходя из ее размеров. Высокий texel density означает большую детализацию текстуре, низкий — меньшую, размытую текстуру.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js