<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Компьютерная графика</title>
    <description>Если вас вдохновляет картинка современных игровых движков — то с помощью этой рубрики вы сможете своими руками написать свои первые графические демки.</description>
    <link>https://tproger.ru/tag/computer-graphics</link>
    <atom:link href="https://tproger.ru/tag/computer-graphics/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sun, 04 Oct 2026 09:56:14 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Компьютерная графика</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>WebGL-портфолио Susurrus: акварельный 3D-мир на Three.js и Kuwahara-шейдере</title>
      <link>https://tproger.ru/translations/webgl-portfolio-susurrus-akvarelnyj-3d-mir-na-three-js-i-kuwah</link>
      <comments>https://tproger.ru/translations/webgl-portfolio-susurrus-akvarelnyj-3d-mir-na-three-js-i-kuwah?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/webgl-portfolio-susurrus-akvarelnyj-3d-mir-na-three-js-i-kuwah</guid>
      <description><![CDATA[<p>Перевод case-study Wei Xianyao о Susurrus — WebGL-сцене на React Three Fiber, построенной вокруг Kuwahara-шейдера. Отражающая вода, ScrollControls, физика.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/webgl-portfolio-susurrus-akvarelnyj-3d-mir-na-three-js-i-kuwah">WebGL-портфолио Susurrus: акварельный 3D-мир на Three.js и Kuwahara-шейдере</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[OpenGL]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[TypeScript]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 06 May 2026 05:59:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Чем это могло бы быть, если бы 3D-сцена в браузере вела себя как акварельный рисунок — текучая, отзывчивая, интерактивная? Дизайнер Wei Xianyao (Weisdevice) <a href="https://tympanus.net/codrops/2026/04/24/susurrus-crafting-a-cozy-watercolor-world-with-three-js-and-shaders/">опубликовал case-study</a> на Codrops о проекте <b>Susurrus</b>: WebGL-сцена, целиком построенная вокруг одного Kuwahara-шейдера в постпроцессинге, с отражающей водой, физикой и звуком. Перевод материала.</p><p>Главный приём — Kuwahara-фильтр как единственный пасс постпроцессинга. Всё остальное (отражения, частицы, реакция на скролл, физика появления хлеба по клику) встроено вокруг него и подгоняется под его эстетику.</p><p><b>Концепция.</b> Забытая мельница на воде, рендерится как акварель, но полноценно 3D и интерактивна. Вода, ветер, сцена — единое атмосферное пространство. Под мирным фасадом скрыт сюрреалистический намёк: подводная мельница бесконечно производит хлеб, хотя зерно давно ушло.</p><p><b>Стек.</b> React, React Three Fiber, Drei, React Three Rapier, Howler.js, TypeScript, WebGL, HTML/SCSS.</p><p><b>Главный приём — Kuwahara-шейдер.</b> Несмотря на сильно обработанный вид, это единственный пасс постпроцессинга. Сцена строится вокруг него, в том числе на этапе моделей в Blender — чтобы видеть итоговый эффект сразу.</p><p><b>Отражающая вода — три шага.</b> MeshReflectorMaterial в низком разрешении (для производительности), кастомный шейдер сверху для деталей и анимации воды, тюнинг освещения.</p><p><b>Reveal Effect.</b> ScrollControls контролирует параметр uProgress, шейдер применён к ScreenQuad. Это компактный способ реализовать разворачивающуюся при скролле интро-сцену.</p><h2>Концепция: уют, которого не бывает</h2><p>Wei работает в свободном режиме: не использует Figma и подобные инструменты на личных проектах, идёт от концепта в голове. Susurrus родился как «эхо в сознании»: дом, плавающий на отражающей воде, с Kuwahara-шейдером, наложенным как пост-процессинг — чтобы получить «3D-веб-впечатление как картина».</p><p>Интерфейс при этом намеренно прост — фокус на 3D-контенте. В сцене присутствуют два поэта, но смысловое ядро — атмосфера и эмоция, переданные через визуал и звук. Само слово «susurrus» (шёпот, шорох) задаёт тон: слова намеренно невнятны, важнее — настроение.</p><p>При ближнем рассмотрении сцена становится тревожной: подводная мельница бесконечно производит хлеб, хотя зерна давно нет. Это тихая метафора несуществующего комфорта — то, что выглядит решённым, но к чему присматриваться не стоит.</p><h2>Kuwahara-шейдер: ядро всего проекта</h2><p>Весь визуальный стиль Susurrus построен на Kuwahara-фильтре. Это единственный пасс постпроцессинга — всё остальное собрано вокруг него. Wei поставил его на этап раньше, чем закончил 3D-модели в Blender: так можно видеть итоговый эффект и подгонять модели под шейдер, а не получить сюрприз в финале.</p><p>При исследовании автор нашёл несколько подходов, опираясь в основном на разбор Maxime Heckel о Kuwahara-фильтре и painterly-шейдинге. На основе этих референсов Wei сделал упрощённую реализацию:</p><ul><li>Не использовал TensorPass, чтобы пасс остался простым (хотя он усиливает детализацию).</li><li>Использовал отличающийся подход на vertex-стадии, по сравнению со стандартными реализациями.</li></ul><p>Стандартный vertex для Kuwahara обычно выглядит так:</p><p>Версия Wei проще:</p><p>Wei не применяет полную модель-вью-проекционную матрицу (MVP), чтобы немного ускорить вычисления. Цена компромисса — эффект слабее, когда камера подходит близко, но в Susurrus камера не приближается к моделям анимацией, поэтому это ОК.</p><h2>Отражающая вода в три шага</h2><p>Авторская «грязная» реализация воды:</p><ul><li>MeshReflectorMaterial в акварельном стиле. Из-за визуальной обработки разрешение можно ставить очень низким — это сохраняет производительность на мобильных и десктопе.</li><li>Кастомный шейдер на отдельной плоскости поверх MeshReflectorMaterial — добавляет детали и анимацию воды.</li><li>Освещение подкручено так, чтобы вода казалась живее, не плоской и не скучной.</li></ul><h2>Reveal Effect для интро-сцены</h2><p>Wei использовал ScrollControls для контроля параметра uProgress, который подаётся в reveal-шейдер. Шейдер применён к ScreenQuad — это удобный способ реализовать эффект «открытия» сцены при скролле.</p><h2>Звук, физика и адаптивность</h2><p><b>Звуковые эффекты.</b> Через react-howler: разные звуковые взаимодействия по hover/click. Эффекты интегрированы с фоновой музыкой, чтобы получился lo-fi-стиль — «картина, которая может петь».</p><p><b>Физика.</b> Главный интерактивный элемент Susurrus — Spawning Bread on Click: щелчок порождает физический объект (хлеб), который падает в сцену. На реализации стоит React Three Rapier.</p><p><b>Адаптивность.</b> Стандартная для автора цель — мобильная совместимость и плавная производительность на mobile и более старых устройствах.</p><h2>Выводы</h2><p>Susurrus — пример того, как один точно выбранный шейдер может задать стиль всему проекту: от моделей в Blender до анимации воды и интерактивности. Идея Wei — начать с Kuwahara-фильтра ещё до финальных моделей — практичная: видишь итоговый эффект сразу и не тратишь время на проработку деталей, которые шейдер всё равно сгладит.</p><p>Для тех, кто работает с Three.js / React Three Fiber, в случае Susurrus есть три прямых заимствования: компактный паттерн ScrollControls + ScreenQuad для reveal-сцен, дешёвая реализация отражающей воды через MeshReflectorMaterial низкого разрешения + кастомный шейдер сверху, и выбор пасса постпроцессинга на старте проекта, а не в финале.</p><p>Источник: <a href="https://tympanus.net/codrops/2026/04/24/susurrus-crafting-a-cozy-watercolor-world-with-three-js-and-shaders/">Susurrus: Crafting a Cozy Watercolor World with Three.js and Shaders — Codrops</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>DLSS 5 — не провал. Будущее рендеринга: глубокий технический взгляд на новые подходы после 15-ти лет в геймдеве</title>
      <link>https://tproger.ru/articles/dlss-5-ne-proval-budushhee-renderinga-glubokij-tehnicheskij-vzg</link>
      <comments>https://tproger.ru/articles/dlss-5-ne-proval-budushhee-renderinga-glubokij-tehnicheskij-vzg?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Elijah]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/dlss-5-ne-proval-budushhee-renderinga-glubokij-tehnicheskij-vzg</guid>
      <description><![CDATA[<p>Сегодня мы с вами погрузимся в технические дебри революции графического рендеринга. Проследим историю его развития, и конечно, заглянем в ближайшее будущее, где стирается грань между "рендерингом" и "генерацией". В этой статье вы найдете технический разбор современных технологий рендеринга, а также узнаете, почему революция уже пришла, но как и прошлые революции, вы просто не помните о них.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/dlss-5-ne-proval-budushhee-renderinga-glubokij-tehnicheskij-vzg">DLSS 5 — не провал. Будущее рендеринга: глубокий технический взгляд на новые подходы после 15-ти лет в геймдеве</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[3D-технологии]]></category>
      <category><![CDATA[Инновации]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Техника]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 30 Apr 2026 05:45:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В этой статье мы опустим маркетинговый провал Nvidia и технически сырые демо-версии, а скорее погрузимся в недалекое техническое будущее, которое ждет нас в игровой индустрии, <b>пройдя через историю графического конвейера.</b></p><h2>Начало революции в графическом конвейере</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/4b29762f-5a22-4439-bafc-de1a5ecb45b0.webp" alt="DLSS vs FSR vs TSR" /><figcaption>DLSS vs FSR vs TSR</figcaption></figure><p>За последние пять лет <b>в архитектуре рендеринга в играх произошел по-настоящему огромный сдвиг</b>. Если на протяжении двух десятилетий до этого, прогресс упирался в неумолимую математику закона Мура, где улучшение качества рендеринга сводилось к росту вычислительной мощности и увеличению количества полигонов и шейдеров, то сегодня все изменилось. Теперь для достижения высокого визуального качества в играх стала не грубая сила в лоб, <b>а новые подходы, которые меняют устоявшуюся за десятилетия суть самого построения игровой картинки</b>, в том числе на основе технологий ИИ. На сегодняшний день более 80% всех пикселей на экране в самых передовых (с технической точки зрения) играх проходят не классический путь, а смешанные подходы и новые уловки (новые подходы в вычислении света, супер-семплинг на основе ИИ и др).</p><p><b>Сегодня мы остановимся на том, как повлиял (и будет дальше влиять) ИИ на рендеринг в играх</b>, чтобы понять суть сдвига в графике. Для этого мы изначально рассмотрим две ключевые темы: во-первых, фундаментальные отличия DLSS от всех предыдущих подходов к повышению разрешения и сглаживанию (от SSAA до TAAU), а во-вторых, место, которое нейросетевое масштабирование занимает в современном графическом конвейере, после чего сделаем обзор на ближайшее будущее рендеринга в играх.</p><h2>От супер-сэмплинга к нейронному синтезу сцены</h2><p>Чтобы оценить место DLSS (в том числе и будущей 5-ой версии) в графическом пайплайне, мы проследим путь эволюции сглаживания и масштабирования от самых первых реализаций до современного подхода с использованием ИИ-вычислений.</p><h2>Эпоха "чистой математики": SSAA, MSAA, FXAA и их ограничения</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/39c179b9-4119-4094-9c72-3ca0516138d1.webp" alt="" /><figcaption>Наверняка многие из нас вспомнят эти страшные сочетания букв при выборе сглаживания в настройках игр</figcaption></figure><p>Классические методы борьбы с "лесенками" на границах игровых объектов были основаны на простом, но дорогом для вычислений принципе: обработке изображения с более высоким разрешением или его частей.</p><p><b>Посмотрим на три классических алгоритма сглаживания в играх:</b></p><ul><li>SSAA (Supersampling Anti-Aliasing): Самый "честный", но и прожорливый метод. Сцена рендерится в разрешении, превышающем целевое у пользователя (например, в 4K для вывода на FHD-монитор), а затем полученный кадр сжимается обратно до нужного размера. SSAA обрабатывает каждый суб-пиксель, включая затенение, что дает эталонное качество картинки, но приводит к падению производительности (надеюсь, вы понимаете, почему). Для современных игр со сложными шейдерами и геометрией этот подход непрактичен.</li><li>MSAA (Multisample Anti-Aliasing): Этот метод появился, как попытка оптимизировать SSAA. Суть оптимизации сводится к тому, что обработка затенения производится только один раз для каждого примитива (например треугольника) внутри пикселя, а не каждый сэмпл, как это делает SSAA. Хотя такой подход и значительно снижает нагрузку на GPU, стоит учесть, что MSAA эффективно сглаживает только края геометрии, но не справляется с другими элементами пайплайна, как например, сглаживанием текстур. Также его стоимость все еще остается высокой для сложных сцен.</li><li>FXAA (Fast Approximate Anti-Aliasing): Сглаживание на уровне постобработки, которое анализирует уже готовый 2D-кадр, ищет в нем высоко-контрастные границы и размывает их. Это самый "дешевый" с точки зрения производительности метод, но его главный недостаток, в итоге - неизбежное "мыло" всей картинки, включая текстуры и элементы интерфейса, что приводит к потере четкости и детализации.</li></ul><h2>Эра темпорального накопления: TAA и его наследники (TAAU)</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/dc6e3baa-6653-4e17-93b3-7bba6a685619.webp" alt="" /><figcaption>TAAU в конвейере рендеринга</figcaption></figure><p>Ключевой прорыв произошел с переходом к темпоральным методам, которые используют информацию не только из текущего кадра, но и из предыдущих.</p><p><b>Что же изменилось в подходах:</b></p><ul><li>TAA (Temporal Anti-Aliasing): Вместо того чтобы рендерить каждый пиксель, TAA слегка смещает положение камеры каждый кадр, накапливает информацию с предыдущих кадров, используя моушн векторы объектов, и затем вычисляет среднее значение. Это позволяет получить качество, близкое к SSAA, при производительности, сопоставимой с одной отрисовкой кадра. TAA стал отраслевым стандартом на долгие годы, но у него есть свои фундаментальные проблемы: гоустинг, потеря детализации на мелких и быстро движущихся объектах и общее "мыльное" ощущение от картинки в некоторых реализациях и сценах.</li><li>TAAU (Temporal Anti-Aliasing Upsampling): Логическое развитие TAA. Понимая, что темпоральное накопление позволяет восстанавливать детали из субпиксельной информации, разработчики начали применять его для масштабирования изображения, рендеря сцену в более низком разрешении и "апскейля" в высокое, используя историю кадров.</li></ul><p><b>Именно TAAU является прямым предшественником DLSS</b>, но с одним критическим отличием: TAAU полагается на жестко заданные правила и не способен "понимать" сцену, а лишь математически усредняет пиксели, что часто приводит к артефактам.</p><h2>Революция DLSS: от CNN до Vision Transformer</h2><p><b>NVIDIA DLSS (Deep Learning Super Sampling)</b> и её аналог FSR совершили качественный скачок, заменив чисто математические подходы TAAU на модели машинного обучения, способные принимать более "интеллектуальные" решения о том, как именно восстанавливать изображение.</p><p>Первые поколения использовали <b>сверточные нейронные сети (CNN)</b>. Их главный недостаток - это "близорукость": модель анализировала пиксели только в рамках ограниченного пространственного окна (рецептивного поля или же область входного изображения). Это приводило к хорошо знакомым геймерам проблемам: если объект двигался слишком быстро, CNN "теряла" его из виду, что вызывало мерцание и гоустинг на мелких деталях вроде листвы, проводов или волос.</p><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/c9f00556-8591-421b-931f-8132ea6ee1fd.webp" alt="" /><figcaption>Как работают модели на Vision Transformer</figcaption></figure><p>Переход на архитектуру <b>Vision Transformer в 4-ой версии DLSS</b>, стал фундаментальным прогрессом. <b>В отличие от CNN</b>, Transformer может оценивать значимость и взаимосвязь любых пикселей в кадре, независимо от расстояния между ними, благодаря дополнительному механизму внимания. Модель научилась "понимать" контекст всей сцены, что позволило радикально повысить стабильность изображения, уменьшив количество артефактов и впервые приблизить картинку после апскейла очень близко сопоставимой с нативным разрешением (а иногда и превосходить её по четкости).</p><h2>Техническая интеграция в графический конвейер: Место DLSS в пайплайне рендеринга</h2><p><b>DLSS не является "черным ящиком"</b>, который просто получает на вход низкое разрешение и выдает высокое. <b>Это сложная система, глубоко интегрированная в процесс рендеринга</b>, требующая от разработчиков не только вызова API, но и подготовки специфических данных. <b>Поэтому, когда вы видите плохой DLSS - возможно, дело в самом разработчике игры, а не технологии.</b></p><p><b>Входные данные: что нужно для работы DLSS</b></p><p>Для корректной работы DLSS графический движок игры должен предоставить специальный набор буферов, <b>каждый из которых критически важен для алгоритма:</b></p><ol><li>Color Buffer: Грубо говоря, это кадр, отрендеренный в пониженном разрешении. Это "грубый набросок", на основе которого будет строиться финальное изображение.</li><li>Motion Vectors: Критически важный компонент. Для каждого пикселя этот буфер показывает, куда он переместился по сравнению с предыдущим кадром. Это позволяет DLSS понять динамику сцены, корректно связать пиксели из разных кадров и избежать эффекта гоустинга.</li><li>Depth Buffer: Информация о расстоянии от камеры до каждого пикселя. Он помогает модели понять структуру сцены и то, какие объекты перекрывают друг друга, что особенно важно для правильной обработки краев геометрии.</li><li>Jitter Offsets: Чтобы получить больше информации, чем содержится в одном кадре, камера в каждом кадре слегка смещается на долю пикселя по особому паттерну (как в ранее описанном TAA). DLSS должен точно знать величину этого смещения, чтобы "вычесть" его из векторов движения и корректно совместить пиксели из разных кадров.</li></ol><p><b>Как DLSS встраивается в конвейер</b></p><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/ecd8a218-4462-41a4-b3d1-7975c67f2ba2.webp" alt="" /><figcaption>Классические операции в конвейере</figcaption></figure><p><b>DLSS встраивается не в любой момент</b>, а в строго определенном месте графического пайплайна. Интеграция с игровым движком происходит через открытый SDK, который предоставляет интерфейс для технологий (DLSS, Reflex, и т.д.).</p><p><b>Пример этапов конвейера с учетом работы DLSS:</b></p><ol><li>Рендеринг геометрии и шейдинг: Игровой движок выполняет всю "тяжелую" работу: просчитывает геометрию, освещение, материалы и тени. Все это происходит в пониженном разрешении.</li><li>Ранний пост-процессинг: DLSS должен быть встроен до применения таких эффектов, как шум (film grain), хроматические аберрация, виньетки и, самое главное, до пользовательского интерфейса (UI). Это необходимо, чтобы нейросеть работала с "чистым" изображением сцены, а не с наложенными поверх эффектами, которые могут сбить ее с толку и исказить финальный результат.</li><li>Вызов DLSS: На этом этапе все подготовленные входные данные (буферы цвета, глубины, моушн векторы) передаются в DLSS. Модель обрабатывает их, используя свои веса, и генерирует финальный кадр в целевом (высоком) разрешении.</li><li>Поздний пост-процессинг и UI: После того как DLSS выполнил свою работу, поверх полученного высококачественного изображения накладываются эффекты, которые должны оставаться "родными" для разрешения монитора (хроматическая аберрация, виньетка и т.д.), и, что самое важное, интерфейс в целевом разрешении, оставаясь максимально четким и неискаженным.</li><li>Вывод на экран: Финальный кадр отправляется на дисплей.</li></ol><p>Всё это открывает путь к массовому внедрению технологий, в особенности, когда DirectX 12 и другие вендоры открывают новые подходы, подобные DLSS, на основе ИИ рендеринга (сжатие текстур, материалов) на уровне API, делая их стандартной частью инструментария современного разработчика.</p><h2>DLSS 5: сдвиг парадигмы к нейронному синтезу сцены</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/4d4dbe8e-3e83-45a9-9e02-54ab23cf883e.webp" alt="" /><figcaption>Nvidia DLSS 5</figcaption></figure><p><b>DLSS 5 дает старт переопределения самого подхода к постановке задачи.</b> Если предыдущие версии работали с уже отрендеренным кадром, восстанавливая или достраивая пиксели, то новая модель оперирует структурными данными движка: depth buffer, albedo, motion vectors, нормали, идентификаторы материалов и освещения. Сеть не просто «дорисовывает» - она переосмысливает визуальные свойства сцены.</p><p><b>NVIDIA заявляет, что DLSS 5 способен анализировать семантику сцены:</b> распознавать кожу, волосы, ткани, различные типы освещения, и генерировать более точные пиксели для подповерхностного рассеяния (subsurface scattering) на коже или более реалистичные отклики материалов. Речь идёт о контролируемой модификации финального изображения, остающейся детерминированной и темпорально стабильной.</p><p>То, что многие "эксперты" ругались на финальный результат, скорее сейчас - это просто сырость самой технологии и "рукастость" разработчиков, которые помогали создавать техно-демонстрацию. Стоит учитывать, что меняется сам подход к рендерингу, так что первые шаги будут шакальными, но этот путь проходили и более ранние технологии без ИИ.</p><h2>Multi Frame Generation: от линейной интерполяции к адаптивному синтезу</h2><h2>Математика генераций кадров</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/14681021-1cd5-4cae-b785-ee9e54bcf477.webp" alt="" /><figcaption>Большая часть технологий не была изобретена сразу - это эволюция, которую обыватель не замечал</figcaption></figure><p><b>В классической схеме генерации кадров (DLSS 3)</b> на каждый рендеренный кадр генерировался один интерполированный, что давало прирост в скорости примерно на 100%. DLSS 4 увеличил прирост еще примерно в два раза (три сгенерированных кадра на один рендеренный).</p><p><b>Ключевой вопрос:</b> при каком FPS это имеет смысл? Предположим, что при входном потоке 60 FPS после супер-сэмплинга выход может достигать 360 FPS на дисплее. Это соответствует временному окну ~16.6 мс между рендеренными кадрами, внутри которого нейросеть должна предсказать пять промежуточных состояний сцены. Подумайте сами над ответом и напишите в комметах.</p><p><b>Вообще, в архитектуре Blackwell, которая служит базой для предсказания движения</b>, на высоких коэффициентах генерации линейная интерполяция моушн векторов становится недостаточной. DLSS 4.5 добавляет динамическую регулировку коэффициента: в сценах с высокой сложностью (например, взрывы частиц) модель может снижать коэффициент, чтобы сохранить качество, а в относительно статичных сценах - повышать. <b>Однако опять же, дело за разработчиками.</b></p><p><b>И вот тут то стоит сделать ремарку. </b>Инженеры Nvidia - люди, которые работают сугубо над тем, чтобы двигать свою технологию вперед, а графические программисты, которые работают над рендерингом, мало того, что занесены в красную книгу, во-первых, привыкли к устоявшимся подходам и не могут быстро переключиться на обновленный пайплайн рендера ничего не сломав, а во-вторых, как и все придерживаются сроков релизов. <b>Если вы представляете примерно, что скрывается под "перестроить графический пайплайн", то должны понимать, почему на первых порах неизбежны косяки в использовании новой технологии.</b></p><h2>Проблема в задержках ввода (инпат-лаг) и решение через Reflex</h2><p>Генерация промежуточных кадров фундаментально увеличивает инпат-лаг: тобишь, сгенерированный кадр не содержит реакции на ввод пользователя, эта реакция появляется только в следующем рендеренном кадре.</p><p>NVIDIA компенсирует это технологией Reflex, которая синхронизирует CPU и GPU таким образом, чтобы очередь рендеринга была минимальной. Однако, реализация также сильно зависит от игрового движка и правильности встраивания в общий жизненный цикл рендеринга и остальной логики.</p><h2>А что, если сжимать данные, а не пиксели?</h2><p>DLSS - это конечно круто и у всех на слуху. Но это лишь один из подходов, где используется ИИ в процессе рендеринга. Давайте посмотрим на другие подходы.</p><h2>Сжатие текстур с использованием ИИ: экономия видео-памяти</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/81d5e613-2abc-4e47-94d3-7de6fd5f6c45.webp" alt="" /><figcaption>Зачем жать пиксели, если можно жать текстуры? Ведь они и так сжимаются.</figcaption></figure><p>Одна из наиболее острых проблем современного геймдева: огромный рост объёмов текстур. Традиционные блочные методы сжатия (BC1-BC7) достигают коэффициентов 4:1 &lt;=&gt; 8:1, но их эффективность упирается в фундаментальные ограничения: сжатие происходит независимо для каждого блока, без учёта глобальной структуры текстуры.</p><p><b>Инженеры решили подойти к задаче принципиально иначе:</b> вместо хранения сжатого изображения, хранится обученная нейросеть (или её веса), способная реконструировать текстуру произвольного разрешения в рантайме. <b>Например, NVIDIA, заявляет о семикратном сокращении использования VRAM</b> и системной памяти по сравнению с традиционными блочно-сжатыми текстурами при сопоставимом визуальном качестве.</p><p><b>Технически это работает следующим образом: </b>на этапе сборки игры текстуры пропускаются через процедуру обучения, занимающую менее минуты на тысячи ассетов (в зависимости от железа, конечно). Результатом является компактное представление для модели, которое при загрузке в память распаковывается тензорными ядрами в реальном времени. Поскольку распаковка происходит «на лету», отпадает необходимость хранить в видео-памяти одновременно все MIP-уровни. ИИ может генерировать нужный уровень по требованию.</p><p>Для AAA-игр это означает не только экономию видео-памяти, но и радикальное сокращение размера самих игр, ускорение загрузки и возможность увеличить плотность текстур без роста требований к памяти.</p><h2>Компрессия шейдеров и материалов</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/f6d48846-0836-4d0c-af22-4f62f8e3b3a0.webp" alt="" /><figcaption>Фото-реалистичные шейдеры - это так же удар по производительности</figcaption></figure><p><b>Сложные материалы - это слоистые структуры, комбинирующие десятки карт и сотни математических операций.</b> Рендеринг материалов высокого уровня (например, фарфор, шёлк, многослойная кожа) в реальном времени до сих пор был непрактична из-за высокой вычислительной стоимости.</p><p><b>ИИ-шейдеры используют обученные нейросети</b> для вычисления сложного шейдерного кода.</p><p><b>Архитектурно это означает,</b> что вместо выполнения полного графа шейдера на каждом пикселе, GPU выполняет инференс, который выдаёт финальные параметры шейдера. Выигрыш достигается за счёт того, что тензорные ядра выполняют матричные операции существенно эффективнее, чем шейдерные ядра.</p><h2>Инференс вместо трассировки лучей</h2><p>Все знают, насколько <b>прожорливой остается трассировка лучей</b> - Ray Tracing и, в особенности, Path Tracing. <b>Path tracing требует трассировки сотен или тысяч лучей на пиксель для схождения непрямого освещения. </b>Новый подход позволяет заменить большую часть этой работы инференсом: после трассировки одного-двух отскоков, нейросеть предсказывает результат бесконечного числа последующих отскоков.</p><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/ff7636f5-0838-427d-82c5-15fd2207e888.webp" alt="" /><figcaption>Пример сочетания Path Tracer и Nvidia Neural Radiance Cache</figcaption></figure><p>К примеру, подобная технология (NRC) уже стала доступна через RTX Global Illumination SDK и вскоре появится в RTX Remix. Практическое следствие такого подхода - это возможность достижения визуального качества традиционного Path Tracing с производительностью, сопоставимой с более простыми техниками глобального освещения.</p><p><b>Все описанные технологии опираются на специализированные вычислительные блоки.</b> Эволюция тензорных ядер от поколения к поколению напрямую определяет, насколько эффективно работают ИИ модели рендеринга.</p><p>Исходя из этого, пользователи RTX 20/30 серий получают идентичное качество изображения, к примеру от DLSS 4.5, но со значительным падением производительности из-за отсутствия родной поддержки FP8/FP4 в тензорных ядрах.</p><h2>Взглянем в неизбежное будущее: ИИ рендеринг, как новый стандарт</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/34734a50-94c1-4ea1-8e80-6c6a20b22988.webp" alt="" /></figure><p>Итак, поговорив о текущих технологиях и меняющемся подходе (где-то еще не идеальным, экспериментальным, но уже набирающем обороты), давайте заглянем в ближайшее будущее рендеринга в играх на базе ИИ.</p><h2>Траектория развития до 2030 года</h2><p>Проводя анализ текущих технологических векторов и уже доступных решений, можно смело спрогнозировать несколько ключевых направлений:</p><ol><li>Полная замена традиционных шейдеров на инференс: первые технологии, вроде RTX Neural Shaders уже демонстрируют, что нейросети могут ускорять сложные вычисления на материалах эффективнее, чем рукописный шейдерный код, в особенности из-за улучшения архитектуры тензорных ядер. Следующий шаг, безусловно, унификация всех материалов под ИИ модели, где шейдер компилируется в веса небольшого инференса.</li><li>Плавный переход от генерации кадров, к генерации сцены: уже существующие технологии работы с примитивами сцены (проработке геометрии, освещения, текстур), уводят шаг к более оптимизированному и продвинутому конвейеру производства игр на уровне сцены, что развяжет руки художникам и техническим артистам, избавив от рутинной работы по оптимизации сцен на уровне ИИ. А дальше, как вариант, это и генерация каких-либо примитивов, чтобы подобрать для артистов первоначальные наброски за секунды, а не часы ручной работы.</li><li>Гибридные вычислительные модели: Современные видео-карты уже содержат отдельные тензорные ядра, ядра для рейтрейсинга и шейдерные ядра. Будущие архитектуры, вероятно, ещё сильнее разнесут эти специализированные блоки, позволяя параллельно выполнять классический рендеринг, трассировку лучей и инференс.</li><li>Стандартизация ИИ-рендеринга: Microsoft уже добавила поддержку ИИ-рендеринга в DirectX, что открывает путь к универсализации (как минимум на уровне DirectX API). Те же ARM развивают собственные GDK для разработчиков, открывая двери для супер-семплинга и денойзинга на основе ИИ под мобильные устройства.</li></ol><p><b>Однако, при всех достижениях, остается ряд фундаментальных проблем, над решениями которых работают сотни инженеров:</b></p><ol><li>Детерминированность: Генеративные модели по своей природе случайны. Для соревновательного гейминга необходима попиксельная повторяемость результата, чего сложно достичь без фиксации сида. Однако развитие всё новых и новых подходов, сводит случайность к минимуму.</li><li>Энергопотребление: инференс безусловно жрет много энергии. В мобильном гейминге и на портативных устройствах (например Steam Deck, Nintendo Switch) это критическое ограничение. Но и в этом направлении ведётся огромная работа, предлагая новые варианты оптимизаций моделей.</li><li>Обратная совместимость: По мере роста вычислительных требований новых моделей старые GPU теряют способность эффективно их исполнять, что создаёт фрагментацию пользовательской базы. Здесь же скорее результат будет зависеть от скорости появления общепринятых стандартов в разработке, поскольку мы находимся лишь вначале пути.</li></ol><h2>В истории уже было отвращение к технологиям. Просто вы этого не помните. Как индустрия переваривала прошлые графические революции?</h2><p>Тейки, сопровождающие внедрение ИИ рендеринга: от "фейковых кадров нейрослопа" и "мыла вместо графики" до страха перед потерей контроля над визуальным результатом, звучат конечно очень громко, но не являются чем-то новым для индустрии. Практически каждое фундаментальное изменение в архитектуре рендеринга за последние 25 лет встречало схожее сопротивление, прежде чем стать новым стандартом.</p><h2>Compute шейдеры против обычного конвейера (2001–2004)</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/e577ad57-de06-41ed-8f5b-109555eead7e.webp" alt="" /><figcaption>Революция тех лет, показавшая плюсы пугающих технологий шейдеров</figcaption></figure><p><b>До появления GeForce 3 и DirectX 8</b> графический конвейер был жёстко заданной цепочкой операций: трансформация вершин, освещение по фиксированным формулам, растеризация, смешивание текстур. А потом нам разрешили программировать свои вершинные и пиксельные шейдеры для каждой стадии, что открыло дорогу к картам нормалей, динамическим теням и сложным материалам.</p><p><b>В то время, людей пугало, что шейдеры слишком медленные,</b> разработчики не справятся с написанием сложного кода, и что шейдеры, которые можно закодить - это костыли, а не шаг вперед.</p><p><b>В реальности же, всего через пять лет игры без шейдеров, стали пережитком прошлого.</b> Half-Life 2, Doom 3, Far Cry продемонстрировали, что программируемый пайплайн, это не просто замена старому, а инструмент, позволяющий создавать шедевры, невозможные ранее. Разработчики же быстро освоили HLSL и GLSL, а производительность выросла, благодаря аппаратному ускорению шейдерных блоков.</p><h2>Переход к отложенному освещению (Deferred Rendering, 2007–2011)</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/0b83107a-c0c9-436f-9e2d-fd661d40948b.webp" alt="" /><figcaption>Отложенное освещение - до сих пор один из стандартов</figcaption></figure><p><b>Классический прямой рендеринг (forward rendering)</b> пересчитывал освещение для каждого объекта, что делало множество динамических источников света непрактичным. <b>Отложенный рендеринг разделил процесс на два прохода:</b> сначала пишутся геометрические атрибуты в G‑буфер, а уже затем выполняется расчёт освещения только в экранном пространсвте. Это позволило использовать десятки и сотни динамических источников света в кадре. А ведь сегодня это кажется обыденностью.</p><p><b>Но в то время, многие утверждали,</b> что g-буфер будет жрать много памяти, мощное сглаживание MSAA придется выкинуть, а все прозрачные объекты чем-то заменить, ведь они ломаются.</p><p><b>Но в реальности, индустрия нашла компромиссы,</b> ведь плюсы перевешивали все минусы. И так, взамен MSAA появились сначала новые виды сглаживания (FXAA, SMAA, позднее замененные TAA и TAAU), которые в итоге даже превзошли по качеству. А сам подход стал индустриальным стандартом.</p><h2>Физически корректный рендеринг (PBR, 2013–2016)</h2><figure><img src="https://media.tproger.ru/user-uploads/137227/2026-04-23/d62f7baa-326e-4b1a-9d3e-bb8398087f28.webp" alt="" /><figcaption>Физически корректные материалы</figcaption></figure><p><b>В эпоху до PBR материалы описывались стандартными параметрами </b>(specular power, glossiness), которые вели себя по-разному при разном освещении и требовали ручной подгонки под каждую сцену. <b>Физически корректный подход ввёл единую модель BRDF</b>, основанную на измеряемых дополнительных свойствах реальных материалов: metallic, roughness, albedo.</p><p><b>Однако по-началу, реакция была жесткой</b> - говорили о том, что все игры станут одинаковыми и пластиковыми, старые текстуры придется переделывать с нуля, а художники потеряют творческий контроль.</p><p><b>Но случилось другое: </b>PBR не уничтожил стилизацию. Он дал художникам предсказуемую основу, поверх которой можно накладывать стилистические решения. Переход на PBR конечно потребовал до-обучения сотрудников и введения в работу новых инструментов (например, как Substance Painter, Quixel), но результатом стал скачок в реализме и стабильностью материалов между разными сценами и проектами. <b>Сегодня даже стилизованные мультяшные игры используют PBR-пайплайн, адаптированный под эстетику.</b></p><h2>Наши дни</h2><p><b>Вот и сейчас, начиная с 2018 года,</b> всё началось с переноса технологий рейтрейсинга из киношного рендера, в игровой. Первые реализации были скромными: только тени или отражения при низком количестве лучей на пиксель..</p><p><b>Спустя семь лет, трассировка лучей уже стала стандартом в AAA-сегменте.</b> Cyberpunk 2077 в режиме Path Tracing, Alan Wake 2, Black Myth: Wukong с полным RT: это примеры того, как технология созрела и стала стандартом. Денойзинг и апскейлинг (включая DLSS) эволюционировали, сделав RT играбельным. Консоли текущего поколения получили аппаратные RT-блоки, а AMD и Intel догоняют NVIDIA в производительности трассировки.</p><p><b>Текущий переход к ИИ рендерингу демонстрирует все те же паттерны, что и предыдущие революции.</b></p><h2>Нас ждет очередная революция? Подведем итоги</h2><p><b>Каждая из прошлых революций требовала времени на адаптацию, обновление инструментария, обучение разработчиков и оптимизацию железа.</b> ИИ рендеринг не является исключением.</p><p><b>Он не отменяет работу художников и программистов,</b> а даёт им новый уровень абстракции: вместо ручной борьбы с шумом, сглаживанием или оптимизацией материалов, разработчики смогут полагаться на модели, обученные на огромных дата сетах фото-реалистичного или же стилизованного контента.</p><p>Более того, как мы уже убедились выше, история показывает, что после принятия новой парадигмы или технологий, индустрия не просто возвращается к прежнему уровню качества, а выходит на новую ступень. <b>Шейдеры не убили 2D-спрайты</b>, но подарили нам карты нормалей и динамические тени. <b>PBR не сделал игры однообразными</b>, а дал новую основу, как для фото-реализма, так и для стилизации (например, Dishonored 2).</p><p><b>ИИ-рендеринг не уничтожит «ручную» графику</b>, а позволит достичь в реальном времени визуальной сложности.</p><p>Другой вопрос, как разработчики будут пользоваться технологиями, ведь есть примеры, где разработчики, даже при значительном скачке технологий, делают шаг назад (привет Battlefield 6).</p><p><b>Следующие пять лет определят, насколько ИИ рендеринг проникнет в каждый аспект создания игр. Судя по текущей траектории, к 2030 году грань между "рендерингом" и "генерацией" станет неразличимой, либо очень стертой.</b></p>]]></content:encoded>
    </item>
    <item>
      <title>Аппаратное сжатие текстур: AFRC, PVRIC4 и Metal</title>
      <link>https://tproger.ru/translations/apparatnoe-szhatie-tekstur--afrc--pvric4-i-metal</link>
      <comments>https://tproger.ru/translations/apparatnoe-szhatie-tekstur--afrc--pvric4-i-metal?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/apparatnoe-szhatie-tekstur--afrc--pvric4-i-metal</guid>
      <description><![CDATA[<p>Сравнение трёх форматов аппаратного сжатия текстур — ARM AFRC, ImgTec PVRIC4 и Apple Metal Lossy. Точные данные RMSE, производительность в МПикс/сек, Vulkan BPC.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/apparatnoe-szhatie-tekstur--afrc--pvric4-i-metal">Аппаратное сжатие текстур: AFRC, PVRIC4 и Metal</a>»</p>]]></description>
      <category><![CDATA[Низкоуровневое программирование]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[ARM]]></category>
      <category><![CDATA[Алгоритмы сжатия]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 30 Mar 2026 15:22:10 GMT</pubDate>
      <content:encoded><![CDATA[<p>Перевод статьи <a href="https://www.ludicon.com/castano/blog/2026/03/hardware-image-compression/">Hardware Image Compression</a> Игнасио Кастаньо (Ignacio Castaño). Оригинал опубликован в марте 2026 года.</p><p>Одним из поводов для разочарования в области аппаратных форматов изображений всегда было медленное развитие. Разработчики обычно не решались поставлять текстуры в новом формате, пока он не становился повсеместно доступным — поддерживался большинством целевого железа и всеми вендорами без исключения. Сегодня три вендора предлагают собственные форматы аппаратного сжатия текстур на лету: ARM AFRC, ImgTec PVRIC4 и Apple Metal Lossy. Игнасио Кастаньо исследовал все три и сравнил их с программным сжатием реального времени Spark от NVIDIA.</p><p>— ARM AFRC (Pixel 8, Mali-G715) — явный победитель: по метрике RMSE значительно обходит Spark и других конкурентов во всех форматах.</p><p>— Apple Metal Lossy (A15/M2+) — коэффициент сжатия 1:2, API минималистичен: один флаг в дескрипторе текстуры.</p><p>— ImgTec PVRIC4 (Pixel 10) разочаровал: драйвер игнорирует запрошенный bitrate, качество хуже Spark для R и RG форматов.</p><p>— Vulkan-расширение VK_EXT_image_compression_control унифицирует доступ к аппаратному сжатию через параметр BPC (bits per component).</p><p>— Аппаратное сжатие — перспективная альтернатива программному, но пока ограничено современными топовыми устройствами.</p><h2>Контекст: почему это важно</h2><p>Разработчики обычно не решались поставлять текстуры в новом формате, пока он не становился широко доступным — то есть поддерживался большинством целевого железа и всеми вендорами. Например, хотя ATI представила форматы 3Dc в 2004 году вместе с Radeon X800 (R420) и открыла их через расширения D3D9, их использование не стало распространённым, когда Direct3D 10 стандартизировал их как BC4 и BC5 в 2007 году. Массовое применение началось лишь тогда, когда Direct3D 10 стал минимальным требованием к железу.</p><p><a href="https://www.crytek.com/games/crysis">Crysis</a> стала первой крупной игрой, поставляемой с BC5-текстурами, но большинство игр ещё долгие годы не решались устанавливать такое жёсткое требование к железу. Чтобы избежать задержек с принятием, форматы BC6 и BC7 разрабатывались совместно ATI и NVIDIA для Direct3D 11.</p><p>Именно поэтому сжатие текстур в реальном времени так интересно: когда кодировщик работает в реальном времени, внедрять новые аппаратные форматы значительно проще — не нужно ждать, пока будет подготовлен контент, целенаправленно созданный под них. Аппаратное сжатие устраняет эту проблему принятия: детали форматов не документируются, их использование абсолютно прозрачно — приложению не нужно явно указывать эти форматы, драйвер сжимает текстуры динамически в процессе рендеринга и загрузки изображений.</p><h2>Apple Metal: Lossy-сжатие</h2><p>Apple представила сжатие текстур с потерями в чипах A15 и M2 (оба используют одно поколение GPU). Оно обеспечивает коэффициент сжатия 1:2. Включить его на удивление просто — API минималистичен. Свойство compressionType дескриптора MTLTextureDescriptor принимает значение из перечисления MTLTextureCompressionType, и установка MTLTextureCompressionTypeLossy зачастую является единственным необходимым изменением:</p><p>Согласно таблицам возможностей Metal Feature Set Tables, все обычные пиксельные форматы поддерживают сжатие с потерями — включая 10-битные и форматы с плавающей точкой. Тестирование это подтвердило, однако основное внимание сосредоточено на форматах R8, RG8 и RGBA8.</p><p>Внутренний алгоритм Apple не задокументирован. По результатам реверс-инжиниринга lossy-форматов используется размер блока 8×4 пикселя — и они напоминают некоторые особенности форматов ETC и EAC. Несмотря на заявленное сжатие 1:2, на практике для каждого блока выделяется один байт метаданных, так что реальное потребление памяти чуть выше заявленного.</p><h3>Качество на M4 Pro</h3><p>Для форматов R и RG Metal Lossy показывает результаты лучше кодеков Spark EAC, но хуже BC4 и BC5. Результаты RMSE (Root Mean Square Error — среднеквадратичная ошибка; меньше = лучше):</p><p><b>Формат R:</b><br /><br /></p>МетрикаMetal Lossy (1:2)BC4 Medium (1:2)BC4 High (1:2)EAC_RG Low (1:2)EAC_RG Medium (1:2)EAC_RG High (1:2)RMSE1,85791,84691,71492,33992,29221,8636<p></p><p><b>Формат RG:</b><br /><br /></p>МетрикаMetal Lossy (1:2)BC5 Medium (1:2)BC5 High (1:2)EAC_RG Low (1:2)EAC_RG Medium (1:2)EAC_RG High (1:2)RMSE3,17573,30993,04424,22614,15923,3601<p></p><p>Прямое сравнение lossy RGBA8 с форматами Spark некорректно из-за разных коэффициентов сжатия: Metal Lossy поддерживает только 1:2, тогда как форматы Spark RGB(A) — 1:4. Тем не менее, для полноты картины:</p><p><b>Формат RGBA:</b><br /><br /></p>МетрикаMetal Lossy (1:2)ASTC 4×4 Low (1:4)ASTC 4×4 Medium (1:4)ASTC 4×4 High (1:4)BC7 Low (1:4)BC7 Medium (1:4)BC7 High (1:4)RMSE1,49476,29945,96865,36375,72135,35854,2136<p></p><h3>Производительность на M4 Pro</h3><p>С точки зрения производительности lossy-форматы показывают себя отлично и при достаточно большом размере текстуры упираются в пропускную способность памяти. Результаты на M4 Pro (16 ядер GPU) в МПикс/сек:</p><p></p>Метод409620481024512256Uncompressed (blit)41 61826 68043 74970 11144 939Metal Lossy (blit)41 80740 84743 10069 87348 729BC7 High (GPU)35 56342 23037 08234 22410 985<p></p><p>Обратите внимание, что пропускная способность стандартных блитов остаётся достаточно стабильной вне зависимости от размера текстуры. Кодеки Spark, напротив, имеют фиксированные накладные расходы, которые становятся заметнее при уменьшении размеров текстур. Интересен скачок скорости блитов при 512×512 — у него пока нет объяснения. Также стоит учесть, что кодеки Spark требуют дополнительного копирования из буфера вывода кодека в финальную сжатую текстуру — это дополнительные накладные расходы, которых можно было бы избежать, если бы Metal поддерживал запись в блочно-сжатые текстуры, как это делает Vulkan.</p><h2>Vulkan: расширение VK_EXT_image_compression_control</h2><p>В Vulkan расширение VK_EXT_image_compression_control даёт приложениям возможность запрашивать сжатие изображений с фиксированной скоростью. Расширение уже доступно на флагманских устройствах от ARM и Imagination. Включение потерявого сжатия в Vulkan несколько многословнее, чем в Metal, но на практике ненамного сложнее: нужно лишь расширить структуру VkImageCreateInfo, добавив в цепочку VkImageCompressionControlEXT.</p><p>Можно использовать флаг VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT, чтобы позволить реализации самой выбрать параметры сжатия:</p><p>Альтернативно можно явно указать флаги фиксированной скорости для управления допустимыми коэффициентами сжатия:</p><p>BPC (bits per component — бит на компонент) — несколько нестандартная единица, но она позволяет задавать коэффициент сжатия единообразно вне зависимости от количества каналов. Для справки, BPC существующих форматов блочного сжатия GPU:</p><p></p>ФорматКаналыРазмер на пиксельРазмер на каналBC1RGB4 bpp~1,33 bpcBC4R4 bpp4 bpcBC5RG8 bpp4 bpcBC7RGBA8 bpp2 bpcASTC 4×4RGBA8 bpp2 bpcASTC 6×6RGBA~3,55 bpp~1,18 bpc<p></p><p>Расширение VK_EXT_image_compression_control также присутствует в некоторых драйверах AMD и Qualcomm, однако, насколько известно, ни один из этих вендоров не поддерживает аппаратное сжатие изображений с фиксированной скоростью. В случае AMD расширение присутствует в драйвере RADV, чтобы Proton мог отключать потерявое сжатие фреймбуфера в некоторых играх, где оно вызывало проблемы с корректностью — через флаг VK_IMAGE_COMPRESSION_DISABLED_EXT.</p><h2>ARM AFRC: лучший результат среди всех</h2><p>ARM Fixed Rate Compression (AFRC) было анонсировано в 2021 году и впервые появилось в Mali-G510 в 2022-м, однако широкого распространения этот дизайн не получил. По-настоящему массовым AFRC стало с выпуском Mali-G715 и Mali-G615 в том же году. Тестирование проводилось на Pixel 8 с GPU Mali-G715.</p><p>Устройство сообщило поддержку следующих форматов сжатия с фиксированной скоростью (возможности значительно шире Metal Lossy):</p><p></p>Формат2 bpc3 bpc4 bpc5 bpcR82 bpp3 bpp4 bpp—RG84 bpp6 bpp8 bpp—RGB86 bpp—12 bpp15 bppRGBA88 bpp12 bpp16 bpp—<p></p><p>В отличие от Metal Lossy, AFRC не использует дополнительных байт метаданных — все управляющие биты находятся внутри самого блока. Изображение делится на блоки 8×8 пикселей, в ряде случаев разбиваемые на подблоки меньшего размера. Размер каждого блока 8×8 в байтах:</p><p></p>Формат2 bpc3 bpc4 bpc5 bpcR8162432—RG8324864—RGB864—96128RGBA86496128—<p></p><p>По результатам реверс-инжиниринга удалось установить: AFRC представляет цвета с использованием преобразования YCoCg, а представление пикселей напоминает вейвлет Хаара. Для каждого подблока 4×4 используется 16 коэффициентов, квантование которых зависит от режима. Форматы RGB и RGBA принципиально одинаковы — флаг в заголовке просто указывает, присутствует ли альфа-канал или блок полностью непрозрачен.</p><h3>Качество AFRC</h3><p>Качество AFRC впечатляет. В отличие от Metal, здесь можно сделать прямое сравнение с ASTC в реальном времени, поскольку Mali поддерживает сжатие 1:4:</p><p><b>Формат R:</b><br /><br /></p>МетрикаAFRC (1:2)EAC_R Low (1:2)EAC_R Medium (1:2)EAC_R High (1:2)RMSE<b>1,4937</b>2,33992,29221,8636<p></p><p><b>Формат RG:</b><br /><br /></p>МетрикаAFRC (1:2)EAC_RG Low (1:2)EAC_RG Medium (1:2)EAC_RG High (1:2)RMSE<b>2,2079</b>4,22614,15923,3601<p></p><p><b>Формат RGBA:</b><br /><br /></p>МетрикаAFRC (1:2)AFRC (1:4)ASTC 4×4 Low (1:4)ASTC 4×4 Medium (1:4)ASTC 4×4 High (1:4)RMSE<b>0,6679</b><b>3,4184</b>6,29945,96865,3637<p></p><p>Во всех случаях RMSE значительно ниже, то есть AFRC превосходит Spark ASTC при нацеливании на ASTC с кодировщиком реального времени. Тем не менее есть несколько случаев, когда Spark даёт более высокое качество: на очень гладких изображениях сжатие AFRC приводит к заметным паттернам дизеринга, раскрывающим границы блоков. Это особенно заметно при использовании AFRC в качестве текстуры с увеличением, тогда как для сжатия фреймбуфера — основного сценария применения — такие паттерны практически незаметны.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-03-30/7b1601e9-42b2-4416-a0d0-dfda1bf1cafa.webp" alt="Сравнение AFRC с дизерингом и без: AFRC сохраняет детали значительно лучше конкурентов при том же bitrate" /><figcaption>Сравнение AFRC с дизерингом и без: AFRC сохраняет детали значительно лучше конкурентов при том же bitrate</figcaption></figure><h3>Производительность AFRC (Pixel 8)</h3><p>Включение AFRC не вызывает значительных накладных расходов по сравнению с несжатыми загрузками текстур, за исключением некоторых размеров. Результаты на Pixel 8 в МПикс/сек:</p><p></p>Метод409620481024512256Uncompressed4 9613 9513 0632 2902 337AFRC 4 bpc5 5083 7921 7712 3412 318AFRC 2 bpc5 0414 4332 5562 2672 332Spark ASTC Q04 8104 2072 5033 6622 259Spark ASTC Q24 4813 7152 3192 9501 903<p></p><p>Пропускная способность здесь масштабируется с размером текстуры, а не остаётся стабильной. Накладные расходы одинаково влияют на блиты и compute-шейдеры Spark. В отличие от секции Metal, где lossy-блиты явно доминировали над Spark на малых размерах, здесь картина смешанная: Spark вплотную приближается к AFRC или превосходит его. Это показывает, что кодирование текстур в реальном времени вполне конкурентоспособно с аппаратным сжатием. Абсолютные числа здесь значительно ниже, чем на M4 Pro, — это принципиально разные классы устройств.</p><h2>ImgTec PVRIC4: разочарование от Pixel 10</h2><p>ImgTec впервые анонсировала поддержку PVRIC4 ещё в 2018 году для GPU серии Series 6, однако протестировать её удалось только с выходом Pixel 10 на чипе Series D. Первоначальное объявление намекало на то, что, как и Metal Lossy, PVRIC4 поддерживает только 50%-е сжатие, но расширение декларирует более широкий спектр опций:</p><p></p>Формат1 bpc2 bpc3 bpc4 bpcR81 bpp2 bpp3 bpp4 bppRG82 bpp4 bpp6 bpp8 bppRGBA84 bpp8 bpp12 bpp16 bpp<p></p><p>К большому удивлению, качество вывода оказалось одинаковым вне зависимости от BPC. Дальнейшее расследование показало: <b>драйвер игнорирует запрошенный BPC и всегда использует 4 bpc (сжатие 1:2)</b>. Формат блоков PVRIC4 — наиболее сложный из всех трёх вендоров: размер блоков составляет 16×16 пикселей, и, как в Metal Lossy, присутствует один байт метаданных на блок. Сделать реверс-инжиниринг практически не удалось.</p><h3>Качество PVRIC4</h3><p>Качество оказалось разочаровывающим. Для форматов R и RG Spark фактически превосходит PVRIC4 при нацеливании на стандартные форматы блочного сжатия, поддерживаемые этим железом:</p><p><b>Формат R:</b><br /><br /></p>МетрикаPVRIC4 (1:2)BC4 Medium (1:2)BC4 High (1:2)EAC_R Low (1:2)EAC_R Medium (1:2)EAC_R High (1:2)RMSE3,43461,84691,71492,33992,29221,8636<p></p><p><b>Формат RG:</b><br /><br /></p>МетрикаPVRIC4 (1:2)BC5 Medium (1:2)BC5 High (1:2)EAC_RG Low (1:2)EAC_RG Medium (1:2)EAC_RG High (1:2)RMSE5,43923,30993,04424,22614,15923,3601<p></p><p>Для RGBA прямое сравнение невозможно из-за разных коэффициентов сжатия, но качество также значительно хуже других вендоров:</p><p><b>Формат RGBA:</b><br /><br /></p>МетрикаPVRIC4 (1:2)ASTC 4×4 Low (1:4)ASTC 4×4 Medium (1:4)ASTC 4×4 High (1:4)RMSE2,31606,29945,96865,3637<p></p><h3>Производительность PVRIC4 (Pixel 10)</h3><p></p>Метод409620481024512256Uncompressed2 2992 6292 6431 9091 178PVRIC4 4 bpc2 5822 9723 8512 8771 102Spark ASTC Q03 3273 5093 0972 051911Spark ASTC Q23 0022 7592 4981 485634<p></p><p>Кривая пропускной способности на этом устройстве существенно отличается от Pixel 8: пик приходится на размеры 1024–2048, а не монотонно возрастает с размером. На больших размерах пропускная способность Spark фактически выше, чем у несжатых загрузок текстур. Это характерно для устройств, ограниченных пропускной способностью памяти: обычный блит должен прочитать всё входное изображение и записать обратно тот же объём данных, тогда как Spark записывает лишь 1/4 входных данных. Экономия на записи зачастую перекрывает вычислительные затраты кодирования.</p><p><b>Комментарий PowerVR Dev (ImgTec)</b><br />PVRIC4 поддерживает только сжатие 1:2. TFBC (доступен исключительно в чипах Rogue XE) поддерживал соотношения 1:2, 1:4 и 1:3. Дизайн расширения был спорным — многим не нравилась многословность выбора BPC, поэтому было решено экспонировать все BPC в рамках поддерживаемых соотношений и повышать их до поддерживаемого ratio. Это считалось допустимым, поскольку качество не деградирует относительно запроса приложения, а приложение всё равно обязано запрашивать реальный размер изображения, который не гарантирует уменьшения.</p><figure><img src="https://media.tproger.ru/user-uploads/133946/2026-03-30/34deaeec-ec94-4d39-9a82-dd707dcf71a6.webp" alt="Сравнение Spark ASTC с дизерингом и без. Программный Spark показывает хорошие результаты, но AFRC его превосходит" /><figcaption>Сравнение Spark ASTC с дизерингом и без. Программный Spark показывает хорошие результаты, но AFRC его превосходит</figcaption></figure><h2>Spark: программная точка отсчёта</h2><p><a href="https://github.com/NVIDIA/Spark">Spark</a> — библиотека NVIDIA для программного сжатия текстур в реальном времени. Работает на GPU как compute shader, поддерживает форматы BC1–BC7 и ASTC. В тесте выступает базовой точкой сравнения как лучшее доступное программное сжатие без специализированного железа.</p><p>Spark показывает стабильные результаты по форматам, но требует явного вызова compute-прохода — это дополнительный этап в пайплайне. Аппаратное сжатие, напротив, встроено в рендеринг и не требует дополнительного кода. Отдельный плюс Spark — предсказуемое и согласованное поведение на всех устройствах, что важно, если унифицированный вывод критичен для вашего сценария. Ни один из форматов аппаратного сжатия пока не доступен через WebGPU — если это изменится, расширить spark.js для их поддержки будет несложно.</p><h2>Итоги: кто победил</h2><p>ARM AFRC — явный победитель. Это не только превосходит программные реализации вроде Spark, но и обходит все остальные форматы по всем метрикам. Итоговая таблица RMSE по всем протестированным форматам:</p><p></p>ФорматRMSE 1:2RMSE 1:4R8 Metal Lossy1,8579—<b>R8 AFRC</b><b>1,4937</b>—R8 PVRIC43,4346—Spark BC41,7149—RG8 Metal Lossy3,1757—<b>RG8 AFRC</b><b>2,2079</b>—RG8 PVRIC45,4392—Spark BC53,0442—RGBA8 Metal Lossy1,4947—<b>RGBA8 AFRC</b><b>0,6679</b><b>3,4184</b>RGBA8 PVRIC42,3160—Spark BC7—4,2136<p></p><p>Стоит оговориться: результаты PVRIC4 могут не отражать полного потенциала железа — драйвер игнорирует запрошенный коэффициент сжатия и всегда использует 1:2. Возможно, эти результаты удастся пересмотреть после исправления проблемы.</p><p>Аппаратное сжатие — убедительная альтернатива программному. Главная оговорка — оно сейчас ограничено современными топовыми устройствами, которые как раз и располагают наибольшим объёмом памяти и пропускной способностью.</p><p>Даже когда нативное аппаратное сжатие доступно, есть веские причины продолжать использовать Spark. Вывод аппаратного сжатия различается у разных вендоров, и в некоторых случаях — как мы видели с PVRIC4 — качество уступает кодировщику реального времени. Если для вашего сценария критичен единообразный и предсказуемый вывод на всех вендорах, Spark остаётся правильным выбором.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какой ноутбук ты бы выбрал в 2000-м: чек-лист для олдов</title>
      <link>https://tproger.ru/articles/kakoj-noutbuk-ty-by-vybral-v-2000-m--chek-list-dlya-oldov</link>
      <comments>https://tproger.ru/articles/kakoj-noutbuk-ty-by-vybral-v-2000-m--chek-list-dlya-oldov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakoj-noutbuk-ty-by-vybral-v-2000-m--chek-list-dlya-oldov</guid>
      <description><![CDATA[<p>Ноутбуки 2000-го года: какими они были, где их можно было купить, сколько они стоили. Хиты начала 2000-х, какие модели были популярны. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakoj-noutbuk-ty-by-vybral-v-2000-m--chek-list-dlya-oldov">Какой ноутбук ты бы выбрал в 2000-м: чек-лист для олдов</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[Wi-Fi]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Россия]]></category>
      <category><![CDATA[Нейрочип]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 03 Jun 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В 2000 году покупка ноутбука была серьезным стратегическим решением, которое могли позволить себе единицы. В отличие от сегодняшнего подхода, когда простой смартфон в кармане по умолчанию мощнее любого компьютера начала века, тогда каждый параметр приходилось выверять с особой тщательностью. Вес в 3 кг и толщина корпуса в 4 см считались приемлемыми параметрами, два часа работы от батареи — роскошью. Наличие даже одного USB-разъема превращало устройство в технологический шедевр, а встроенный модем 56K выдавали за революционное достижение.</p><p>Покупатели смотрели на три ключевых аспекта: возможность апгрейда, наличие нужных портов и совместимость с офисными задачами. Бизнесмены охотились за IBM ThinkPad с их знаменитыми трекпоинтами (красными пупырышками в центре клавиатуры), творческая интеллигенция — за Apple PowerBook G3, а студенты довольствовались «серыми» Acer с рынка. При этом стоимость хорошей модели равнялась нескольким месячным зарплатам, поэтому к выбору подходили как к инвестиции на годы вперед.</p><p>Особый шик — найти устройство с DVD-приводом. Это означало, что можно смотреть фильмы в дороге, что для 2000 года было сродни магии. Сегодня такие критерии кажутся смешными, но именно они определяли компьютерную реальность начала тысячелетия, когда ноутбук только начинал превращаться из дорогой игрушки в рабочий инструмент.</p><h2>Уровень технологий в 2000-м — тренды и возможности</h2><p>Если бы вам в 2000-м сказали, что через двадцать лет ноутбук будет весить меньше килограмма, а его батареи хватит на целый день, вы бы, скорее всего, не поверили. В начале тысячелетия мобильные компьютеры были громоздкими, медленными и дорогими, но именно тогда закладывались основы того, чем мы пользуемся сейчас.</p><h3>Железо: процессоры, память и первые шаги к мобильности</h3><p>В 2000 году Intel представила Pentium 4 — процессор, который стал символом эпохи. Он работал на частотах до 1,5 ГГц (позже — до 3,8 ГГц), но грелся как печка и потреблял столько энергии, что ноутбуки с ним были редкостью.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/95d67b12-fd8b-4cda-9d5e-6fe023f3892d.png" alt="" /></figure><p>Вместо него в портативных машинах чаще стояли мобильные версии Pentium III или даже Celeron — слабее, но экономичнее.</p><p>Оперативки в обычном ноутбуке хватало лишь на базовые задачи: 64–128 МБ считались нормой, а 256 МБ — роскошью. Жесткие диски редко превышали 10–20 ГБ, при этом весили они немало и боялись тряски. SSD еще не существовало, зато в том же году появилась первая USB-флешка — DiskOnKey от израильской M-Systems. Восемь мегабайт за $50 казались чудом, ведь до этого данные переносили на дискетах или CD-R.</p><h3>Экран и графика: пиксели, которые мы помним</h3><p>Матрицы ноутбуков начала 2000-х — это низкое разрешение (1024×768 или даже 800×600), тусклые цвета и медленный отклик. IPS-технология уже существовала, но применялась только в дорогих профессиональных моделях, например, в линейке IBM ThinkPad. Большинство же довольствовалось TN-экранами с узкими углами обзора — наклоняешь крышку, и картинка выцветает.</p><p>Встроенная графика справлялась разве что с офисными приложениями и простыми играми вроде «Сапера».</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/37ee524f-6326-46b2-b0a5-cb14a2911f3f.jpg" alt="" /></figure><p>Дискретные видеокарты (например, ATI Mobility Rage или NVIDIA GeForce2 Go) встречались только в топовых моделях и требовали активного охлаждения — шумные кулеры стали неотъемлемой частью «игровых» ноутбуков.</p><h3>Программное обеспечение: Windows против всех</h3><p>Microsoft в 2000-м выпустила две ОС: стабильную Windows 2000 (на основе NT) и скандальную Windows ME (Millennium Edition). Вторая быстро стала притчей во языцех: лаги, синие экраны и бесконечные переустановки. Журнал PC World включил ее в список худших tech-продуктов в истории.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/e0406352-052c-4267-8552-fd90694f81a6.jpg" alt="" /></figure><p>Альтернативы? Linux тогда оставался уделом энтузиастов — драйверов не хватало, а интерфейсы вроде KDE и GNOME выглядели сыро. Apple готовила революцию в виде Mac OS X, но ее ноутбуки (PowerBook G3) работали на PowerPC и стоили как хороший подержанный автомобиль.</p><h2>Рынок: кто и за что платил</h2><p>В 2000 году ноутбук в России был не просто гаджетом — это был показатель статуса. Средняя цена на новые модели начиналась от 2000$, а топовые версии (например, IBM ThinkPad A20p или Apple PowerBook G3) могли стоить 3500–4000$.</p><p>Для сравнения: средняя зарплата в Москве тогда колебалась в диапазоне 150–200 долларов, в регионах — 80–120. Даже бюджетный ноутбук за $1500 (скажем, Compaq Presario 1200) обходился в 8–10 месячных зарплат для большинства россиян.</p><p>Покупали их в основном три категории людей:</p><ul><li>Бизнесмены и топ-менеджеры — чаще всего брали IBM ThinkPad (считались «неубиваемыми») или Toshiba Satellite (более доступные).</li><li>IT-специалисты — выбирали Dell Inspiron или Acer TravelMate, иногда «серый» импорт из-за границы.</li><li>Состоятельные частные пользователи — могли позволить себе Sony VAIO или Apple PowerBook, но таких было мало.</li></ul><p>Около 30–40% рынка занимали «серые» поставки — ноутбуки, ввезенные без официальной гарантии, но на $300–500 дешевле.</p><p>В 2000 году 1 доллар стоил ~28 рублей, а курс был относительно стабилен. Но даже с учетом этого ноутбук оставался предметом роскоши.</p><p>Что умел типичный ноутбук 2000 года:</p><ul><li>Работать 1,5–3 часа от батареи (NiMH или первые Li-ion аккумуляторы).</li><li>Подключаться к интернету через dial-up (56 Кбит/с) или, если повезло, по Ethernet (10/100 Мбит/с). Wi-Fi был экзотикой — стандарт 802.11b только появился, и адаптеры стоили сотни долларов.</li><li>Записывать CD (но не DVD — приводы для них появились позже).</li><li>Запускать игры типа Quake III на минималках, если хватало видеокарты.</li></ul><p>Это был мир, где ноутбук еще не стал главным компьютером, но уже перестал быть диковинкой. О том, где и как выбирали ноутбуки, читайте в следующем разделе.</p><h2>Где покупали ноутбуки в 2000-х и каким был выбор</h2><p>В 2000-х ноутбук в России покупали втридорога, с риском и азартом. Онлайн-магазинов тогда не существовало, да и сам интернет был не особенно доступным. Выбор невелик: приходилось либо довериться немногочисленным официальным дилерам, либо искать «серые» поставки в полуподпольных павильонах.</p><h3>Официальные каналы: салоны и бутики</h3><p>Крупные бренды вроде IBM, Toshiba или Acer продавали ноутбуки через авторизованных дилеров — например, сети «НИКС» или «Кей». Цены кусались: Acer TravelMate 340T с Pentium III 450 МГц стоил $2900, что равнялось 10–12 средним зарплатам москвича. Зато давали гарантию, а в комплекте иногда оказывался лицензионный Windows 98 SE.</p><p>Компания Apple в России официально почти не была представлена — PowerBook G3 и iBook везли из Европы или США, переплачивая за растаможку. В Москве их можно было найти в единичных бутиках на Тверской, но чаще покупали у перекупщиков.</p><h3>«Серый» рынок: Горбушка и «ящики»</h3><p>До 40% ноутбуков ввозили в обход официальных поставок. Главной точкой стала легендарная «Горбушка» в Москве — здесь продавали технику без гарантии, но на 300–500 долларов дешевле. Например, IBM Thinkpad 600e Pentium II 366 МГц здесь уходил за 800–1000, а не за $1500, как в салоне.</p><p>Во многом «Горбушка» была лотерей: можно нарваться на б/у устройство с битыми пикселями или криво перепрошитой Windows XP. Зато здесь же находили редкие модели вроде японских Toshiba с нерабочим модемом под местные стандарты.</p><h3>Провинция: компьютерные развалы и почта</h3><p>В регионах ноутбуки продавали на стихийных рынках — например, в «ДК Чкалова» в Новосибирске или «Галерее» в Екатеринбурге. Часто это были уцененные модели с дефектами или «европейские» версии без русской раскладки.</p><p>Еще один экзотический способ — заказ по каталогам вроде «Эльдорадо» или «М.Видео». Ждать приходилось неделями, а перед оплатой ноутбук нельзя было даже включить. Зато некоторые каталоги предлагали рассрочку — правда, под 30% годовых.</p><h3>Как выбирали?</h3><p>Эти критерии были основополагающими:</p><ul><li>Вес и толщина. Ноутбук в 3 кг и 4 см считался «ультрапортативным» и «тонким».</li><li>Наличие USB (редкость в 2000-м) и DVD-привода — без него нельзя было установить пиратский софт.</li><li>Срок автономности. Даже топовые модели работали от батареи 2–3 часа, а NiMH-аккумуляторы теряли емкость за год.</li></ul><p>Покупка сопровождалась ритуальными действиями: проверяли битые пиксели, громкость кулера и как открывается крышка. А потом гордо несли домой в пластиковом пакете — сумки для ноутбуков были экзотикой.</p><h2>Сравнение ноутбуков 2000 года и современных</h2><p>За 25 лет, прошедших с 2000-го, ноутбуки изменились во всем. Они выглядят и работают по-другому, стали более доступными и производительными. Появились революционные технологии, без которых мы сейчас уже не мыслим автономную работу на компьютере. Но так было не всегда, и проще всего оценить прогресс сравнением параметров техники начала 2000-х и современных моделей.</p><h3>Габариты и вес: эволюция портативности</h3><p>В 2000 году ноутбуки только начинали становиться по-настоящему мобильными. Флагманский Dell Latitude H500XT с его 2 кг веса и толщиной 29 мм считался верхом портативности. Для сравнения – современный Dell XPS 13 весит 1.2 кг при толщине 14.8 мм. Но настоящий контраст виден на примере Apple: PowerBook G3 2000 года (2.9 кг, 43 мм) против MacBook Air M1 (1.29 кг, 16.1 мм).</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/3f61513f-012f-43cf-bc3b-f04348f14dd9.png" alt="" /></figure><p>Интересно, что уменьшение габаритов не сказалось на размерах экранов. Если в 2000-х стандартом были 12-14 матрицы, то сегодня большинство ноутбуков сохраняют эти же диагонали, просто в более тонких корпусах. Секрет — в отказе от оптических приводов, переходе на плоские клавиатуры и использовании более компактных элементов.</p><h3>Дисплеи: от бледных TN к OLED</h3><p>Типичный ноутбук начала века оснащался TN-матрицей с разрешением 1024×768. Современные стандарты — IPS или OLED с Full HD/4K.</p><p>Разница колоссальная:</p><ul><li>контрастность: 200:1 тогда против 1000:1 и выше сейчас;</li><li>цветовой охват: 45% NTSC в сравнении со 100% sRGB/DCI-P3 у современных моделей;</li><li>углы обзора: 60° тогда и 178° сегодня:</li><li>яркость: 150 нит против 400+ нит.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/7463e5f2-c204-491a-b018-dc55ba61795b.png" alt="" /></figure><p>Особенно показательна эволюция Apple: PowerBook G3 2000 года имел 14″ экран с 1024×768, тогда как современный MacBook Pro 14″ предлагает 3024×1964 пикселей с технологией XDR.</p><h3>Производительность: от Pentium III к нейрочипам</h3><p>Сравним два поколения.</p><p>2000 год (Dell Latitude H500XT):</p><ul><li>процессор: Pentium III 500 МГц (1 ядро);</li><li>ОЗУ: 128 МБ;</li><li>графика: NeoMagic с 4 МБ памяти;</li><li>накопитель: 6 ГБ HDD.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/c8e450ec-b88a-40f2-aec0-d2a51e0ac481.jpeg" alt="" /></figure><p>2024 год (Dell XPS 13):</p><ul><li>процессор: Core i7-1360P (12 ядер);</li><li>ОЗУ: 16 ГБ;</li><li>графика: Iris Xe (96 EU);</li><li>накопитель: 1 ТБ SSD.</li></ul><p>Производительность CPU выросла в 100+ раз, графики — в 500+ раз. Современный смартфон превосходит топовые ноутбуки 2000 года. При этом энергопотребление сократилось в 3-5 раз.</p><h3>Порты и подключения: от проводов к беспроводным технологиям</h3><p>Типичный набор портов 2000 года:</p><ul><li>PS/2 для клавиатуры/мыши;</li><li>VGA для монитора;</li><li>PC Card для модемов;</li><li>FireWire для периферии;</li><li>1×USB 1.1 (12 Мбит/с);</li><li>Параллельный порт для принтеров.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/229dc982-c684-44f7-b38a-18945fa82cf7.jpeg" alt="" /></figure><p>Современные реалии:</p><ul><li>Thunderbolt 4 (40 Гбит/с);</li><li>Wi-Fi 6E (до 9.6 Гбит/с);</li><li>Bluetooth 5.3;</li><li>2-4×USB-C.</li></ul><p>Особенно впечатляет эволюция беспроводных технологий. В 2000 году Wi-Fi только появлялся (802.11b, 11 Мбит/с), а сегодня 802.11ax предлагает скорости до 9.6 Гбит/с.</p><h3>Автономность: от 120 минут к рабочему дню</h3><p>Батареи NiMH/NiCd обеспечивали 1.5-3 часа работы.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/9d57635d-464d-4537-8a4f-d129df7aa2f0.jpg" alt="" /></figure><p>Современные Li-Pol аккумуляторы с энергоэффективными процессорами работают 8-18 часов.</p><p>При этом:</p><ul><li>мощность выросла в десятки раз;</li><li>время зарядки сократилось с 3-4 часов до 1-2 часов;</li><li>срок службы увеличился с 300 циклов до 1000+.</li></ul><p>Компания Apple особенно преуспела: PowerBook G3 работал 4 часа, MacBook Air M1 – до 18 часов.</p><h3>Цены и доступность: от роскоши к массовости</h3><p>В 2000 году:</p><ul><li>Dell Latitude H500XT: $3600 (~30 средних зарплат в России);</li><li>PowerBook G3: $3500.</li></ul><p>В 2024:</p><ul><li>Dell XPS 13: $999-1999 (~1,5-2 средних зарплат);</li><li>MacBook Air M1: $999.</li></ul><p>Покупательная способность выросла в разы. За $1000 сегодня можно получить устройство, превосходящее топовые модели 2000 года во всех аспектах.</p><p>Что появилось нового:</p><ul><li>сенсорные экраны и тачпады;</li><li>веб-камеры и биометрическая аутентификация;</li><li>SSD накопители;</li><li>беспроводные технологии;</li><li>поддержка искусственного интеллекта;</li><li>голосовые помощники;</li><li>датчики освещения и движения.</li></ul><p>Что исчезло:</p><ul><li>дисководы (флоппи, CD/DVD);</li><li>PS/2, VGA, FireWire порты;</li><li>сменные батареи (в большинстве моделей);</li><li>кнопочные тачпады;</li><li>апгрейд ОЗУ и накопителей (во многих моделях).</li></ul><h3>Выводы</h3><p>За 20 лет ноутбуки стали:</p><ul><li>в 2-3 раза легче и компактнее;</li><li>в 100+ раз производительнее;</li><li>в 5-10 раз доступнее относительно доходов;</li><li>в 4-6 раз более автономными.</li></ul><p>При этом мы потеряли в ремонтопригодности и универсальности подключения периферии. Современные ультрабуки — это технологическое чудо, но старые ноутбуки обладали особой харизмой и инженерной смелостью, которую сегодня встретишь редко.</p><h2>Хиты начала 2000-х — топ-3 ноутов того времени</h2><p>В начале нулевых ноутбук в России перестал быть экзотикой, но оставался дорогим гаджетом, недоступным массовому покупателю. Приобретали их в основном бизнесмены, IT-специалисты и обеспеченные частники. Три модели особенно запомнились пользователям — они стали символами эпохи, когда портативные компьютеры только начинали входить в повседневную жизнь.</p><h3>IBM ThinkPad T23 — неубиваемый бизнес-класс</h3><p>Когда в 2001 году на прилавках появился ThinkPad T23, он сразу стал мечтой офисных работников. За $2500-3000 покупатель получал магниевый корпус, защищенный от ударов и царапин, а также фирменную клавиатуру с идеальным ходом клавиш. Под капотом скрывался Pentium III-M на 1.13 ГГц, 256 МБ оперативки и графический контроллер S3 SuperSavage с 16 МБ памяти.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/781fbe2a-78dd-4f8a-a724-b8e988daab32.png" alt="" /></figure><p>Главной фишкой T23 стал трекпоинт — красная точка между клавишами G, H и B, заменявшая мышь. Многие до сих пор считают его лучшим указательным устройством для ноутбуков. В комплекте шла Windows XP Professional, а батареи хватало на 3-4 часа работы. Особенно ценили эту модель за модульную конструкцию — заменить жесткий диск или оперативку можно было за пару минут.</p><h3>Toshiba Satellite 1800 — народный любимец</h3><p>В 2001-2002 годах Toshiba Satellite 1800 стал самым доступным ноутбуком с приличными характеристиками. За $1500-1800 предлагали Pentium III 800 МГц, 128 МБ RAM и 15-дюймовый экран с разрешением 1024×768. Графика ATI Rage Mobility с 8 МБ памяти позволяла комфортно играть в «Космических рейнджеров» или «Героев III».</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/e1755e89-ae69-483d-ad97-46069cc93a5b.png" alt="" /></figure><p>Модель запомнилась необычным дизайном — серебристая крышка с фиолетовым логотипом Toshiba выглядела по-космически для того времени. В комплекте шел DVD-привод, что тогда было редкостью. Пользователи любили Satellite за надежность, хотя вес в 3.2 кг и толщину 4.5 см сложно назвать портативными по современным меркам.</p><h3>Acer TravelMate 450 — бюджетный универсал</h3><p>Когда в 2002 году Acer выпустила TravelMate 450, она сделала ставку на оптимальное соотношение цены и возможностей. За $1200-1400 покупатель получал Celeron 1.2 ГГц, 256 МБ памяти и 30 ГБ жесткий диск — неплохие характеристики для офисной работы. 14.1-дюймовый экран с разрешением 1024×768 хоть и страдал от узких углов обзора, но выглядел лучше, чем у многих конкурентов.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-05-15/6fb4eb3e-c757-47de-b2cf-e5186353d57e.jpeg" alt="" /></figure><p>TravelMate особенно полюбили студенты и представители свободных профессий, которых сейчас называют фрилансерами. Ноутбук весил 2.7 кг, работал от батареи до 2.5 часов и поддерживал апгрейд — можно было добавить память или заменить винчестер. В России его часто покупали в «сером» варианте без гарантии, но за $900-1000, что делало модель одним из самых доступных ноутбуков в своем классе.</p><h3>Что объединяло эти модели?</h3><p>Все три ноутбука стали культовыми не столько из-за технических характеристик, сколько благодаря удачному сочетанию цены, надежности и возможностей. ThinkPad T23 показал, что бизнес-ноутбук может быть удобным инструментом, а не просто статусной вещью. Toshiba Satellite 1800 доказал, что мультимедийные функции важны не только профессионалам. Acer TravelMate 450 открыл дорогу на рынок бюджетным моделям достойного качества.</p><p>Сегодня эти устройства кажутся архаичными, но именно они заложили основы того, какими должны быть современные ноутбуки. Их владельцы до сих пор вспоминают «теплый ламповый» звук жестких дисков, треск модемов и то особое чувство, когда открываешь крышку и понимаешь — теперь ты мобилен. В этом и была магия начала 2000-х, когда технологии только начинали менять повседневную жизнь.</p><h2>Итоги</h2><p>Два десятилетия превратили ноутбуки из дорогой экзотики в привычный инструмент. Если в 2000-м их покупали как статусные гаджеты, сегодня это рабочие лошадки, которые есть у каждого студента. Мы выиграли в мощности, автономности и удобстве, но потеряли ту особую магию, когда каждый запуск Windows 2000 казался небольшим чудом. Современные ультрабуки в сотни раз производительнее старых «топов», но уже не вызывают того трепета — стали обыденностью, как микроволновка или смартфон.</p><p>Главное изменение — в нашем восприятии. Раньше ноутбук берегли как фамильную ценность, сегодня его меняют каждые 3-4 года. Исчезли ритуалы вроде очистки трекпоинта зубочисткой или гордости за «апгрейд до 256 МБ оперативки». Но именно эти первые неуклюжие модели проложили путь к той мобильности, без которой мы теперь не представляем жизнь. Они были несовершенны, но именно с них началась настоящая компьютерная революция.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышла KDE Plasma 6.3.0: улучшена точность цветопередачи, графика и многое другое</title>
      <link>https://tproger.ru/news/--vywla-kde-plasma-6-3-0--uluchwena-tochnost-cvetoperedachi--grafika-i-mnogoe-drugoe</link>
      <comments>https://tproger.ru/news/--vywla-kde-plasma-6-3-0--uluchwena-tochnost-cvetoperedachi--grafika-i-mnogoe-drugoe?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--vywla-kde-plasma-6-3-0--uluchwena-tochnost-cvetoperedachi--grafika-i-mnogoe-drugoe</guid>
      <description><![CDATA[<p>KDE Plasma 6.3.0 улучшила цветопередачу, графику и интерфейс. Чётче рендеринг, новые функции в KRunner, панелях и меню приложений</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--vywla-kde-plasma-6-3-0--uluchwena-tochnost-cvetoperedachi--grafika-i-mnogoe-drugoe">Вышла KDE Plasma 6.3.0: улучшена точность цветопередачи, графика и многое другое</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 12 Feb 2025 08:22:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда <b>KDE</b> представила обновление <b>Plasma 6.3.0</b>, в котором улучшена точность цветопередачи, графика и пользовательский интерфейс.</p><p>Это <b>первое крупное обновление</b> после релиза Plasma 6. Оно делает систему <b>ещё более удобной и функциональной</b>.</p><h2>Точность цветопередачи и чёткость графики</h2><p>Одно из главных улучшений — <b>новый алгоритм рендеринга</b> в KWin, оконном менеджере Plasma. Теперь он <b>точнее выравнивает элементы по пиксельной сетке</b>, снижая размытие и делая изображение <b>более чётким</b>.</p><p>Кроме того, <b>улучшена цветопередача</b>, особенно при использовании <b>режима Night Light</b>. В настройках появился <b>регулятор точности цветопередачи</b>, который даёт больше контроля над изображением.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-02-12/88751abf-3746-4355-8d45-94b9b798beb6.jpg" alt="" /></figure><h2>Обновления интерфейса</h2><h2>1. Улучшено управление панелями</h2><p>Теперь можно <b>клонировать панели</b> в один клик. Нужно лишь <i>войти в <b>режим редактирования</b> &gt; нажать <b>«Клонировать панель»</b> &gt; выбрать положение новой панели</i>.</p><h2>2. Изменения в меню запуска приложений</h2><ul><li>Появилась новая категория <b>«Справка»</b></li><li>Категория <b>«Настройки» теперь объединена с «Системой»</b></li></ul><h2>3. Обновления контекстного меню</h2><p>Теперь в нём есть <b>«Показать объект»</b> для символических ссылок. Ранее эта функция была только в файловом менеджере <b>Dolphin</b>.</p><h2>Другие улучшения</h2><ul><li><b>KRunner</b> теперь поддерживает <b>переключение категорий с клавишами </b><i>Page Up/Page Down и Ctrl + Up/Ctrl + Down</i>.</li><li>Виджет <b>прогноза погоды</b> теперь может использовать данные <b>Deutscher Wetterdienst</b>.</li><li>В Plasma теперь можно <b>автоматически отключать тачпад</b> при использовании мыши.</li><li>При настройке точки доступа система <b>автоматически генерирует сложный пароль</b>.</li><li>Менеджер приложений <b>Discover </b>теперь предупреждает, если обновления могут изменить разрешения приложений.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>VK запустила дипфейки. Егор Крид ушёл из рэпа и решил войти в IT</title>
      <link>https://tproger.ru/articles/vk-zapustila-dipfejki-egor-krid-ushjol-iz-rjepa-i-reshil-vojti-v-it</link>
      <comments>https://tproger.ru/articles/vk-zapustila-dipfejki-egor-krid-ushjol-iz-rjepa-i-reshil-vojti-v-it?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/vk-zapustila-dipfejki-egor-krid-ushjol-iz-rjepa-i-reshil-vojti-v-it</guid>
      <description><![CDATA[<p>VK выпустила мини-приложение для создания дипфейков в Видео или Клипах. Мы протестировали его и заставили Егора Крида войти в IT.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/vk-zapustila-dipfejki-egor-krid-ushjol-iz-rjepa-i-reshil-vojti-v-it">VK запустила дипфейки. Егор Крид ушёл из рэпа и решил войти в IT</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Распознавание]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 24 Nov 2022 12:57:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Технологию по созданию дипфейков уже можно попробовать <a href="https://vk.com/fakeit?force_redirect_to_app=1">в специальном мини-приложении</a>.</p><h2>Как это работает</h2><p>Можно выбрать готовое видео или снять собственное, после чего нейросеть проанализирует запись и заменит лицо героя на лицо знаменитости. Выгрузить видео на смартфон нельзя, только добавить его в VK Видео или Клипы. В будущем дипфейки можно будет использовать во Звонках.</p><p>На момент публикации в приложении доступны лица Niletto, Егора Крида, Сергея Жукова, Ольги Бузовой, Клавы Коки, Дани Милохина и Кати Адушкиной.</p><figure><img src="https://media.tproger.ru/uploads/2022/11/Group-1.png" alt="" /></figure><p>Генерируем дипфейк с лицом Егора Крида</p><p>Большинство дипфейк-решений работают по принципу независимой обработки каждого кадра, поэтому даже минимальные изменения в положении и освещении лица на видео часто приводят к дрожанию и бликам. Мы же &lt;…&gt; решили обрабатывать видео как последовательность кадров с помощью рекуррентной нейронной сети — это позволило &lt;…&gt; использовать возможности нейронной сети более оптимальным образом, кратно ускорив генерацию дипфейков.</p><p>Я с нетерпением жду, когда в VK появятся Never Gonna Give You Up в исполнении Сергея Жукова или, к примеру, случай в казино и негодяем-крупье с участием Дани Милохина.</p><h2>Тест приложения: мой дипфейк</h2><p>Ещё вы можете посмотреть мой дипфейк: я заставил Егора Крида покинуть рэп-игру и заняться разработкой на Python. Приложение пока что работает нестабильно, и видео приходилось перезаписывать, а сам VK — перезапускать.</p><p>Ещё приложение сжимает запись, если записывать его инструментами VK. Видео становится мутным, а звук — шумным, хотя в оригинальной записи таких проблем нет.</p><p>Чтобы повысить качество дипфейка, пришлось сперва записать его на встроенную камеру, а уже потом — загружать в приложение.</p>]]></content:encoded>
    </item>
    <item>
      <title>Lucasfilm наняла видеоблогера, который улучшил «Мандалорца» с помощью дипфейка. У него получилось лучше, чем у киностудии</title>
      <link>https://tproger.ru/news/lucasfilm-nanjala-videoblogera-kotoryj-uluchshil-mandalorca-s-pomoshhju-dipfejka</link>
      <comments>https://tproger.ru/news/lucasfilm-nanjala-videoblogera-kotoryj-uluchshil-mandalorca-s-pomoshhju-dipfejka?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Борисов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/lucasfilm-nanjala-videoblogera-kotoryj-uluchshil-mandalorca-s-pomoshhju-dipfejka</guid>
      <description><![CDATA[<p>Видеоблогер так хорошо использовал deepfake для омолаживания Люка Скайуокера, что Lucasfilm пригласила его на работу на должность старшего художника.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/lucasfilm-nanjala-videoblogera-kotoryj-uluchshil-mandalorca-s-pomoshhju-dipfejka">Lucasfilm наняла видеоблогера, который улучшил «Мандалорца» с помощью дипфейка. У него получилось лучше, чем у киностудии</a>»</p>]]></description>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Фильмы]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 27 Jul 2021 07:03:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>Киностудия Lucasfilm <a href="https://www.cnet.com/news/lucasfilm-hires-deepfake-youtuber-who-fixed-the-mandalorian/#ftag=CAD590a51e">наняла</a> автора YouTube-канала Shamook на должность старшего художника по захвату лица. В компании оценили, как видеоблогер применил дипфейк на отрывке из сериала «Мандалорец».</p><h2>Lucasfilm использовала CGI</h2><p>Lucasfilm в 2019 году выпустила сериал «Мандалорец», в котором появлялся молодой Люк Скайуокер. Актёр Марк Хэмилл, игравший этого персонажа в «Звёздных войнах», к тому моменту уже постарел.</p><p>Киношники решили омолодить Скайуокера с помощью <a href="https://ru.wikipedia.org/wiki/CGI_(%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0)">технологии CGI</a>. Это обычная компьютерная графика — её использовали, например, для создания персонажа Дейви Джонса из «Пиратов Карибского моря».</p><h2>Shamook использовал deepfake</h2><p>Автор YouTube-канала Shamook использовал более продвинутую <a href="https://ru.wikipedia.org/wiki/Deepfake">технологию deepfake</a>, которая использует нейросети и искусственный интеллект.</p><p>Поклонникам серии фильмов больше понравился вариант Shamook.</p><p>Вот то самое видео:</p><p>К тому моменту видео Shamook уже были известны в интернете. Он помещал лица актёров в шоу и фильмы, в которых они никогда не снимались. Все тогда восторгались и ужасались дипфейком.</p><h2>Видеоблогера взяли в Lucafilm</h2><p>У Shamook так хорошо получился молодой Скайуокер, что его пригласили на работу в Lucasfilm — на должность старшего художника по захвату лица.</p><p>Студия подтвердила это изданию <a href="https://www.indiewire.com/2021/07/lucasfilm-hires-deepfake-youtuber-mandalorian-skywalker-vfx-1234653720/">IndieWire</a>.</p><p>Источник: <a href="https://www.cnet.com/news/lucasfilm-hires-deepfake-youtuber-who-fixed-the-mandalorian/#ftag=CAD590a51e">CNet</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Epic Games разработала инструмент на базе Unreal Engine для создания фотореалистичных лиц</title>
      <link>https://tproger.ru/news/epic-games-razrabotala-instrument-na-baze-unreal-engine-dlja-sozdanija-fotorealistichnyh-lic</link>
      <comments>https://tproger.ru/news/epic-games-razrabotala-instrument-na-baze-unreal-engine-dlja-sozdanija-fotorealistichnyh-lic?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/epic-games-razrabotala-instrument-na-baze-unreal-engine-dlja-sozdanija-fotorealistichnyh-lic</guid>
      <description><![CDATA[<p>Инструмент на базе Unreal Engine создаёт сверхреалистичные анимированные лица за считанные минуты и поддерживает захват движения.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/epic-games-razrabotala-instrument-na-baze-unreal-engine-dlja-sozdanija-fotorealistichnyh-lic">Epic Games разработала инструмент на базе Unreal Engine для создания фотореалистичных лиц</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 11 Feb 2021 11:00:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>На сайте игрового движка Unreal Engine появилась <a href="https://www.unrealengine.com/en-US/digital-humans">страница</a>, посвящённая новому проекту Epic Games — MetaHuman Creator. Инструмент позволяет создавать сверхреалистичные анимированные лица людей.</p><p>Преимуществом MetaHuman Creator на фоне конкурентов является не только высокое качество итогового материала, но и возможность использовать в процессе все основные технологии захвата движения.</p><p>Также инструмент позволяет создавать персонажей буквально в считанные минуты, пишет The Verge. При этом их можно одеть в «эксклюзивный наряд», изменить причёску по своему усмотрению, а управление персонажами можно осуществлять прямо в браузере.</p><p>Скачать MetaHuman Creator и сэмпловых персонажей можно на <a href="https://www.unrealengine.com/en-US/digital-humans">официальном сайте</a> проекта. То, как они выглядят, вы можете посмотреть в видео ниже:</p><p>Источник: <a href="https://www.unrealengine.com/en-US/digital-humans">Unreal Engine</a></p>]]></content:encoded>
    </item>
    <item>
      <title>В ретро-консоль SNES добавили трассировку лучей</title>
      <link>https://tproger.ru/news/v-retro-konsol-snes-dobavili-trassirovku-luchej</link>
      <comments>https://tproger.ru/news/v-retro-konsol-snes-dobavili-trassirovku-luchej?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-retro-konsol-snes-dobavili-trassirovku-luchej</guid>
      <description><![CDATA[<p>Разработчик Бен Картер собрал проект SuperRT: внешний картридж с тремя ядрами по 50 МГц приносит трассировку лучей на приставку тридцатилетней давности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-retro-konsol-snes-dobavili-trassirovku-luchej">В ретро-консоль SNES добавили трассировку лучей</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 16 Dec 2020 13:27:36 GMT</pubDate>
      <content:encoded><![CDATA[<figure><img src="https://media.tproger.ru/uploads/2020/12/Screen-Shot-2020-12-16-at-16.22.24.png" alt="" /></figure><p>Разработчик Бен Картер <a href="https://www.shironekolabs.com/posts/superrt/">опубликовал</a> на своём сайте Shironeko Labs новый проект — SuperRT. Это аппаратная платформа, которая добавляет в вышедшую в 1990 году консоль SNES поддержку технологии трассировки лучей. То есть то, ради чего современные геймеры покупают видеокарты NVIDIA Ampere, энтузиаст реализовал на консоли 30-летней давности (конечно же с поправкой на поддерживаемую устройством графику).</p><p>Внешний картридж, подключаемый к SNES, получил три дополнительных вычислительных ядра. Частота каждого из них 50 МГц — этого более, чем достаточно, чтобы «завести» трассировку.</p><p>Итоговое устройство умеет просчитывать и отображать геометрию, цвета, тени, а также отражения около 50 млн «базовых» объектов. К ним относятся такие объекты как сфера, плоскости и трёхмерные объёмы. Дизассемблированный командный буфер, в который чип записывает проделанные вычисления, выглядит следующим образом:</p><figure><img src="https://media.tproger.ru/uploads/2020/12/Screen-Shot-2020-12-16-at-16.29.24.png" alt="" /></figure>]]></content:encoded>
    </item>
    <item>
      <title>Интервью с организатором CG EVENT и автором «Понимая Maya» Сергеем Цыпцыным</title>
      <link>https://tproger.ru/interview/sergey-tsyptsyn-interview</link>
      <comments>https://tproger.ru/interview/sergey-tsyptsyn-interview?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Типичный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/interview/sergey-tsyptsyn-interview</guid>
      <description><![CDATA[<p>Организатор главного в СНГ события по компьютерной графике и автор учебника «Понимая Maya» отвечает на вопросы о себе, CG и конференции.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/interview/sergey-tsyptsyn-interview">Интервью с организатором CG EVENT и автором «Понимая Maya» Сергеем Цыпцыным</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Интервью]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 12 Dec 2019 11:54:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сергей Цыпцын — организатор главного в СНГ события в области компьютерной графики «CG EVENT». Он культовая личность в русскоязычном CG-сообществе, автор книги «Понимая Maya» — одного из главных учебников по CG на русском языке. Сергей Цыпцын собрал вокруг себя огромное количество учеников и уже много лет в промежутках между сёрферскими сезонами делится с профессионалами компьютерной графики своим опытом и необычным взглядом на вещи. Недавно по приглашению CG-команды компании Wargaming (это те самые ребята, которые делают компьютерную графику в <a href="https://youtu.be/Vx867tE6P4w">рекламе World of Tanks</a> и рисуют целые <a href="https://youtu.be/oVWEb-At8yc">CG-линкоры</a> для группы Sabaton) Сергей побывал в Минске, где рассказал о трендах в развитии визуального контента. Также он дал небольшое интервью, в котором рассказал о карьере в компьютерной графике, организации крупнейшего в России отраслевого ивента и самых значимых для CG фильмах.</p><h2>Про старт карьеры в CG в 90-е</h2><p>Я на самом деле поздно пришёл в компьютерную графику, в 30 лет. Это был 1996 год. Сначала я работал в традиционном IT — писал базы данных, работал в технической поддержке компании Steepler. Там был и программистом, и всеми, кем угодно. Но у компании Steepler было специальное подразделение, оно называлось Steepler Graphics Group. Они продавали Silicon Graphics — это были какие-то космические станции, всё было какое-то инопланетное. Я как-то раз к ним зашёл и подумал: «Ничего себе, вот это жизнь, вот это круто!». Так случилось, что в 1996 году они позвали меня на работу. Я стал заниматься техническим маркетингом — показывал Power Animator, потом Maya и другие безумные софты людям. Делал так, чтобы они захотели их купить. Это были и продажи, и маркетинг, и технические демо, и всё остальное.</p><h2>Про интерес к компьютерной графике</h2><p>В общем-то в графику меня тянуло и раньше, ещё когда я в университете работал, мне нравилось визуализировать разные данные. Например, я писал траектории поражающих элементов на OpenGL. Интерес к отрасли возник у меня на фоне интереса к визуализации данных. Мне году в 1991 попалась на глаза книжка «Когнитивная графика». Там было как раз о том, что есть циферки, и надо сделать так, чтобы по этим циферкам человек получал какие-то полезные знания. Для этого предлагалось нарисовать смешные графики — их я и рисовал. А потом, в 1996 году, когда я пришёл в CG, стало можно рисовать уже всякие глупости, не только графики.</p><h2>Про физиков и лириков</h2><p>Людей, который умеют и программировать, и рисовать, не очень много, и они на вес золота. По моему мнению, художника ещё можно как-то научить программировать — это набор вменяемых скиллов, рано или поздно он преодолеет свои страхи и будет делать осмысленные вещи. А вот научить программиста рисовать — это сложнее. Там уже, по-моему, действуют какие-то генетические ограничения. Нет, конечно, можно его научить худо-бедно что-то изображать, но вот научить его рисовать по-настоящему не получится.</p><h2>Про секрет успеха CG Event</h2><p>Я делаю ивент интуитивно. Секрет такой: заниматься тем, что тебе интересно.</p><p>Мы собираемся уже 13 лет — будет 29-й ивент. Да, это карма: мне когда-то сказали, что моё предназначение — собирать людей. Этим я, в общем-то, и занимаюсь. Я стал преподавать в 1999 году и понял, что моё предназначение — не пиксели красить, по темпераменту не подходит. А вот рассказывать об этом у меня получается хорошо, и людям нравится.</p><p>В целом CG Event — это плохой бизнес-проект, потому что он завязан на одного человека, на меня. Многочисленные консультанты говорят, что это уязвимый бизнес. Но как случилось — так случилось. Я долго преподавал, накопил большое количество учеников, потом написал книжку, она вышла в 2007 году, вокруг неё собралось определённое сообщество. Плюс я проводил с 1999 года семинары «Пользователи Maya», и они в итоге выросли в CG Event. Ну и до сих пор люди приходят на CG Event именно ко мне. Конечно, с точки зрения бизнеса это плохо, но мне приятно.</p><p>Я недавно оглянулся и понял, что конференция одна из самых старых, даже из IT-шных. А если рассматривать её как отраслевую конференцию, посвящённую именно CG, то это одно из крупнейших событий в мире. Так как это дело моей жизни, я продолжаю им заниматься. Это и хобби, и бизнес, и общение с друзьями — всё вместе, в одном флаконе.</p><p>Было много смешных попыток сделать какие-то альтернативы, но когда люди занимаются этим параллельно с какими-то проектами или для каких-то других целей, то, как правило, их хватает на раз или два.</p><p>Я делаю ивент интуитивно. Секрет такой: заниматься тем, что тебе интересно. Сейчас меня штырит от искусственного интеллекта, так у меня половина ивента про искусственный интеллект. На меня ворчат, пытаются как-то повлиять, но я всё равно буду этим заниматься, потому что это авторитарное и интуитивно построенное мероприятие. Если мне не будет интересно, то всё начнёт киснуть. Поэтому скажу так: строить сообщество важно и нужно, но конкретных советов я дать не могу.</p><h2>Про главное кино для развития CG</h2><p>«Парк Юрского периода», «Звёздные войны», второй «Терминатор». Из более современного — первые «Трансформеры» и «Особо опасен» Тимура Бекмамбетова.</p>]]></content:encoded>
    </item>
    <item>
      <title>Чайник из Юты: история эталонной 3D-модели</title>
      <link>https://tproger.ru/blogs/utah-teapot</link>
      <comments>https://tproger.ru/blogs/utah-teapot?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/blogs/utah-teapot</guid>
      <description><![CDATA[<p>Трёхмерный чайник стал «Hello World» компьютерной графики: модель создал Мартин Ньюэлл в университете Юты, а оригинал хранится в музее в Калифорнии.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/blogs/utah-teapot">Чайник из Юты: история эталонной 3D-модели</a>»</p>]]></description>
      <category><![CDATA[История IT]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Блоги]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 02 Apr 2019 11:29:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Чайник из Юты — трёхмерная модель реального чайника, которую часто применяют для тестирования или демонстрации в компьютерной графике. Своего рода «Hello World» в 3D-моделировании.</p><p>И этот чайник на самом деле существует! Более того, в Германии его даже всё ещё <a href="https://frieslandversand.de/teekanne-1-4l-weiss-utah-teapot?number=1209034011">можно купить</a>. А оригинал хранится в Музее истории компьютеров в Калифорнии.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/0114c0e0-beab-4749-9829-d474c1907bd7.png" alt="" /><figcaption>Чайник из Юты, Computer History Museum, CA — фото Tproger</figcaption></figure><h2>Как появился чайник из Юты?</h2><p>На заре становления компьютерной графики в университете Юты работал исследователь Мартин Ньюэлл. Ему нужен был какой-то привычный объект из реального мира, чтобы тестировать на нём визуализацию. Что-то не слишком простое и не слишком сложное. И при этом очень знакомое, чтобы легко понять, насколько графика близка к оригиналу. Так совпало, что разговор про это зашёл за чаем, и жена Мартина, Сандра, предложила использовать их чайный сервиз. В итоге в цифровой мир был перенесён не только чайник, но и чашка, блюдце, ложка. Но именно чайник стал таким популярным.</p><p>Идею с чайником подхватил Джеймс Блинн (да, именно тот, из модели освещения <a href="https://en.wikipedia.org/wiki/Blinn–Phong_shading_model">Блинна-Фонга</a>) и сделал первые качественные визуализации. Другие исследователи могли взять ту же модель и попробовать получить похожий результат. Позже, конечно, задача отрисовки чайника перестала быть задачей в принципе, но его стали применять для проверки материалов, теней и других эффектов.</p><h2>Почему реальный чайник выше, чем его модель?</h2><p>Потому что пиксели были не квадратные. На мониторах того времени модель чайника казалась слишком большой по высоте. И его специально «сплющили» в 1,3 раза, чтобы стало похоже на настоящий. Со временем характеристики мониторов улучшились, а чайник менять не стали, так как именно в такой версии он уже использовался везде.</p><h2>Почему именно чайник? Чем он хорош?</h2><p>Чайник имеет округлую поверхность, содержит <a href="https://ru.wikipedia.org/wiki/Седловая_точка">седловые точки</a>, может отбрасывать тень сам на себя, у него есть отверстие в ручке, и его легко показать даже без текстуры. Проще говоря, на нём можно проверить очень много вещей из компьютерной графики, хотя сам объект при этом не такой сложный.</p><p>Больше можно узнать из «Википедии», но лучше читайте <a href="https://en.wikipedia.org/wiki/Utah_teapot">англоязычную версию</a>. В <a href="https://ru.wikipedia.org/wiki/Чайник_Юта">русскоязычной</a> даже название перевели как «Чайник Юта» (если у вас есть права для переименования, пожалуйста, сделайте это).</p>]]></content:encoded>
    </item>
    <item>
      <title>GPU — это не только про игры: четыре примера с NVIDIA GTC 2019</title>
      <link>https://tproger.ru/articles/gpu-nvidia-gtc-2019</link>
      <comments>https://tproger.ru/articles/gpu-nvidia-gtc-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Типичный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/gpu-nvidia-gtc-2019</guid>
      <description><![CDATA[<p>На конференции в Калифорнии NVIDIA показала новинки в области ИИ, машинного обучения и анализа данных — четыре тренда применения графических процессоров.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/gpu-nvidia-gtc-2019">GPU — это не только про игры: четыре примера с NVIDIA GTC 2019</a>»</p>]]></description>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Партнёрский материал]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 29 Mar 2019 18:18:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>C 22 по 26 марта в Калифорнии прошла конференция <a href="https://www.nvidia.com/en-us/gtc/">NVIDIA GTC 2019</a>. Компания представила множество новинок и рассказала об успехах в области искусственного интеллекта, машинного обучения и анализа данных. CEO NVIDIA Дженсен Хуанг отметил ключевые моменты в своём выступлении:</p><p>NVIDIA активно трансформируется и всё чаще ассоциируется не только с видеокартами для игр. Собрали для вас четыре современных примера применения GPU: технологические тренды, за которые стоит зацепиться айтишникам.</p><h2>Искусственный интеллект</h2><p>Он везде. В медицине, образовании, производстве, финансовом секторе, сфере развлечений — это только первое, что приходит на ум. Нейросети и машинное обучение уже давно проникли в нашу жизнь, это не новость. Но сам тренд в том, что сейчас создавать системы с искусственным интеллектом очень просто и быстро.</p><p>Есть множество курсов, готовых контейнеров для разработчиков, специализированное <a href="https://tproger.ru/news/nvidia-jetson-nano/">железо за очень небольшие деньги</a>, <a href="https://aws.amazon.com/ru/personalize/">заранее настроенные системы</a> для решения типичных задач и, наконец, сообщество специалистов с ответами на ваши вопросы.</p><p>Советы для разработчиков: <a href="https://tproger.ru/tag/ai/">изучайте ИИ</a>, пока индустрия не оставила вас позади. Поиграйте с примерами применения ИИ на <a href="https://tproger.ru/news/nvidia-ai-playground/">AI Playground</a> для вдохновения.</p><h2>Фотореалистичная графика</h2><p>И этот тренд тоже сам по себе не новость. Трассировка лучей существует очень давно, а индустрия кино показывает нам чудеса каждый год, хотя мы уже привыкли к ним и не замечаем. Тренд — трассировка в реальном времени за приемлемые деньги. А это значит, более широкое распространение графики, которую сложно отличить от реальных фото- и видеосъёмок.</p><p>RTX 2060 стоит «всего лишь» 31 990 ₽. Да, это довольно много для видеокарты, как одного из компонентов компьютера, но это очень мало для такой технологии, которую сложно было и представить лет 10 назад.</p><p>Поддержка RTX уже есть почти во всех популярных движках, а трассировкой в реальном времени занимается <a href="https://www.cryengine.com/news/crytek-releases-neon-noir-a-real-time-ray-tracing-demonstration-for-cryengine">не только NVIDIA</a> — технология теперь уже не просто есть, ей можно и нужно пользоваться. И игры — <a href="https://blogs.nvidia.com/blog/2019/03/18/drive-constellation-now-available/">не единственная сфера применения</a>.</p><p>Даже полноценная <a href="https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%83%D1%82%D0%B8">трассировка пути</a> вполне реальна в ближайшем будущем, как показали <a href="http://brechpunkt.de/q2vkpt/">эксперименты над Quake 2</a>.</p><p>Советы для разработчиков: присмотритесь к платформе и следите за новостями в сфере. Задумайтесь над добавлением поддержки трассировки лучей в свой следующий проект.</p><h2>Стриминг для игр</h2><p>Google <a href="https://dtf.ru/gameindustry/43450-budushchee-bez-konsoli-google-predstavila-igrovoy-strimingovyy-servis-stadia">показала Stadia</a>, на GTC 2019 можно было потрогать GeForce Now. Детская шутка «скачать более мощный компьютер» становится реальностью. Скоро мы все будем играть в игры фотореалистичного качества с дешёвых хромбуков по подписке.</p><p>Попытки сделать что-то подобное были и раньше, но сейчас за дело берутся серьёзные игроки с большой базой пользователей и технологическими возможностями. И та же трассировка лучей здесь кажется очень логичным дополнением.</p><h2>Беспилотный транспорт</h2><p>Его будет всё больше. Автономные машины превращаются из дорогостоящих разработок отдельных компаний в <a href="https://www.nvidia.com/ru-ru/self-driving-cars/drive-platform/">платформу</a>, на которой каждый сможет построить своё решение.</p><p>В области автомобилестроения этот тренд ещё больше ускоряется распространением электрокаров. В классических авто есть два очень сложных агрегата: двигатель внутреннего сгорания и коробка передач. Их создание и совершенствование было уделом известных брендов, и зайти просто так со стороны было довольно сложно. В электромобилях же банально нет этих частей, с электродвигателями работать относительно просто. Добавляем сюда решения для автономности и получаем готовый продукт.</p><p>NVIDIA же нашла в этой области чуть ли не идеальное пересечение всех своих технологий и направлений развития. С датчиков поступают сигналы и видео, которые нужно быстро обрабатывать на GPU, применяя ИИ, а обучать модель можно в виртуальном фотореалистичном окружении. Теперь ещё и в сотрудничестве с Toyota.</p>]]></content:encoded>
    </item>
    <item>
      <title>Для видеокодека AV1 разработан новый декодировщик</title>
      <link>https://tproger.ru/news/av1-lib-video-dav1d</link>
      <comments>https://tproger.ru/news/av1-lib-video-dav1d?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Галадей]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/av1-lib-video-dav1d</guid>
      <description><![CDATA[<p>Библиотека dav1d от VideoLAN и FFmpeg декодирует свободный формат AV1, написана на Си со вставками ассемблера и выходит под лицензией BSD.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/av1-lib-video-dav1d">Для видеокодека AV1 разработан новый декодировщик</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Работа с кодировками]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 02 Oct 2018 17:57:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Специалисты из проектов VideoLAN и FFmpeg представили совместную разработку — библиотеку dav1d, которая поддерживает свободный формат кодирования видео AV1. Она написана на Cи со вставками из ассемблера. Библиотека <a href="https://code.videolan.org/videolan/dav1d">распространяется</a> под лицензией BSD.</p><h3>Что известно об AV1?</h3><p>Этот открытый стандарт сжатия видео, разработанный альянсом Open Media (AOMedia), в его состав входит ряд крупных IT-компаний: Google, Microsoft, Intel, NVIDIA, IBM, Netflix и другие. Судя по внутренним тестам, стандарт опережает актуальные форматы H.264 и VP9 на 34–50 % по сжатию при сохранении того же качества. Также он потенциально на 20 % превосходит кодек HEVC.</p><h3>Зачем нужна библиотека dav1d?</h3><p>Главной задачей библиотеки является максимальная производительность при использовании технологии сжатия видео на разных платформах. Это позволит минимизировать эффект отсутствия аппаратного ускорения на первых этапах внедрения AV1, а также обеспечить работу в многопоточных приложениях. Ещё одной задачей является сохранение компактности программного кода.</p><p>Декодер dav1d включает на порядок меньше кода, чем штатный декодер AV1 под названием libaom. Размер его бинарного файла меньше в три раза, а потреблении памяти — в четыре. Новый декодеровщик опережает в многопоточном декодировании libaom 1.0.0, однако пока уступает версии libaom из HEAD-ветки.</p><p>На сегодняшний день dav1d поддерживает процессорные архитектуры x86, x64, ARMv7 и ARMv8, а также операционные системы Linux, Windows, macOS, Android и iOS. Проект спонсирует Open Media, и хотя библиотека уже готова для тестов, использовать её в ежедневной работе не рекомендуется. В будущем планируется добавить в декодировщик расширенные возможности AV1, в числе которых управление глубиной цвета и все виды цветовой субдискретизации.</p><p>Кодек AV1 <a href="https://tproger.ru/news/open-media-av1-codec-release/">выпустили</a> весной 2018 года. Он поддерживает разрешение до 4K и обеспечивает высокий уровень сжатия при минимальной потере качества. В апреле его <a href="https://tproger.ru/news/av1-benchmark-results/">протестировали</a> в Facebook.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышла версия Mir 1.0, дисплейного сервера от Canonical</title>
      <link>https://tproger.ru/news/graphic-server-mir-iot</link>
      <comments>https://tproger.ru/news/graphic-server-mir-iot?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Галадей]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/graphic-server-mir-iot</guid>
      <description><![CDATA[<p>Компания Canonical представила релиз дисплейного сервера Mir 1.0, который предназначен для вывода графики на встраиваемых устройствах.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/graphic-server-mir-iot">Вышла версия Mir 1.0, дисплейного сервера от Canonical</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 22 Sep 2018 08:03:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики из Canonical <a href="https://community.ubuntu.com/t/mir-1-0-0-release/8079">представили</a> версию 1.0 дисплейного сервера Mir. Она рассчитана на применение в IoT-устройствах, более стабильно работает с Wayland-приложениями и поддерживает изменение раскладки экрана на нескольких дисплеях.</p><h3>Зачем это нужно разработчикам?</h3><p>Mir 1.0 предлагает быстрый и безопасный графический стек, который способен работать с разными видеокартами и драйверами, и может быть легко интегрирован в любые решения: от информационных киосков до цифровых рекламных щитов. Это позволит унифицировать графическую часть Ubuntu вне зависимости от аппаратной платформы.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/VlzMhEt.jpg" alt="" /></figure><h3>Что нового в версии?</h3><p>Основными нововведениями Mir 1.0 стали устранения ошибок и повышение стабильности при работе с протоколом Wayland. Также добавлен новый файл конфигурации .display, с помощью которого производится настройка раскладки экранов. Это нужно при подключении нескольких мониторов, чтобы вывести единое изображение, к примеру, на видеостену.</p><h3>На каких ОС поддерживается Mir?</h3><p>Последняя версия графического сервера доступна для всех актуальных веток Ubuntu. Для установки из Release PPA нужно выполнить команду:<br />sudo apt-add-repository --update ppa:mir-team/release<br />Также дисплейный сервер уже есть на Fedora и Arch, и скоро ожидается на Debian.</p><h3>Зачем нужен Wayland, если есть X-сервер?</h3><p>Изначально протокол Wayland создавался как «работа над ошибками» в X11, поскольку последний создан четверть века назад и уже успел во многом устареть. В частности, в «иксах» есть проблемы безопасности, которых Wayland лишен. Главное отличие состоит в том, что новый протокол только управляет плоскостями окон, но не отрисовывает их как X11. Процесс рендеринга полностью лежит на библиотеках (GTK, Qt и прочих).</p><p>Ранее в Canonical пытались внедрить Wayland в десктопную Ubuntu. Это анонсировал в 2013 году основатель компании Марк Шаттлворт. Однако в 2017 году от предложения <a href="https://tproger.ru/news/canonical-breaking-news/">отказались</a> вместе с прекращением работы над фирменной графической оболочкой Unity.</p>]]></content:encoded>
    </item>
    <item>
      <title>NVIDIA представила новую серию игровых видеокарт GeForce RTX с технологией трассировки лучей</title>
      <link>https://tproger.ru/news/nvidia-geforce-rtx-announced</link>
      <comments>https://tproger.ru/news/nvidia-geforce-rtx-announced?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/nvidia-geforce-rtx-announced</guid>
      <description><![CDATA[<p>Новая игровая серия заявлена как в 6 раз мощнее предыдущего поколения; первые карты RTX 20хх поступят в продажу в сентябре 2018 года.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/nvidia-geforce-rtx-announced">NVIDIA представила новую серию игровых видеокарт GeForce RTX с технологией трассировки лучей</a>»</p>]]></description>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 21 Aug 2018 07:25:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>На проходящей в Кельне видеоигровой выставке Gamescom 2018 NVIDIA <a href="https://arstechnica.com/gaming/2018/08/nvidia-announces-new-raytracing-focused-rtx-2080-2080-ti-graphics-cards/">презентовала</a> новую серию графических ускорителей, ориентированных на геймеров — <a href="https://www.nvidia.com/en-us/geforce/20-series/">GeForce RTX</a>. Самая продвинутая карта линейки — RTX 2080 Ti — совершает до 78 трлн RTX-OPS (разработанная в NVIDIA оценка производительности, обозначающая операции с трассировкой лучей в секунду). Первые продукты серии RTX 20хх появятся на прилавках в сентябре 2018 года.</p><h3>Технические характеристики GeForce RTX</h3><p>Во время выступления представители компании заявили, что новые видеокарты «в 6 раз мощнее предыдущего поколения видеоускорителей NVIDIA». Графические процессоры серии GeForce RTX поддерживают все технологии платформы Turing, включая RT-ядра для расчетов трассировки лучей и тензорные ядра для использования нейронных сетей. Среди ключевых характеристик, упомянутых на презентации:</p><ul><li><a href="https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2070/">RTX 2070</a>: 1410 МГц, 8 ГБ 256-битной оперативной памяти типа GDDR6 пропускной способностью 448 ГБ/с, 2304 CUDA-ядра. Обеспечивает 60 трлн RTX-OPS и 6 гигалучей (Gigarays) в секунду.</li><li><a href="https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2080/">RTX 2080</a>: 1515 МГц с аналогичной памятью, а также 2944 CUDA-ядра. Производит 60 трлн RTX-OPS и уже 8 гигалучей/с.</li><li><a href="https://www.nvidia.com/en-us/geforce/graphics-cards/rtx-2080-ti/">RTX 2080 Ti</a>: 1515 МГц, 11 ГБ 352-битной оперативной памяти типа GDDR6, работающей на скорости 616 ГБ/с, 4352 CUDA-ядра. Предоставляет до 78 трлн RTX-OPS и 11 гигалучей/с.</li></ul><p>Все видеоускорители поддерживают новый стандарт создания вычислительного кластера из нескольких карт — <a href="https://www.nvidia.com/en-us/data-center/nvlink/">NVIDIA NVLink</a>. Кроме того, энтузиасты, которые оформят предзаказ на новые продукты NVIDIA, получат карты ограниченного издания Founders Edition с «разогнанными» характеристиками.</p><h3>Стоимость и дата выхода</h3><p>На презентации CEO NVIDIA Дженсен Хуанг (Jensen Huang) объявил цены на новые графические процессоры:</p><ul><li>499 $ за RTX 2070;</li><li>699 $ за RTX 2080;</li><li>999 $ за RTX 2080 Ti.</li></ul><p>Однако это стоимость видеокарт, произведенных партнерами компании, среди которых Asus, Gigabyte и MSI. Сама NVIDIA открыла предзаказ на GeForce RTX Founders Edition на своем <a href="https://www.nvidia.com/en-us/geforce/20-series/">сайте</a>, но стоят они на 100 $ дороже.</p><p>NVIDIA GeForce RTX 2080 и 2080 Ti появятся на рынке уже 20 сентября 2018 года. Тогда же они отправятся покупателям, оформившим предзаказ. «Младшую» карту RTX 2070 придется подождать до неопределенного срока.</p><p>Напомним, что платформа Turing <a href="https://tproger.ru/news/nvidia-turing/">была представлена</a> на конференции SIGGRAPH 2018 в начале августа 2018 года. В NVIDIA говорят, что, разработав эту архитектуру, они «придумали компьютерную графику заново».</p>]]></content:encoded>
    </item>
    <item>
      <title>NVIDIA анонсировала платформу CUDA 10 для разработки приложений с GPU-ускорением</title>
      <link>https://tproger.ru/news/nvidia-cuda-10-announce</link>
      <comments>https://tproger.ru/news/nvidia-cuda-10-announce?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/nvidia-cuda-10-announce</guid>
      <description><![CDATA[<p>Платформа CUDA 10 от NVIDIA получила поддержку видеокарт Turing и включает компоненты для создания серверных приложений с GPU-ускорением.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/nvidia-cuda-10-announce">NVIDIA анонсировала платформу CUDA 10 для разработки приложений с GPU-ускорением</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 14 Aug 2018 20:00:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>NVIDIA <a href="https://developer.nvidia.com/announcing-cuda-toolkit-10">объявила</a> о скором выходе платформы CUDA 10 для создания приложений с поддержкой ускорения при помощи графических процессоров. Проект позиционируется как альтернатива фреймворку <a href="https://ru.wikipedia.org/wiki/OpenCL">OpenCL</a>.</p><h3>Особенности CUDA 10</h3><p>Платформа включает в себя все компоненты, необходимые при разработке приложений для мощных серверных платформ. Впоследствии они могут использоваться для поддержания работы искусственного интеллекта и высокопроизводительных вычислений.</p><p>Список нововведений:</p><ul><li>поддержка процессоров Turing, таких, как Quadro RTX и GeForce GTX 2000;</li><li>оптимизация библиотек с использованием <a href="https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%A4%D1%83%D1%80%D1%8C%D0%B5">преобразования Фурье</a> и <a href="https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%A5%D0%BE%D0%BB%D0%B5%D1%86%D0%BA%D0%BE%D0%B3%D0%BE">разложения Холецкого</a>;</li><li>поддержка библиотеки <a href="https://developer.nvidia.com/nvjpeg">nvJPEG </a>для двукратного ускорения декодирования JPEG-изображений;</li><li>программная модель CUDA Graphs для выполнения потока define-once-run-repeatedly;</li><li>расширение возможностей взаимодействия между CUDA и графическими API, включая Vulcan и DirectX 12;</li><li>новое семейство продуктов <a href="https://www.nvidia.com/object/nsight.html">Nsight</a> для отслеживания, профилирования и отладки приложений.</li></ul><p>Чтобы получить уведомление о релизе CUDA 10, необходимо <a href="https://developer.nvidia.com/">стать участником</a> программы NVIDIA Developer.</p><p>Помимо работы над новой версией CUDA, NVIDIA, в частности, <a href="https://tproger.ru/news/nvidia-turing/">разработала</a> графическую архитектуру Turing с поддержкой трассировки лучей в реальном времени.</p>]]></content:encoded>
    </item>
    <item>
      <title>NVIDIA представила графическую архитектуру Turing с поддержкой трассировки лучей в реальном времени</title>
      <link>https://tproger.ru/news/nvidia-turing</link>
      <comments>https://tproger.ru/news/nvidia-turing?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/nvidia-turing</guid>
      <description><![CDATA[<p>Графическая архитектура NVIDIA Turing получила RT-ядра для трассировки лучей и тензорные процессоры для ускорения обучения нейросетей.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/nvidia-turing">NVIDIA представила графическую архитектуру Turing с поддержкой трассировки лучей в реальном времени</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 14 Aug 2018 12:36:49 GMT</pubDate>
      <content:encoded><![CDATA[<p>На конференции в области компьютерной графики SIGGRAPH, проходящей в Ванкувере, CEO NVIDIA Дженсен Хуанг (Jensen Huang) рассказал о новой разработке компании — архитектуре GPU NVIDIA Turing, которая поддерживает гибридный рендеринг. Эта технология объединяет трассировку лучей в реальном времени, модели машинного обучения, симуляцию и растеризацию. Первые продукты на базе Turing появятся на рынке в четвертом квартале 2018 года.</p><h3>Особенности архитектуры Turing</h3><p>Новая разработка NVIDIA получила поддержку трассировки лучей в реальном времени, которая обеспечивается специальными процессорами — RT-ядрами. Они ускоряют обработку света и звука в объемной среде до 10 гигалучей (Gigarays) в секунду, а также расчеты трассировки лучей в 25 раз по сравнению с предыдущей архитектурой Pascal.</p><p>Кроме того, NVIDIA Turing оборудована тензорными ядрами для усовершенствования работы глубоких нейронных сетей, которые совершают до 500 трлн тензорных операций в секунду. Такая производительность используется новым SDK NVIDIA NGX для интеграции графики, звуков и видео в приложения с обученными нейронными сетями.</p><p>Новый стриминговый мультипроцессор, которым оснащены видеоускорители на базе Turing, добавляет целочисленный исполнительный блок параллельно к каналу данных с плавающей точкой и новую унифицированную архитектуру кэша с удвоенной по сравнению с Pascal полосой пропускания. GPU, оборудованные 4608 ядрами CUDA, обеспечивают до 16 трлн целочисленных вычислений в секунду параллельно с операциями с плавающей точкой.</p><h3>Видеоускорители на базе новой платформы</h3><p>Одновременно с анонсом NVIDIA Turing Дженсен Хуанг представил первые видеокарты, построенные на новой архитектуре: Quadro RTX 8000 за 10 000 $, Quadro RTX 6000 за 6300 $ и Quadro RTX 5000 за 2300 $. Кроме того, СЕО компании анонсировал сервер NVIDIA Quadro RTX для рендеринга по запросу в крупных датацентрах. Среди основных характеристик новых продуктов:</p><ul><li>от 16 Гб памяти типа GDDR6 производства Samsung, поддерживающей обработку комплексных графических ресурсов вроде фильмов в формате 8К;</li><li>технология <a href="https://www.nvidia.com/en-us/data-center/nvlink/">NVIDIA NVLink</a> для связки двух видеокарт и получения кластера, способного передавать данные со скоростью 100 ГБ/с, а также имеющего до 96 ГБ памяти;</li><li>нативная поддержка технологии <a href="https://tproger.ru/news/vr-standard-virtuallink/">VirtualLink</a> для унифицированного подключения VR-устройств через USB Type-C;</li><li>графические инструменты Variable Rate Shading, Multi-View Rendering и VRWorks Audio для усовершенствованных VR-приложений.</li></ul><p>В ходе конференции компания также <a href="https://tproger.ru/news/nvidia-ray-tracing-tutorials/">опубликовала</a> обучающие материалы по использованию технологий NVIDIA RTX и расширения Microsoft DXR для DirectX для разработчиков, желающих добиться графики кинематографического качества в своих игровых проектах.</p>]]></content:encoded>
    </item>
    <item>
      <title>NVIDIA открыла исходный код инструментов для импорта 3D-материалов</title>
      <link>https://tproger.ru/news/nvidia-mdl-open-source</link>
      <comments>https://tproger.ru/news/nvidia-mdl-open-source?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/nvidia-mdl-open-source</guid>
      <description><![CDATA[<p>Исходный код Material Definition Language SDK открыт: параметры материалов из одного редактора переносятся в другие приложения для 3D-графики.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/nvidia-mdl-open-source">NVIDIA открыла исходный код инструментов для импорта 3D-материалов</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 14 Aug 2018 11:23:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>NVIDIA <a href="https://blogs.nvidia.com/blog/2018/08/13/open-source-mdl-sdk/">объявила</a> об открытии исходного кода Material Definition Language SDK для переноса параметров материалов в любые приложения для отрисовки 3D-графики. Инструменты позволят разработчикам использовать большее количество приложений для рендеринга и переносить проекты на платформы Android и iOS.</p><h3>Инструменты для 3D-дизайнеров</h3><p>В качестве примера компания представила созданные в Allegorithmic Substance Designer материалы ткани. Их можно сохранить в библиотеке и быстро перенести в приложение Adobe Dimension CC. Инструменты также были внедрены в набор <a href="https://www.unrealengine.com/en-US/blog/unreal-studio-4-20-beta-now-available">Unreal Studio 4.20</a> от Epic Games, предназначенный для импорта 3D-моделей в движок Unreal Engine.</p><p>Теперь, когда мы добавили поддержку MDL в Unreal Studio, наши клиенты могут видеть, что их визуальные представления реализуются в Unreal Engine в реальном времени без ручной настройки каждого параметра.</p><p>Набор инструментов также содержит компоненты для загрузки, проверки и редактирования параметров материалов и их конвертирования в форматы PTX и LLVM-IR. Набор <a href="https://github.com/NVIDIA/MDL-SDK">доступен</a> для скачивания на GitHub.</p><p>NVIDIA не единственная компания, открывающая исходный код инструментов для 3D-моделирования. В августе 2018 года Google <a href="https://tproger.ru/news/google-filament-open-source/">выложила</a> на GitHub код движка Filament для реалистичной отрисовки трехмерных сцен.</p>]]></content:encoded>
    </item>
    <item>
      <title>NVIDIA выпустила инструкции по использованию трассировки лучей в приложениях</title>
      <link>https://tproger.ru/news/nvidia-ray-tracing-tutorials</link>
      <comments>https://tproger.ru/news/nvidia-ray-tracing-tutorials?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/nvidia-ray-tracing-tutorials</guid>
      <description><![CDATA[<p>Пособие NVIDIA состоит из двух частей: первая объясняет настройку Windows 10 и среды разработки на примере DirectX 12, вторая — установку фреймворков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/nvidia-ray-tracing-tutorials">NVIDIA выпустила инструкции по использованию трассировки лучей в приложениях</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 13 Aug 2018 18:12:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>NVIDIA <a href="https://news.developer.nvidia.com/dx12-raytracing-tutorials/">опубликовала</a> инструкции по внедрению в приложения <a href="https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D1%81%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BB%D1%83%D1%87%D0%B5%D0%B9">трассировки лучей</a> с использованием технологии RTX и расширения Microsoft DXR для DirectX. Она предназначена для разработчиков игр, желающих добавить продвинутый метод рендеринга в приложения со стандартной растеризацией.</p><h3>Содержание инструкции</h3><p>Пособие состоит из двух частей. <a href="https://developer.nvidia.com/rtx/raytracing/dxr/DX12-Raytracing-tutorial-Part-1">Первый раздел</a> объясняет процесс настройки Windows 10 и среды программирования на примере тестового приложения на основе DirectX 12. <a href="https://developer.nvidia.com/rtx/raytracing/dxr/DX12-Raytracing-tutorial-Part-2">Второй раздел</a> обучает установке необходимых фреймворков в приложение, настроенное по инструкции из первой части.</p><p>Представленные примеры просты, но закладывают основу для использования в более сложных проектах. Отказ от стандартной растеризации избавляет разработчиков и художников от лишней работы.</p><p>Технология NVIDIA RTX <a href="https://tproger.ru/news/nvidia-microsoft-rtx/">была представлена</a> в марте 2018 года. Она обеспечивает отрисовку трехмерной графики кинематографического уровня в реальном времени.</p>]]></content:encoded>
    </item>
    <item>
      <title>Apple объявила о прекращении поддержки OpenGL и OpenCL в macOS</title>
      <link>https://tproger.ru/news/macos-deprecates-opengl-opencl</link>
      <comments>https://tproger.ru/news/macos-deprecates-opengl-opencl?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/macos-deprecates-opengl-opencl</guid>
      <description><![CDATA[<p>Apple прекращает поддержку OpenGL и OpenCL в macOS. Разработчикам рекомендовано перейти на Metal API, старые приложения продолжат работать без гарантий.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/macos-deprecates-opengl-opencl">Apple объявила о прекращении поддержки OpenGL и OpenCL в macOS</a>»</p>]]></description>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[OpenGL]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 Jun 2018 12:51:24 GMT</pubDate>
      <content:encoded><![CDATA[<p>Обновленная macOS 10.14 Mojave <a href="https://developer.apple.com/macos/whats-new/">перестала поддерживать</a> фреймворки <a href="https://ru.wikipedia.org/wiki/OpenGL">OpenGL</a> и <a href="https://ru.wikipedia.org/wiki/OpenCL">OpenCL</a>. Причинами отказа стали отсутствие обновленных версий и желание Apple продвигать собственный <a href="https://developer.apple.com/metal/">API Metal</a>.</p><h3>Apple без OpenGL</h3><p>macOS по-прежнему будет запускать приложения с устаревшими фреймворками, но не гарантирует стабильность их работы. Apple порекомендовала разработчикам перейти на собственный API и использовать шейдеры Metal и Metal Performance. Инструкция по переносу кода в Metal представлена в <a href="https://developer.apple.com/documentation/metal/mixing_metal_and_opengl_rendering_in_a_view">документации</a>.</p><p>Компания поддерживала OpenGL с 90-х годов. Инструмент стал популярен среди разработчиков благодаря открытому исходному коду и кроссплатформенности. Его преемник <a href="https://ru.wikipedia.org/wiki/Vulkan_(API)">Vulkan API</a> был представлен в 2015 году, но macOS его не поддерживает. В свою очередь, Metal API не является кроссплатформенным.</p><p>Несмотря на отсутствие поддержки Vulkan API, разработчики могут использовать часть его преимуществ. Для этого была создана библиотека MoltenVK, <a href="https://tproger.ru/news/moltenvk-vulkan-on-metal/">представленная </a>в феврале 2018 года.</p>]]></content:encoded>
    </item>
    <item>
      <title>Обзор графических библиотек C++</title>
      <link>https://tproger.ru/digest/cpp-best-gui</link>
      <comments>https://tproger.ru/digest/cpp-best-gui?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Типичный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/digest/cpp-best-gui</guid>
      <description><![CDATA[<p>Подробный обзор графических библиотек для C++: Qt, SFML, GTK, SDL, wxWidgets, Cairo, Cocos2D-X, Juce, FLTK и Nana. Сравнение возможностей, платформ и сценариев использования.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/digest/cpp-best-gui">Обзор графических библиотек C++</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Фреймворки и библиотеки]]></category>
      <category><![CDATA[Подборки]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 21 May 2018 13:56:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>Графические библиотеки для C++ позволяют сделать разработку UI приложений максимально быстрой и удобной. Рассказываем, на какие стоит обратить внимание.</p><p>Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.</p><p><b>Кратко о главном:</b> в обзоре рассмотрены 10 графических библиотек и фреймворков для C++ — от универсального Qt и минималистичного SFML до специализированных решений вроде Juce для аудио и Cairo для векторной графики. Выбор зависит от задачи: для игр подойдут SFML, SDL и Cocos2D-X, для десктопных приложений — Qt, GTK+ и wxWidgets, а для нативного внешнего вида — wxWidgets и Nana.</p><ol><li>SFMLQtCairoCocos2D-XJucewxWidgetsSDL 2.0GTK+Заключение</li></ol><h2>SFML</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/image5.png" alt="Логотип SFML — графической библиотеки C++" /></figure><p><a href="https://www.sfml-dev.org/">SFML</a> (Simple and Fast Multimedia Library) — одна из самых удобных и быстрых графических библиотек для C++. Её неоспоримое преимущество — минимальные требования к уровню знаний языка и лёгкость освоения: всего за несколько дней можно написать вполне полноценную программу. К примеру, <a href="https://www.sfml-dev.org/tutorials/2.5/start-vc.php">первое графическое приложение</a> «SFML works!» можно написать всего за минуту. Ещё одно преимущество — кроссплатформенность: SFML работает под Windows, Linux (только X11, но не Wayland) и Mac OS, <a href="https://www.sfml-dev.org/index.php">планируется</a> выход под Android и iOS.</p><p>SFML библиотека используется по большей части небольшими стартапами и программистами, для которых создание игр — хобби. SFML популярен среди небольших команд благодаря тому, что разработка графической части программы не требует написания больших объёмов кода.</p><p>Попробуйте пройти <a href="https://www.sfml-dev.org/tutorials/2.5/">начальный курс</a>.</p><h2>Qt</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/Qt_logostrap_CMYK-2.png" alt="Логотип Qt — кроссплатформенного фреймворка для C++" /></figure><p><a href="https://www.qt.io/">Qt</a> представляет собой целый набор инструментов для быстрого и удобного проектирования GUI. Конечно же, здесь можно писать и игры — почему бы и нет? — но Qt привлекает программистов в основном тем, что она является быстрой, удобной, гибкой и кроссплатформенной. Во многом Qt обогнала даже SFML: библиотека доступна как на Windows, Linux и Mac OS, так и на мобильных платформах — Windows Mobile, Android и iOS.</p><p>Qt расширяет C++ с помощью МОК (Мета-объектного компилятора) и предоставляет дополнительные функции (например, сигналы и слоты). Также имеет платную службу поддержки (как и платную лицензию). Для Qt есть большой выбор IDE: <a href="https://ru.wikipedia.org/wiki/Qt_Designer">QtDesigner</a>, <a href="https://ru.wikipedia.org/wiki/Qt_Creator">QtCreator</a>, <a href="https://ru.wikipedia.org/wiki/QDevelop">QDevelop</a>, <a href="https://sourceforge.net/projects/edyuk/">Edyuk</a>, а также доступна интеграция с Visual Studio, Eclipse и XCode.</p><p>Qt является open source продуктом, в разработке которого можно принять участие. О других open source проектах для C++ читайте в нашей <a href="https://tproger.ru/digest/awesomo-clang-cpp/">статье</a>.</p><p>Вы можете пройти готовый курс по данной библиотеке.</p><h2>Cairo</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/cairo-pic-cpp-digest.png" alt="Логотип Cairo — библиотеки для векторной графики" /></figure><p><a href="http://www.cairographics.org/">Cairo</a> — библиотека для отрисовки векторных изображений под Linux, Windows и Mac OS. К примеру, такой крупный проект, как Mozilla, использует Cairo в браузерном движке <a href="https://ru.wikipedia.org/wiki/Gecko">Gecko</a>. Также Cairo лежит в основе некоторых операционных систем (MorphOS, AmigaOS) и приложений (InkScape, Synfig, Graphite). При использовании библиотеки будьте готовы к отсутствию русскоязычных ресурсов.</p><p>Cairo может взаимодействовать с OpenGL бэкендом с поддержкой GPU, что, конечно, <a href="https://www.cairographics.org/OpenGL/">открывает</a> целый список полезных функций.</p><h2>Cocos2D-X</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/image4.png" alt="Логотип Cocos2D-X — кроссплатформенного движка для мобильных игр" /></figure><p>Кроссплатформенная библиотека <a href="http://cocos2d-x.org/">Cocos2D-X</a> призвана упростить разработку мобильных игр. Поддерживает все те же платформы, что и Qt. Из плюсов стоит отметить доступность, удобство эксплуатации и создание отдельного конструктора игр, основанного на библиотеке <a href="http://cocos2d-x.org/">Cocos Creator</a>. В списке игр, основанных на движке, есть всемирно известная BADLAND, работающая на всех доступных платформах.</p><p>Если при создании игры вам нужно работать с графикой и анимацией в больших объёмах, то лучше использовать Unity вместо Cocos2D-X. Unity имеет возможность плавной интеграции с такими инструментами, как Photoshop, Maya или Blender. В Cocos2D-X вся графика добавляется извне и на неё ссылаются из кода.</p><p>В Рунете нет уроков по этой библиотеке, но на английском языке есть <a href="http://www.cocos2d-x.org/docs/cocos2d-x/en/index.html">отличный курс</a> от разработчиков.</p><h2>Juce</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/image3.jpg" alt="Логотип Juce — фреймворка для аудиоприложений на C++" /></figure><p><a href="https://juce.com/">Juce</a> — кроссплатформенный фреймворк, предназначенный для создания приложений и плагинов на языке C++.</p><p>Документации по Juce много, но не на русском языке. Поэтому можно скачать <a href="https://www.intuit.ru/goods_store/ebooks/8599">книгу</a> «Программирование на C++ с JUCE 4.2.x: Создание кроссплатформенных мультимедийных приложений с использованием библиотеки JUCE на простых примерах».</p><p>Juce больше популярен среди разработчиков аудио — ПО благодаря набору интерфейсов-оболочек для построения аудио плагинов.</p><h2>wxWidgets</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/image1.png" alt="Пример интерфейса wxWidgets — нативный вид на каждой ОС" /></figure><p><a href="https://www.wxwidgets.org/">wxWidgets</a> — одна из старейших, но в то же время наиболее известных графических библиотек для отрисовки GUI. Её основной плюс — производительность. Если QT использует низкоуровневый код лишь для таких элементов, как кнопки и полосы прокрутки, то wxWidgets для каждой системы свой, и благодаря этому все элементы отображаются максимально похожими на системный стиль.</p><p>Важная особенность wxWidgets заключается в использовании «родных» графических элементов интерфейса операционной системы везде, где это возможно. Это существенное преимущество для многих пользователей, поскольку они привыкают работать в конкретной среде, а изменения интерфейса программ часто вызывают затруднения в их работе.</p><p>В Сети есть <a href="http://docs.wxwidgets.org/trunk/overview_helloworld.html">урок</a> по работе с библиотекой от её разработчиков.</p><h2>SDL 2.0</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/image2.png" alt="Логотип SDL — кроссплатформенной библиотеки для игр" /></figure><p><a href="https://www.libsdl.org/">SDL</a> — кроссплатформенная 2D-библиотека, предназначенная для написания приложений (в основном игр). Поддерживаются Windows, Linux, Mac OS, а также Android, Windows Mobile и iOS. Преимущества библиотеки — быстрота, надёжность и лёгкость в эксплуатации. Также в библиотеке реализованы профессиональные инструменты для работы со звуком — это большой плюс при разработке крупных проектов.</p><p>Комбинируется с wxWidgets и хорошо интегрируется с OpenGL.</p><p>Существует целый <a href="https://habr.com/post/166875/">цикл уроков</a>, размещённый на Habr.</p><h2>GTK+</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/image7.png" alt="Логотип GTK+ — графического фреймворка для Linux" /></figure><p>Пожалуй, одна из самых известных графических библиотек. <a href="https://gtk.org/">GTK+</a> — графический фреймворк, широко применяемый во многих системах. Изначально он задумывался как компонент GIMP, но за 20 лет после выпуска первой стабильной версии он нашёл применение в сотнях других приложений.</p><p>Сейчас GTK+ — это полноценный графический фреймворк, не уступающий тому же QT. Он <a href="https://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%8F%D0%B7%D1%8B%D0%BA%D0%BE%D0%B2%D1%8B%D1%85_%D0%BF%D1%80%D0%B8%D0%B2%D1%8F%D0%B7%D0%BE%D0%BA_GTK%2B">поддерживает</a> разные языки программирования и продолжает развиваться.</p><p>В своё время библиотека создавалась в качестве альтернативы Qt, которая была платной. GTK+ — один из немногих фреймворков, которые поддерживают язык C. Библиотека кроссплатформенная, но <a href="https://www.quora.com/Which-is-better-for-cross-platform-application-development-Qt-or-GTK">есть мнение</a>, что программы на Linux выглядят более нативно, чем на Windows или Mac OS (GTK+ хорошо поддерживается даже на KDE). Интересно, что из-за некоторых проблем с кроссплатформенностью Wireshark <a href="https://en.wikipedia.org/wiki/GTK%2B">перешла</a> на Qt.</p><p>Пример первой программы можно посмотреть на <a href="https://ru.wikipedia.org/wiki/GTK%2B#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B">Википедии</a>.</p><h2>Fast Light Toolkit</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/fltk.png" alt="Логотип FLTK — лёгкого графического тулкита для C++" /></figure><p>FLTK (произносится как «‎фуллтик») — графическая библиотека, которая работает на Windows, Linux (X11) и Mac OS. Поддерживает 3D графику с помощью OpenGL и имеет встроенный GLUT симулятор. Есть встроенный софт для создания интерфейсов — FLUID. Документация по библиотеке находится <a href="https://www.fltk.org/doc-1.3/index.html">здесь</a>.</p><h2>Nana</h2><figure><img src="https://media.tproger.ru/uploads/2018/05/nana.png" alt="Логотип Nana — современной C++ библиотеки для GUI" /></figure><p><a href="http://nanapro.org/en-us/">Nana</a> — это кроссплатформенная библиотека для программирования GUI в стиле <a href="https://tproger.ru/translations/cpp-surprising-features/">современного C++</a>. Поддерживаемые системы: Windows, Linux (X11) и Mac OS (экспериментально). Поддержка С++11\17 даёт возможность использовать современные фичи C++: лямбды, умные указатели и стандартную библиотеку. Так как это не фреймворк, использование Nana не будет оказывать влияния на архитектуру программы.</p><p><a href="http://qpcr4vir.github.io/nana-doxy/html/index.html">Здесь</a> можно посмотреть документацию и примеры.</p><h2>Часто задаваемые вопросы</h2><h3>Какую графическую библиотеку C++ выбрать новичку?</h3><p>Для начинающих лучше всего подойдёт SFML — она требует минимальных знаний C++ и позволяет написать первое графическое приложение буквально за минуту. Если нужно создавать десктопные приложения с GUI, стоит обратить внимание на Qt — у неё обширная документация и большое сообщество.</p><h3>Чем отличается Qt от GTK+?</h3><p>Qt — коммерческий продукт с открытым исходным кодом, расширяет C++ мета-объектным компилятором и предоставляет собственные IDE. GTK+ изначально создавался как свободная альтернатива Qt, лучше всего работает на Linux и поддерживает язык C. Обе библиотеки кроссплатформенные, но Qt обеспечивает более единообразное поведение на разных ОС.</p><h3>Какую библиотеку использовать для разработки игр на C++?</h3><p>Для 2D-игр подойдут SFML и SDL — обе библиотеки предоставляют низкоуровневый доступ к графике, звуку и вводу. Для мобильных игр стоит рассмотреть Cocos2D-X с его конструктором Cocos Creator. Для крупных проектов с 3D-графикой и анимацией лучше использовать полноценные движки вроде Unity или Unreal Engine.</p><h3>Существуют ли GUI-библиотеки для C++ с поддержкой современного стандарта C++17/20?</h3><p>Да, библиотека Nana специально разработана для использования с современным C++ (C++11/17) и поддерживает лямбды, умные указатели и стандартную библиотеку. При этом Nana не является фреймворком, поэтому не навязывает архитектуру проекту.</p><h2>Заключение</h2><p>Всегда следует учитывать особенности той или иной технологии. Выпишите список функций своего приложения, ещё раз прочитайте описания всех графических библиотек C++, и только после этого выбирайте то, что подойдёт вам больше всего.</p>]]></content:encoded>
    </item>
    <item>
      <title>Графический редактор GIMP обновился впервые за 6 лет</title>
      <link>https://tproger.ru/news/gimp-release</link>
      <comments>https://tproger.ru/news/gimp-release?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/gimp-release</guid>
      <description><![CDATA[<p>После шестилетнего перерыва вышла версия GIMP 2.10.0 с новым интерфейсом, инструментами, поддержкой GEGL и 16-битной глубиной цвета.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/gimp-release">Графический редактор GIMP обновился впервые за 6 лет</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 28 Apr 2018 10:35:44 GMT</pubDate>
      <content:encoded><![CDATA[<p>Спустя почти 6 лет со дня релиза GIMP 2.8 графический редактор <a href="https://www.gimp.org/news/2018/04/27/gimp-2-10-0-released/">обновился</a> до версии 2.10.0. Среди изменений числятся преобразованный интерфейс, расширенный набор инструментов, средство обработки изображений GEGL и поддержка дополнительных форматов.</p><h3>Улучшенное оформление</h3><p>Разработчики предоставили набор легковесных тем и возможность изменения пиктограмм инструментов. На выбор даются цветные и монохромные иконки, не привязанные к стилю оформления. На экранах с высокой плотностью пикселей их размер увеличивается автоматически.<a href="https://media.tproger.ru/uploads/2018/04/2.10-update-ui.jpg"></a></p><h3>Производительная обработка</h3><p>Вместо устаревшей пиксельной обработки используется фреймворк <a href="http://gegl.org/">GEGL</a>. Он позволяет работать с массивами данных, которые превышают размер оперативной памяти, и увеличивает эффективность обработки изображений. Ранее глубина цвета была ограничена 8 битами, но в GIMP 2.10.0 она может достигать 16 и 32 бит.</p><h3>Расширенный инструментарий GIMP</h3><p>Список возможностей значительно увеличился, самые важные из них:</p><ul><li>Инструмент трансформации поддерживает вращение, масштабирование, наклон и изменение перспективы. Преобразования вносятся прямо на холсте без открытия дополнительного окна.</li><li>Диалог управления кистями дополнился вариантами от проекта <a href="http://mypaint.org/">MyPaint</a>. Каталог оснащен поисковиком по тегам и окном предварительного просмотра.</li><li>Появился режим симметричного рисования, доступный через диалог Symmetry Painting. Он позволяет отразить нарисованные элементы по диагонали, горизонтали, круговой симметрии и другим направлениям.</li><li>Плагин iWarp для деформации объектов заменен полноценным инструментом Warp Transform. Предпросмотр в высоком качестве можно отключить в настройках.</li><li>Заливка градиентом Blend Tool переименована в Gradient Tool и работает без открытия дополнительных окон. Точки управления цветом можно добавлять, перемещать и удалять, а также менять режимы их наложения.</li><li>Внедрена поддержка нескольких новых форматов изображений: OpenEXR, RGBE, WebP, HGT.</li><li>Технология субпиксельного выделения упрощает работу с волосами и другими сложными объектами на текстурированном фоне. Инструмент обзавелся новым интерфейсом и двумя масками.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/04/2.10-foreground-select.jpg" alt="" /></figure><p>Полный список изменений со скриншотами <a href="https://www.gimp.org/release-notes/gimp-2.10.html">представлен</a> в примечаниях к релизу. GIMP 2.8 <a href="https://www.gimp.org/downloads/">доступен</a> на платформах Windows, macOS и Linux.</p><p>Пока графический редактор расширял свой инструментарий, в обработке изображений значительно преуспели нейронные сети. В январе 2018 года исследователи из «Сколково», «Яндекса» и Оксфорда <a href="https://tproger.ru/news/deep-image-prior-for-photo-restoration/">представили</a> проект Deep Image Prior, предназначенный для уменьшения шума на фотографиях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Facebook протестировала видеокодек AV1: новый формат обошел x264 и libvpx-vp9 по уровню сжатия</title>
      <link>https://tproger.ru/news/av1-benchmark-results</link>
      <comments>https://tproger.ru/news/av1-benchmark-results?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Сироткин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/av1-benchmark-results</guid>
      <description><![CDATA[<p>Facebook сравнила AV1, x264 и libvpx-vp9 на 400 видео: новый кодек дал лучшее сжатие, но проиграл конкурентам по времени кодирования.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/av1-benchmark-results">Facebook протестировала видеокодек AV1: новый формат обошел x264 и libvpx-vp9 по уровню сжатия</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Работа с кодировками]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 14 Apr 2018 22:28:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>Инженеры Facebook <a href="https://code.facebook.com/posts/253852078523394/av1-beats-x264-and-libvpx-vp9-in-practical-use-case/">протестировали</a> открытый видеокодек <a href="https://aomedia.org/av1-features/">AV1</a> в сравнении с <a href="https://ru.wikipedia.org/wiki/X264">x264</a> и <a href="https://ru.wikipedia.org/wiki/VP9">libvpx-vp9</a> на 400 популярных видеороликах в различных разрешениях. Эффективность сжатия измерялась методом BD-rate для оценки достижимости нижней границы битрейта как при неизменном пиковом отношении сигнала к шуму (<a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%B8%D0%BA%D0%BE%D0%B2%D0%BE%D0%B5_%D0%BE%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D0%B0_%D0%BA_%D1%88%D1%83%D0%BC%D1%83">PSNR</a>), так и при индексе структурного сходства (<a href="https://ru.wikipedia.org/wiki/SSIM">SSIM</a>).</p><h3>Результаты тестирования</h3><p>AV1 опередил x264 (main profile) на 50,3 %, x264 (high profile) на 46,2 % и libvpx-vp9 на 34,0 % по уровню сжатия, но вследствие усложненных алгоритмов ожидаемо проиграл им по времени кодирования. Разрешения UHD/4K и 8K были принципиально исключены из тестирования, так как эффективность нового видеокодека возрастает с увеличением разрешения.</p><p>Оценка PSNR (экономия битрейта по сравнению с x264 и libvpx-vp9):</p><figure><img src="https://media.tproger.ru/uploads/2018/04/AV1_PSNR.jpg" alt="" /></figure><p>Оценка SSIM:</p><figure><img src="https://media.tproger.ru/uploads/2018/04/AV1_SSIM.jpg" alt="" /></figure><p>Скорость кодирования:</p><figure><img src="https://media.tproger.ru/uploads/2018/04/AV1_encoding_time_ratio.jpg" alt="" /></figure><p>Каждое видео дополнительно было пропущено через двухпроходный режим стриминга с адаптивным битрейтом (ABR). Разница по битрейту оказалась несущественной, но время кодирования для AV1 и x264 возросло.</p><p>Оценка PSNR в ABR:</p><figure><img src="https://media.tproger.ru/uploads/2018/04/AV1_PSNR_ABR.jpg" alt="" /></figure><p>Оценка SSIM в ABR:</p><figure><img src="https://media.tproger.ru/uploads/2018/04/AV1_SSIM_ABR.jpg" alt="" /></figure><p>Скорость кодирования в ABR:</p><figure><img src="https://media.tproger.ru/uploads/2018/04/AV1_encoding_time_ratio_ABR.jpg" alt="" /></figure><p>Подробнее с результатами тестирования можно <a href="https://code.facebook.com/posts/253852078523394/av1-beats-x264-and-libvpx-vp9-in-practical-use-case/">ознакомиться</a> в блоге Facebook Code.</p><h3>Революция потокового видео</h3><p>Многие компании, включая Google, Twitch, Amazon и Microsoft, а также разработчики браузеров и производители чипов уже выражали заинтересованность в поддержке AV1 в своих продуктах. Видеокодек снизит планку входа на рынок потокового видео для стартапов и упростит его добавление в любые приложения, включая мессенджеры.</p><p>Напомним, что AV1 на основе <a href="https://en.wikipedia.org/wiki/VP9#Successor:_from_VP10_to_AV1">Google VP10</a>, <a href="https://en.wikipedia.org/wiki/Daala">Daala</a> и <a href="https://en.wikipedia.org/wiki/Thor_(video_codec)">Cisco Thor</a> <a href="https://tproger.ru/news/open-media-av1-codec-release/">выпущен</a> альянсом Open Media в конце марта 2018 года. Видеокодек поддерживает разрешение до 4К, а создатели отказались от взимания выплат за его использование.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышел свободный видеокодек AV1, поддерживающий разрешение до 4К</title>
      <link>https://tproger.ru/news/open-media-av1-codec-release</link>
      <comments>https://tproger.ru/news/open-media-av1-codec-release?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/open-media-av1-codec-release</guid>
      <description><![CDATA[<p>Альянс Open Media выпустил AV1 без отчислений: кодек с высоким сжатием поддерживает 4K-видео и кодирует его на 30 % эффективнее ряда аналогов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/open-media-av1-codec-release">Вышел свободный видеокодек AV1, поддерживающий разрешение до 4К</a>»</p>]]></description>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Работа с кодировками]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 29 Mar 2018 10:36:32 GMT</pubDate>
      <content:encoded><![CDATA[<p>Альянс Open Media объявил о релизе общедоступного видеокодека <a href="https://aomedia.org/av1-features/get-started/#specifcations">AOMedia Video Codec 1.0</a> (AV1), не требующего выплаты отчислений. Производители чипов уже могут интегрировать его поддержку в свои продукты и увеличить производительность устройств с любой пропускной способностью.</p><h3>Преимущества кодека</h3><p>B основе AV1 лежат технологии кодеков <a href="https://en.wikipedia.org/wiki/VP9#Successor:_from_VP10_to_AV1">Google VP10</a>, <a href="https://en.wikipedia.org/wiki/Daala">Daala</a> и <a href="https://en.wikipedia.org/wiki/Thor_(video_codec)">Cisco Thor</a>. Высокий уровень сжатия без потери качества позволяет организовывать онлайн-трансляции с разрешением выше 4096 × 3072 пикселей.</p><p>Исследование Bitmovin <a href="https://bitmovin.com/av1-multi-codec-dash-dataset/">показало</a>, что AV1 справляется с кодированием 4K-видео на 30 % эффективнее, чем AVC, VP9 и HEVC/H.265. Результат улучшается по мере увеличения качества: на высоких битрейтах преимущество перед VP9 достигает 27 %, а перед HEVC — 43 %.</p><figure><img src="https://media.tproger.ru/uploads/2018/03/0_1522251068.png" alt="" /></figure><h3>Цели альянса Open Media</h3><p>По данным <a href="https://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/complete-white-paper-c11-481360.html">Cisco Visual Networking Index</a>, к 2021 году 82 % интернет-трафика будет состоять из видео. Союз 12 компаний, среди которых Google, Microsoft и Apple, надеется, что новый кодек откроет доступ к 4K-контенту широкой публике.</p><p>Альянс пытается защитить AV1 от организаций, требующих выплаты отчислений. По условиям <a href="https://aomedia.org/license/patent-license/">лицензионного соглашения</a>, пользователи кодека получают право на бесплатное использование связанных с ним патентов. Им запрещено подавать друг на друга судебные иски. При таких условиях угроза для AV1 может исходить только со стороны патентных троллей, которые ничего не производят, а только владеют интеллектуальной собственностью.</p><p>В январе 2018 года <a href="https://tproger.ru/news/photo-format-from-google-and-mozilla-could-leave-jpeg-in-the-dust/">стало известно</a>, что технология сжатия AV1 также может стать новым форматом изображений. Указывалось, что компании начнут двигаться в этом направлении как раз после завершения работы над видеоконтентом.</p>]]></content:encoded>
    </item>
    <item>
      <title>Представлена открытая бета-версия Unreal Studio</title>
      <link>https://tproger.ru/news/unreal-studio-open-beta</link>
      <comments>https://tproger.ru/news/unreal-studio-open-beta?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unreal-studio-open-beta</guid>
      <description><![CDATA[<p>Unreal Studio открыла бета-тестирование и переносит данные из 20 систем автоматизированного проектирования и 3ds Max в Unreal Engine без потерь.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unreal-studio-open-beta">Представлена открытая бета-версия Unreal Studio</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 Mar 2018 10:22:42 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики <a href="https://www.unrealengine.com/en-US/blog/announcing-unreal-studio-now-in-open-beta">объявили</a> о начале открытого бета-тестирования нового ускоренного инструмента для визуализации Unreal Studio.</p><h3>Возможности</h3><p>По словам создателей, Unreal Studio позволяет быстро и без потерь перемещать данные из 20 систем автоматизированного проектирования и 3ds Max в Unreal Engine. Основными компонентами «студии» являются:</p><ul><li>Datasmith — набор инструментов для «умного» импорта графики в среду движка;</li><li>функции фотореалистичной отрисовки объектов;</li><li>инструмент для манипулирования ассетами и сценами с помощью Python и Blueprint;</li><li>эксклюзивный набор из 100 разновидностей материалов и текстур, которыми можно оснастить любой объект;</li><li>несколько десятков обучающих видеороликов для специфических предметных областей.</li></ul><p>Более подробно ознакомиться с деталями новинки и скачать бесплатную бета-версию можно на <a href="https://www.unrealengine.com/en-US/studio">официальной странице</a> Unreal Studio.</p><p>Напомним, что актуальная стабильная версия движка Unreal Engine 4.18 <a href="https://tproger.ru/news/unreal-engine-4-18-released/">вышла</a> в конце октября 2017 года.</p>]]></content:encoded>
    </item>
    <item>
      <title>Открытый API Vulkan для графических процессоров теперь доступен для macOS и iOS</title>
      <link>https://tproger.ru/news/moltenvk-vulkan-on-metal</link>
      <comments>https://tproger.ru/news/moltenvk-vulkan-on-metal?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Светлана Хачатурян]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/moltenvk-vulkan-on-metal</guid>
      <description><![CDATA[<p>MoltenVK даёт доступ к Vulkan на macOS и iOS, а тестовая сборка Dota 2 с новым интерфейсом стала почти вдвое производительнее.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/moltenvk-vulkan-on-metal">Открытый API Vulkan для графических процессоров теперь доступен для macOS и iOS</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 26 Feb 2018 17:39:58 GMT</pubDate>
      <content:encoded><![CDATA[<p>Открытый кроссплатформенный API для работы с графикой Vulkan, ранее доступный для Windows, Linux, Android, Nintendo Switch и облачных систем, теперь <a href="https://moltengl.com/moltenvk/">открывается</a> и для мира устройств Apple.</p><h3>«Тонкая прослойка»</h3><p>Как <a href="https://arstechnica.com/gadgets/2018/02/vulkan-is-coming-to-macos-ios-but-no-thanks-to-apple/">сообщает</a> издание ARSTechnica, «яблочная» компания долгое время сопротивлялась каким-либо новшествам в программном обеспечении для графических процессоров. Однако, в конце концов, Apple пришла к собственной разработке — API Metal. По многочисленным просьбам разработчиков, не желавших учить очередной стандарт, была создана специальная надстройка над Metal — MoltenVK, подарившая проприетарному решению большую часть возможностей привычного Vulkan.</p><p>Все достоинства API Vulkan в MoltenVK не отражены, однако, по словам разработчиков, она является достойной портативной версией инструмента, вполне охватывающей все основные программные нужды.</p><h3>Первые последователи</h3><p>Одними из первых новый интерфейс применили разработчики из Valve. Они тестировали API на macOS-версии игры Dota 2, и результаты оказались впечатляющими. Частота кадров с MoltenVK почти вдвое превысила этот же показатель у сборки на OpenGL.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/vulkan-on-macos-640x360.jpg" alt="" /></figure><p>API MoltenVK распространяется под лицензией Apache 2. Все желающие могут изучить новый инструмент бесплатно в пробной версии.</p>]]></content:encoded>
    </item>
    <item>
      <title>Нейросеть научилась создавать реалистичную шерсть животных</title>
      <link>https://tproger.ru/news/neural-network-creates-animal-hair</link>
      <comments>https://tproger.ru/news/neural-network-creates-animal-hair?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рамис Ганиев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/neural-network-creates-animal-hair</guid>
      <description><![CDATA[<p>Алгоритм Калифорнийского университета учитывает прозрачность шерсти и точнее рассчитывает отражение света. Нейросеть также улучшает вид человеческих волос.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/neural-network-creates-animal-hair">Нейросеть научилась создавать реалистичную шерсть животных</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 22 Feb 2018 10:11:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>Исследователи из Калифорнийского университета <a href="http://jacobsschool.ucsd.edu/news/news_releases/release.sfe?id=2480">создали</a> нейросеть, предназначенную для реалистичной отрисовки шерсти животных. Новый алгоритм учитывает прозрачность меха, поэтому отражение света получается более близким к реальности.</p><h3>Разница между волосами и шерстью</h3><p>Актуальные методы рендеринга обрабатывают волосяной покров людей и животных по единому алгоритму. Они не учитывают, что шерсть, в отличие от волос, отражает свет под другим углом из-за более объемной медуллы — центральной части волосяного стержня. Игнорирование этого важного свойства приводит к нереалистичному виду персонажей-животных в играх и кино.</p><h3>Отрисовка полупрозрачных волокон</h3><p>Для рендеринга шерсти лучше подходит метод <a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BF%D0%BE%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%BE%D1%81%D1%82%D0%BD%D0%BE%D0%B5_%D1%80%D0%B0%D1%81%D1%81%D0%B5%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5">подповерхностного рассеивания</a>. Он просчитывает, под каким углом должен отразиться свет, проникший в полупрозрачные тела. В реальности эффект такого рассеивания можно увидеть, включив фонарик в темной комнате и приложив к нему палец. На пальце будет видно кольцо света, потому что он прошел сквозь ткани, рассеялся и вернулся.</p><h3>Нейросеть как помощник в рендеринге</h3><p>Подповерхностное рассеивание требует сложных математических вычислений, поэтому исследователи воспользовались нейронной сетью. Обработав одну сцену, нейросеть научилась применять метод и к другим 3D-моделям. Алгоритм оказался эффективным даже при обработке человеческих волос — учитывание прозрачности так же повышает их реалистичность.</p><figure><img src="https://media.tproger.ru/user-uploads/33794/2024-02-19/1bb3dd8b-03ea-4a1d-b991-0810fe0214ca.png" alt="волк" /><figcaption>волк</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/33794/2024-02-19/aa76bd18-0d67-4b69-9c27-e665eca7df70.png" alt="Енот" /><figcaption>енот</figcaption></figure><h3>Использование в будущем</h3><p>Руководитель исследования Рави Рамаморти (Ravi Ramamoorthi) объявил, что алгоритм работает в 10 раз быстрее, чем используемые в студиях методы. В будущем исследователи хотят добиться обработки в реальном времени, чтобы алгоритм мог использоваться в компьютерных играх.</p>]]></content:encoded>
    </item>
    <item>
      <title>Facebook предложила измерять время во flick`ах</title>
      <link>https://tproger.ru/news/facebook-new-time-unit-flick</link>
      <comments>https://tproger.ru/news/facebook-new-time-unit-flick?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Максим Енбулаев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/facebook-new-time-unit-flick</guid>
      <description><![CDATA[<p>Flick меньше секунды в 705 600 000 раз, и по значению близок к наносекунде. По заявлению разработчиков, к попытке введения нового стандарта их подтолкнуло стремление к комфортной работе с видео.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/facebook-new-time-unit-flick">Facebook предложила измерять время во flick`ах</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Jan 2018 19:44:18 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вчера, 22 января, проект Facebook Open Source представил Flick  —  единицу измерения времени, альтернативную стандартной секунде. Название является сокращением от «frame tick», а на русский язык переводится как «щелчок» или «рывок». Flick меньше секунды в 705 600 000 раз, и по значению близок к наносекунде. По заявлению разработчиков, к попытке введения нового стандарта их подтолкнуло стремление к комфортной работе с видео.</p><h3>Костыль или полезная вещь?</h3><p>Идея разработки основывается на проблеме раскадровки видеоряда. Длина одного кадра при 24 FPS приблизительно равна 0,04166666667 секунды. При работе со стандартными в этом деле наносекундами неизбежно использование чисел с плавающей точкой, что вызывает неточности в синхронизации. Используя Flick, пользователи могут не переживать по этому поводу, так как будут иметь дело с целочисленными значениями времени. При этом неважно, имеет ли видео частоту 24, 80 или 120 герц.</p><p>Спецификация Flick <a href="https://github.com/OculusVR/Flicks">опубликована</a> на GitHub в репозитории OculusVR — компании, принадлежащей Facebook — в виде библиотеки на C++. Хотя, похоже, Facebook и ожидает использования Flick в сфере дополненной реальности, разработка уже сейчас может быть полезна, например, при проектировании визуальных эффектов, основанных на CGI.</p><p>Слово для обозначения единицы <a href="https://www.facebook.com/christopher.horvath.395/posts/1157292757692660">ввёл</a> ещё в 2016 году бывший сотрудник Oculus Story Studio Кристофер Хорват. По его <a href="https://www.facebook.com/christopher.horvath.395/posts/1598269910261607">словам</a>, само придумывание единицы и работа над ней заняли у него несколько недель, но процесс прохождения инициативы через Facebook Open Source потребовал более года.</p>]]></content:encoded>
    </item>
    <item>
      <title>Практическое руководство по созданию пользовательской анимации загрузки</title>
      <link>https://tproger.ru/translations/custom-web-animation-guide</link>
      <comments>https://tproger.ru/translations/custom-web-animation-guide?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Туренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/custom-web-animation-guide</guid>
      <description><![CDATA[<p>Практическое создание троббера для сайта с помощью Sketch и Principle, а также CSS, jQuery или анимированных GIF-файлов для интерфейса.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/custom-web-animation-guide">Практическое руководство по созданию пользовательской анимации загрузки</a>»</p>]]></description>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[CSS]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 07 Jul 2017 12:53:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>Загрузочная анимация, известная как <a href="https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%BE%D0%B1%D0%B1%D0%B5%D1%80">троббер</a>, отображает процесс загрузки данных. Раньше вы могли видеть прогресс-бары (<a href="https://ru.wikipedia.org/wiki/Индикатор_выполнения">индикаторы выполнения</a>) вместо троббера, но эти времена давно позади.</p><p>Хорошо проработанная анимация с использованием CSS, jQuery или простых анимированных GIF-файлов — это возможность оживить интерфейс сайта и добавить ему оригинальности. Продуманные анимации могут выполнять развлекательную функцию во время ожидания загрузки контента, за счёт чего можно привлекать внимание и удерживать интерес пользователей.</p><p>В этом уроке будет использован <a href="https://www.sketchapp.com">Sketch</a> для создания основных форм и <a href="http://principleformac.com">Principle</a> для быстрого создания загрузочной анимации. Вы научитесь создавать красочные анимации, используемые такими порталами, как Trello, Flickr, Slack и т.д.</p><p>Principle и Sketch — это довольно дорогостоящие продукты для macOS (для прохождения этого руководства можно скачать бесплатную пробную версию). Тем, у кого нет возможности или желания их использовать, мы предлагаем на выбор аналоги указанных выше программ, которые либо свободно распространяются, либо предлагают небольшой период бесплатного обслуживания.</p><p>Для macOS/Windows:</p><ul><li><a href="https://www.justinmind.com">Justinmind</a> — создание анимаций и прототипов (аналог Principle);</li><li><a href="https://inkscape.org/ru/download/">Inkscape</a> — создание основных форм в формате SVG, есть импорт в PNG (аналог Sketch);</li><li><a href="https://atomic.io">atomic.io</a> — создание анимаций и прототипов (30 дней бесплатно, облачный сервис, аналог Principle);</li><li>loading.io — создание загрузочной анимации (web-приложение, которое позволяет создавать анимацию при помощи встроенных элементов. Присутствует возможность использования собственных файлов, аналог Principle).</li></ul><p>Также для macOS есть <a href="http://origami.design">Origami</a>, с помощью которого можно создавать прототипы и анимации (аналог Principle).</p><h2>Загрузочная анимация Slack</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/slack1.gif" alt="" /></figure><ol><li>В Sketch создайте 4 квадрата со сторонами 50 px и округлите их края. Они должны выглядеть, как идеальные круги. В этом уроке будут использоваться именно квадраты с закруглёнными краями вместо кругов, так как только таким образом мы сможем создать эффект растяжения линии в анимации.</li><li>Разместите четыре фигуры таким образом, чтобы они образовали воображаемый квадрат со сторонами 150 px каждая. Примените к фигурам разные цвета (#35BA90 — зелёный, #69CADD — синий, #EBA900 — жёлтый, #E20661 — розовый).</li><li><a href="https://media.tproger.ru/uploads/2017/06/slack2.gif"></a>Импортируйте фигуры в Principle, сгруппируйте их и нажмите «Create Component» (Создать компонент), таким образом будет создана группа.</li><li>Войдите во вложенную группу и поверните артборд на 15 градусов. Затем выберите каждый отдельный круг и верните его в исходное положение (назад на 15 градусов). Это создаст эффект растяжения по прямой линии.</li><li><a href="https://media.tproger.ru/uploads/2017/06/slack3.gif"></a>Примените триггер «Auto» к артборду, а затем растяните каждый закруглённый прямоугольник на противоположную сторону артборда с длиной в 295 px. Поставьте уровень непрозрачности на отметку 75 % для каждой фигуры на обоих артбордах.</li><li><a href="https://media.tproger.ru/uploads/2017/06/slack4.gif"></a>Примените ещё один триггер «Auto» для второго артборда. Создайте новый артборд и в нём уменьшьте каждую линию до её первоначальной ширины — 50 px.</li><li>Свяжите первую и последнюю рабочие области с помощью триггера «Auto». Нажмите кнопку «Back to Parent» (Вернуться к родительскому элементу), чтобы посмотреть конечный результат.</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/slack5.gif" alt="" /></figure><p>Подсказка: При возвращении к родительскому элементу можно повернуть основную группу на -30 градусов, чтобы увеличить сходство с анимацией Slack. Кроме того, вы можете изменить скорость анимации внутри панели «Animation» и применить эффект «Ease Both» (Смягчение), чтобы сгладить переходы.</p><p>Процесс целиком:</p><h2>Загрузочная анимация Trello</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/trello1.gif" alt="" /></figure><ol><li>Откройте Sketch и создайте синий квадрат со сторонами 200рх.</li><li>Вставьте внутрь этого квадрата прямоугольник с шириной 60рх и высотой 140рх.</li><li>Выровняете его сверху слева с отступом в 30рх от левой и верхней сторон квадрата.</li><li>Продублируйте белый прямоугольник и переместите вправо, оставив отступ в 30рх справа и сверху.</li><li>Уменьшьте высоту правого прямоугольника до 70рх.</li><li><a href="https://media.tproger.ru/uploads/2017/06/trello2.gif"></a>Импортируйте артборд в Principle и примените триггер «Auto», чтобы создать новый ключевой кадр.</li><li>На новом артборде измените высоту белых прямоугольников, выставив для левого прямоугольника высоту в 70рх, а для правого — в 140рх.</li><li>Примените эффект «Ease both» (Сглаживание) на панели «Анимация», чтобы сгладить переход.</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/trello3.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Анимация «Вращающийся круг»</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/rollingcircle1.gif" alt="" /></figure><ol><li>В Sketch создайте круг с пунктирной обводкой и сделайте дополнительные промежутки в ней (Dash и Gap), не применяйте заливку.</li><li>Для параметра ширины задайте 10 px. Примените к обводке угловой градиент (Angular Gradient), который подчеркнёт эффект вращения, к его созданию мы перейдём немного позже.</li><li><a href="https://media.tproger.ru/uploads/2017/06/rollingcircle2.gif"></a>Откройте новый файл в Principle и импортируйте круг из Sketch, нажав кнопку «Import». Примените подряд два триггера «Auto».</li><li><a href="https://media.tproger.ru/uploads/2017/06/rollingcircle3.gif"></a>Выберите круг на артборде посередине и измените его угол на 360 градусов.</li><li>Затем выберите третий круг, дайте ему другое имя внутри панели слева. Таким образом будет создана имитация бесконечного вращения.</li><li>Свяжите первый артборд с третьим с помощью триггера «Auto».</li><li>Примените линейный переход к временной шкале между первым и вторым артбордами.</li><li>Откройте окно предпросмотра, чтобы проверить, как работает анимация.</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/rollingcircle4.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Загрузочная анимация Flickr</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/flickr1.gif" alt="" /></figure><ol><li>Создайте рядом друг с другом, как на GIF-анимации, два круга — синий и розовый.</li><li><a href="https://media.tproger.ru/uploads/2017/06/flickr2.gif"></a>Импортируйте их в Principle, затем примените триггер «Auto», чтобы создать новый артборд.</li><li>Поменяйте круги местами, применив снова триггер «Auto», чтобы создать третий артборд. На третьем артборде измените порядок наложения кругов на панели слева.</li><li>Примените третий триггер «Auto», чтобы создать четвёртый артборд. На нём измените положение кругов, затем примените триггер «Auto», соединяя последний артборд с первым.</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/flickr3.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Тип анимации «Loading…»</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/loading1.gif" alt="" /></figure><ol><li>Создайте новый проект в Principle. Затем, используя инструмент «Text», напишите «LOADING». Выровняйте текст слева по горизонтали и справа по вертикали относительно артборда.</li><li>Примените триггер «Auto» пять раз подряд. Свяжите пятый артборд с первым при помощи того же триггера.</li><li><a href="https://media.tproger.ru/uploads/2017/06/loading2.gif"></a>Начиная с первого артборда, измените текст на каждом. Первую надпись оставьте без точки, ко второй прибавьте одну точку, к третьей — 2 точки, к четвёртой — 3 точки, к пятой — 2 точки, к шестой — одну точку. Ваш результат должен выглядеть примерно так:<br />LOADING LOADING. LOADING.. LOADING… LOADING.. LOADING.</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/loading3.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Анимация «Мигающие точки»</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/pulsatingdots1.gif" alt="" /></figure><ol><li>Создайте точку с диаметром в 60 px. Скопируйте и вставьте ещё одну точку и переместите её на 60 px вправо. Убедитесь, что оба объекта, включая промежуток, идеально отцентрированы на артборде.</li><li><a href="https://media.tproger.ru/uploads/2017/06/pulsatingdots2.gif"></a>Примените триггер «Auto» четыре раза подряд.</li><li>На втором артборде уменьшьте размер второй точки до 30 px.</li><li>На третьем артборде уменьшьте вторую точку до 0 px, а первую — до 30 px.</li><li><a href="https://media.tproger.ru/uploads/2017/06/pulsatingdots3.gif"></a>На четвёртом артборде увеличьте вторую точку до 30 px, а первую уменьшьте до 0 px.</li><li>На пятом артборде увеличьте первую точку до 30 px, соедините эту рабочую область с первой с помощью триггера «Auto».</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/pulsatingdots4.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Анимация «Вращающиеся точки»</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/rollingdots1.gif" alt="" /></figure><ol><li>Расположите пять точек так же, как они выглядят на 6-сторонних игральных костях. Импортируйте рабочую область в Principle, затем отцентрируйте.</li><li><a href="https://media.tproger.ru/uploads/2017/06/rollingdots2.gif"></a>Примените триггер «Auto» к артборду.</li><li>На новом артборде поверните группу точек на 360 градусов.</li><li>Соедините второй артборд с первым, используя триггер «Auto».</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/rollingdots3.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Анимация «Пульсирующий круг»</h2><figure><img src="https://media.tproger.ru/uploads/2017/06/pulsatingcircle1.gif" alt="" /></figure><ol><li>Создайте пустую окружность с диаметром 150 px, для ширины контура поставьте значение в 5 px. Затем создайте круг с диаметром 50 px и выровняйте его в центре окружности.</li><li>Примените триггер «Auto» три раза подряд.</li><li><a href="https://media.tproger.ru/uploads/2017/06/pulsatingcircle2.gif"></a>На первом артборде уменьшьте внешний контурный круг до 50 px, а внутренний круг — до 10 px.</li><li>На третьем артборде увеличьте контурный круг до 200 px и поставьте 0 % для параметра непрозрачности. Затем увеличьте внутренний круг до 150 % и выставьте 50 % непрозрачности.</li><li>На последнем артборде увеличьте внутренний круг до 200 px с параметром непрозрачности в 0 %. Уменьшьте контурный круг до 50 px и выставьте 25 % непрозрачности.</li><li><a href="https://media.tproger.ru/uploads/2017/06/pulsatingcircle3.gif"></a>Примените триггер «Auto» к последнему артборду. Уменьшьте внутренний круг до 10 px и выставьте параметр непрозрачности в 50 %</li><li>Соедините последний артборд с первым триггером «Auto».</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/06/pulsatingcircle4.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Анимация «Подпрыгивающие точки»</h2><figure><img src="https://media.tproger.ru/uploads/2017/07/jumpingdots1.gif" alt="" /></figure><ol><li>Создайте три идеально ровных круга с диаметром 50 px и выставьте их в один ряд с расстоянием между ними в 50 px.</li><li>Примените триггер «Auto». Затем на втором артборде переместите второй круг на 50 px вверх.</li><li>Примените триггер «Auto» ко второй рабочей области. На третьем артборде выберите первые два круга и поднимите их на 50 px. Все три объекта должны таким образом выстроиться в диагональную линию.</li><li>Примените триггер «Auto» к третьему артборду. На четвёртом — опустите первый круг на 50 px. Выделите последние два объекта, поднимите их на 50 px.</li><li><a href="https://media.tproger.ru/uploads/2017/07/jumpingdots2.gif"></a>Примените триггер «Auto» к четвёртому артборду. На пятом — переместите первые два круга вниз на 50 px. Выделите последний круг и поднимите его на 50 px.</li><li>Примените триггер «Auto» к пятому артборду. На шестом — переместите последние два круга вниз на 50 px.</li><li><a href="https://media.tproger.ru/uploads/2017/07/jumpingdots3.gif"></a>Наконец, вернитесь к первому артборду, затем поместите первую точку на 50 px выше. Соедините первый артборд с последним.</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/07/jumpingdots4.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Классическая анимация загрузки</h2><figure><img src="https://media.tproger.ru/uploads/2017/07/classic1.gif" alt="" /></figure><ol><li>Откройте Sketch, создайте круг без заполнителя. Для параметра ширины контура задайте 20 px и выберите серый цвет.</li><li>Скопируйте и вставьте тот же круг на том же месте (продублируйте круг) и измените его цвет, например, на голубой.</li><li>Создайте квадрат поверх четверти голубого круга. Переместите слой с квадратом под слой с кругом и примените «Mask» (Маска) к слою с квадратом.</li><li><a href="https://media.tproger.ru/uploads/2017/07/classic2.gif"></a>Импортируйте файл в Principle с помощью кнопки «Import».</li><li>Примените триггер «Auto» к первому артборду и поверните голубой круг на 360 градусов.</li><li>Также примените триггер «Auto» ко второму артборду, измените название третьего слоя с кругом на «копию», соедините последнюю рабочую область с первой при помощи триггера «Auto».</li></ol><figure><img src="https://media.tproger.ru/uploads/2017/07/classic3.gif" alt="" /></figure><p>Процесс целиком:</p><h2>Заключение</h2><p>После того, как вы потренировались и создали анимации собственноручно, у вас должно появиться чувство уверенности в своих возможностях. Теперь вы обладаете базовыми навыками создания веб-анимации, которые вы почерпнули из нашей статьи.</p><p>Немного воображения и такие удобные инструменты, как Sketch и Principle (или их аналоги) позволят вам создавать уникальные анимации загрузки, которые будут соответствовать дизайну вашего сайта или приложения. Ваши пользователи, может, и подсознательно, но точно это оценят.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработан фильтр, позволяющий превратить ваше лицо на видео в статую</title>
      <link>https://tproger.ru/news/sykora-facial-animation</link>
      <comments>https://tproger.ru/news/sykora-facial-animation?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Егор Мадьяров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/sykora-facial-animation</guid>
      <description><![CDATA[<p>Алгоритм чешских исследователей анимирует лица в видео в стиле фотографии, масляной картины или бронзовой статуи с помощью машинного обучения.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/sykora-facial-animation">Разработан фильтр, позволяющий превратить ваше лицо на видео в статую</a>»</p>]]></description>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 30 May 2017 09:58:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Группа исследователей под руководством профессора из Чешского технического университета в Праге создала управляемый искусственным интеллектом алгоритм, который может анимировать лица в стиле выбранной фотографии.</p><p>Короткое видео, опубликованное <a href="http://dcgi.fel.cvut.cz/home/sykorad/">профессором Дэниелом Сикорой</a>, напоминает о недавних проектах, как например, <a href="https://www.theverge.com/2016/3/21/11275462/facial-transfer-donald-trump-george-bush-video">об этом</a>. В нем исследователи управляли лицами людей на видео таким образом, как будто они говорили что-то другое. Другая команда исследователей недавно научилась переносить стиль одной фотографии на другую. Так, например, можно было <a href="https://www.theverge.com/2017/3/30/15124466/ai-photo-style-transfer-deep-neural-nets-adobe">взять фото одного заката, а сверху наложить изображение другого</a>, более эффектного.</p><p>Программа Сикоры делает что-то среднее, фокусируясь на лицах людей. Она способна перенести стиль нарисованной маслом картины или бронзовой статуи на говорящего в видео человека. Результат завораживает. Это похоже на то, что делают Snapchat, Facebook и Instagram (или на то, над чем они <a href="https://tproger.ru/news/facebook-reveals-camera-effects-ar/">сейчас работают</a>), однако, выходит это гораздо лучше.</p><h3>Как это работает?</h3><p>Не совсем понятно, как команда Сикоры добилась такого результата. Очевидно, что они использовали приемы машинного обучения. Программа может идентифицировать лица, отличать фон и передний план фото почти так же, как это делают визуальные алгоритмы современных компьютеров.</p><p>По всей видимости, подготовленный исследователями доклад об этом проекте был одобрен редакцией Transactions on Graphics — одного из журналов, выпускаемых Ассоциацией по вычислительной технике (США). Однако его опубликуют только этим летом, после того, как команда Сикоры представит свои разработки на конференции по вопросам компьютерной графики <a href="https://www.youtube.com/watch?v=5YvIHREdVX4">SIGGRAPH</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышла новая версия игрового движка Unreal Engine 4.16</title>
      <link>https://tproger.ru/news/unreal-engine-4-16-released</link>
      <comments>https://tproger.ru/news/unreal-engine-4-16-released?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unreal-engine-4-16-released</guid>
      <description><![CDATA[<p>Unreal Engine 4.16 добавил Volumetric Fog, поддержку Nintendo Switch, симуляцию групп персонажей и замену APEX на NvCloth от NVIDIA.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unreal-engine-4-16-released">Вышла новая версия игрового движка Unreal Engine 4.16</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 29 May 2017 17:35:54 GMT</pubDate>
      <content:encoded><![CDATA[<p>Свежий <a href="https://www.unrealengine.com/en-US/blog/unreal-engine-4-16-released">релиз Unreal Engine 4.16</a> принес множество разных улучшений движка, в том числе новый функционал для техник визуализации и анимации, а также повышение производительности для мобильных платформ и консолей.</p><h2>Основные нововведения</h2><p><a href="https://docs.unrealengine.com/latest/INT/Engine/Rendering/LightingAndShadows/VolumetricFog/index.html">Функция Volumetric Fog</a> позволяет автоматически отрисовывать реалистичный туман и дым с соответствующим освещением в любом месте кадра, поддерживает крупный масштаб:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/unrealengine416-1-compr.png" alt="" /></figure><p>Доступна полная <a href="https://www.unrealengine.com/en-US/blog/launch-your-game-on-the-nintendo-switch-with-unreal-engine-4-16">поддержка Nintendo Switch</a> для разработчиков, прошедших специальную регистрацию:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/image_7.png" alt="" /></figure><p>Дополнительные возможности симуляции поведения целых групп героев (lightweight rigid body character simulation), в том числе при их столкновении с окружающими объектами (immediate mode в <a href="http://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/API.html">PhysX API</a>);</p><p>Разработчики получают больший контроль за симуляцией одежды героев — APEX был заменен на <a href="https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/nvCloth/index.html">NvCloth</a> от NVIDIA:</p><p><a href="https://docs.unrealengine.com/latest/INT/Engine/Editor/VR/GDC2017/">Переработан интерфейс VR-режима</a> в редакторе Unreal Editor и добавлены новые возможности для разработки виртуальной реальности:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/image_8.jpg" alt="" /></figure><p>DirextX 12 сделали графическим API по умолчанию для Xbox One:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/image_12.png" alt="" /></figure><p>Для HTML5 добавлена поддержка WASM — нового стандарта <a href="http://webassembly.org/">WebAssembly</a>, который позволяет наиболее быстро и эффективно компилировать и запускать C++ для веба:</p><figure><img src="https://media.tproger.ru/uploads/2017/05/image_13.png" alt="" /></figure><p>Реализована поддержка пользовательских разрешений во время выполнения программы (<a href="https://developer.android.com/guide/topics/permissions/requesting.html">runtime permissions</a>):</p><figure><img src="https://media.tproger.ru/uploads/2017/05/image_32.png" alt="" /></figure><p>Unreal Engine 4.16 предлагает еще много полезных улучшений, в том числе поддержку WebGL 2.0 и двукратно ускоренную сборку мусора. С полным списком изменений можно ознакомиться в <a href="https://www.unrealengine.com/en-US/blog/unreal-engine-4-16-released">примечаниях к выпуску</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Vulkan и OpenCL скоро объединятся в один API</title>
      <link>https://tproger.ru/news/vulkan-and-opencl-merged</link>
      <comments>https://tproger.ru/news/vulkan-and-opencl-merged?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Михаил Ильин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/vulkan-and-opencl-merged</guid>
      <description><![CDATA[<p>Khronos Group планирует сблизить OpenCL с Vulkan: графика и вычисления должны объединиться в одном открытом API, а OpenCL войдёт в Vulkan.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/vulkan-and-opencl-merged">Vulkan и OpenCL скоро объединятся в один API</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 24 May 2017 19:18:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>Ранее на этой неделе Khronos Group <a href="https://www.khronos.org/news/press/khronos-releases-opencl-2.2-with-spir-v-1.2">сообщила</a> о возможном включении SPIR-V 1.2 в спецификацию OpenCL 2.2. Но «зоркий глаз» Скотта Мишо из PCper <a href="https://www.pcper.com/reviews/General-Tech/Breaking-OpenCL-Merging-Roadmap-Vulkan">заметил</a> кое-что, что другие не заметили. Всего одна строка в конце третьего абзаца анонса сигнализирует о важнейшем обновлении:</p><blockquote>Мы также работаем над сближением с Khronos Vulkan API для слияния продвинутой графики и вычислений на едином API.</blockquote><p>Мишо удивило то, что такое важное заявление было так скромно преподнесено, и он начал искать подтверждение. И Khronos Group подтвердила свои намерения:</p><blockquote>Рабочая группа OpenCL приняла решение объединить план развития с Vulkan и использовать его как основу для следующих поколений API явных вычислений. Это также отличная возможность для развития OpenCL в области слияния графики и вычислений.</blockquote><p>Отсюда следует важное уточнение — OpenCL вольётся в Vulkan, а не наоборот.</p><figure><img src="https://media.tproger.ru/uploads/2017/05/592e8d76-6481-49af-94ab-40530a8ae827.jpg" alt="" /></figure><h3>И чем это выгодно?</h3><p>Слияние двух открытых стандартов позволит разработчикам решать широчайший спектр потребностей при помощи одного API, содержащего всё лучшее из двух. Это должно сделать Vulkan ещё более популярным.</p><p>Очевидно, что пользователи ПК с процессорами AMD получат больше выгоды от этого слияния. Центральные и графические процессоры AMD особенно хорошо работают с играми, использующими Vulkan. Кроме того, AMD <a href="http://developer.amd.com/tools-and-sdks/opencl-zone/">активно поддерживает</a> платформу OpenCL, в то время как NVIDIA выступает за использование собственных API и платформы для параллельных вычислений CUDA.</p>]]></content:encoded>
    </item>
    <item>
      <title>NVIDIA показала инструмент Iray, использующий нейронную сеть для удаления шумов при трассировке лучей</title>
      <link>https://tproger.ru/news/mental-ray-3ds-max-nvidia-iray</link>
      <comments>https://tproger.ru/news/mental-ray-3ds-max-nvidia-iray?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Иван Бирюков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/mental-ray-3ds-max-nvidia-iray</guid>
      <description><![CDATA[<p>Нейросеть в инструменте NVIDIA Iray удаляет шумы при трассировке лучей — популярном методе рендеринга — в реальном времени.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/mental-ray-3ds-max-nvidia-iray">NVIDIA показала инструмент Iray, использующий нейронную сеть для удаления шумов при трассировке лучей</a>»</p>]]></description>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[GTC 2017]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 12 May 2017 08:33:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>На <a href="https://tproger.ru/tag/gtc-2017/">конференции GTC 2017</a> генеральный директор и основатель NVIDIA <a href="https://ru.wikipedia.org/wiki/%D0%A5%D1%83%D0%B0%D0%BD_%D0%96%D1%8D%D0%BD%D1%8C%D1%81%D1%8E%D0%BD%D1%8C">Хуан Женьсюнь</a> (Jensen Huang) продемонстрировал достижения компания в области рендеринга. Примечательным было использование ИИ для трассировки лучей — метода рендеринга, при котором сцена строится на основе замеров пересечения лучей с визуализируемой поверхностью.</p><p>Этот метод позволяет получить качественную картинку, но требует больших вычислительных мощностей и может делать изображения зашумленными. Для очистки изображений от шумов NVIDIA улучшила свой инструмент <a href="https://www.nvidia.com/object/nvidia-iray.html">Iray</a>, который теперь способен удалять шумы в реальном времени при помощи алгоритмов глубинного обучения и графических процессоров NVDIA Quadro.</p><p>Эту технологию можно использовать в любых областях, использующих графику: индустрии развлечений, дизайне, производстве, архитектуре, инженерном деле и многих других. Помимо Iray, её можно встроить и в другие системы трассировки лучей.</p><figure><img src="https://media.tproger.ru/uploads/2017/05/Iraycollage.jpg" alt="" /></figure><h3>Как работает интерактивное удаление шумов в Iray?</h3><p>Существующие алгоритмы тратят примерно по минуте для удаления шумов с одного кадра, что неприемлемо для интерактивных приложений. ИИ, используемый в Iray, предугадывает финальный результат, ориентируясь на уже очищенные части изображения, что позволяет удалять шумы в режиме реального времени, не дожидаясь отрисовки всего кадра.</p><p>Ускорение процесса было достигнуто при помощи использования <a href="https://tproger.ru/translations/neural-network-zoo-1/">автокодировщиков</a> — нейронных сетей, которые обычно используются для повышения разрешения изображений, сжатия видео и прочих алгоритмов для обработки графики. ИИ был обучен на 15 тысячах пар изображений с различным уровнем зашумленной из 3 тысяч сцен при помощи <a href="https://www.nvidia.com/en-us/data-center/dgx-1/">суперкомпьютера NVIDIA DGX-1</a>, причём менее чем за 24 часа. После обучения нейронная сеть способна удалять шумы за доли секунды почти с любого изображения — даже того, которого не было в наборе для обучения.</p><p>Важно, что вам не придётся беспокоиться о том, как устроена функциональность Iray. Сеть обучена заранее — вам нужно лишь нажать кнопку и наслаждаться результатом (правда, при наличии графического процессора архитектуры Pascal и лучше).</p><h3>Как начать использовать Iray?</h3><p>NVIDIA выпустит Iray SDK позже в этом году, а также добавит эту функциональность в <a href="https://www.nvidia.com/object/nvidia-mental-ray.html">NVIDIA Mental Ray</a>. Кстати стоит отметить плагины NVIDIA для 3ds Max: новая версия Iray уже доступна, а Mental Ray теперь бесплатен.</p>]]></content:encoded>
    </item>
    <item>
      <title>Apple собирается самостоятельно разрабатывать графические процессоры для iPhone и iPad</title>
      <link>https://tproger.ru/news/apple-will-develop-own-gpu</link>
      <comments>https://tproger.ru/news/apple-will-develop-own-gpu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/apple-will-develop-own-gpu</guid>
      <description><![CDATA[<p>Imagination Technologies сообщила, что Apple создаёт собственные GPU и откажется от PowerVR: акции британской компании упали почти на 70%.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/apple-will-develop-own-gpu">Apple собирается самостоятельно разрабатывать графические процессоры для iPhone и iPad</a>»</p>]]></description>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 05 Apr 2017 15:15:20 GMT</pubDate>
      <content:encoded><![CDATA[<p>Британская компания Imagination Technologies, которая поставляет графические процессоры PowerVR для iPhone и iPad, <a href="https://www.imgtec.com/news/press-release/discussions-with-apple-regarding-license-agreement/">сообщает</a>, что Apple «работает над созданием собственных GPU с целью лучше контролировать своё производство и более не собирается полагаться на наши технологии».</p><p>Такой шаг сильно ударит по Imagination — она перестанет получать отчисления с продаж iPhone и iPad меньше, чем через два года, при том, что больше половины годового дохода компании приносит Apple. Стоит отметить, что в связи с этим известием стоимость акций Imagination упала почти на 70%.</p><h3>Чего ждать?</h3><p>Если всё действительно так, следующее поколение iPhone может увидеть свет уже с новым чипом из серии A, в котором и центральный, и графический процессор будут полностью разработаны Apple. Чтобы окончательно разобраться, в чём между ними разница — прочитайте <a href="https://tproger.ru/articles/cpu-and-gpu/">нашу статью</a>.</p><p>Напомним, что Apple уже достигла успеха в поле разработки CPU — её ARM-микропроцессоры часто превосходят конкурентов по техническим характеристикам. Тем не менее, ожидаемые графические чипы будут подвергнуты тщательному анализу: Imagination уже высказала свои сомнения по поводу способности Apple сделать полностью оригинальную микросхему и подозревает компанию в нарушении авторских прав.</p>]]></content:encoded>
    </item>
    <item>
      <title>Создаем реалистичный ландшафт за 130 строк кода на JavaScript</title>
      <link>https://tproger.ru/translations/realistic-terrain-130-lines</link>
      <comments>https://tproger.ru/translations/realistic-terrain-130-lines?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/realistic-terrain-130-lines</guid>
      <description><![CDATA[<p>Генерация 3D-рельефа алгоритмом diamond-square: карта высот хранится в двумерном массиве, а визуализировать её можно через Canvas или WebGL.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/realistic-terrain-130-lines">Создаем реалистичный ландшафт за 130 строк кода на JavaScript</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 02 Apr 2017 11:27:39 GMT</pubDate>
      <content:encoded><![CDATA[<p>Программисты — ленивые существа с тонкой душевной организацией, что помогает нам находить простые и красивые решения задач с минимальными затратами. В этой статье мы создадим реалистичный ландшафт с помощью <a>алгоритма «diamond-square»</a>. Мы не будем долго прорисовывать вручную каменистый рельеф, который в итоге, скорее всего, окажется весьма убогим. Вместо этого, благодаря генерации фракталов, мы научим компьютер, что значит быть камнем.</p><h2>Карта высот</h2><p>Будем хранить ландшафт в виде карты высот — двумерного массива, в котором содержится информация о высоте каждой точки местности по координатам x и y. С помощью этой простой структуры данных можно визуализировать высоту как угодно — с Canvas, WebGL и т.д. Основное ограничение состоит в том, что мы не можем отображать вертикальные отверстия ландшафта, такие как пещеры или туннели.</p><p>Этот алгоритм можно применять к сетке любого размера, но удобнее всего использовать квадрат размера степени двойки + 1. Мы будем использовать одно и то же значение size для осей x, y и z, оформляя наш ландшафт в куб. Конвертируем detail в степень двойки + 1, чтобы при более подробной детализации генерировались кубы большего размера.</p><h2>Алгоритм</h2><p>Возьмём квадрат. Разделим его ещё на четыре квадрата и сдвинем их центры вверх или вниз случайным образом. Разделим каждый из них ещё на квадраты и повторим, раз за разом уменьшая диапазон случайного сдвига для получения более мелких деталей.</p><p>Это алгоритм «diamond-square». В нашем случае он немного усовершенствован для получения более реалистичного результата: пространство попеременно делится на квадраты (squares) и ромбы (diamonds).</p><h3>Устанавливаем углы</h3><p>Сначала нужно установить углам начальное значение seed, которое повлияет на остальную визуализацию. Код ниже поднимет все углы на половину высоты куба:</p><h3>Делим карту</h3><p>Теперь будем рекурсивно наблюдать за все более малыми делениями карты высот. При каждом делении мы будем разбивать карту на квадраты и обновлять положение центральной точки каждого из них во время фазы «square». Потом мы разделим карту на ромбы и обновим их центральные точки на этапе «diamond».</p><p>Использование переменной scale гарантирует, что величина сдвигов уменьшается вместе с величиной делений. Для каждого деления мы умножаем текущий размер на коэффициент неровности roughness, который определяет, будет ландшафт гладким (значения около 0) или гористым (значения около 1).</p><h3>Формы</h3><p>Обе формы (square и diamond) работают по одному принципу, но получают данные из разных точек. На фазе square перед случайным сдвигом мы находим среднее от четырех угловых точек, а на фазе diamond — от четырех точек на ребрах.</p><h2>Визуализация</h2><p>Этот алгоритм лишь даёт нам данные, которые мы уже можем визуализировать разными способами. Здесь мы совместим несколько техник для создания растровой изометрической 3D-проекции ландшафтной карты на сетке.</p><h3>Задом наперёд</h3><p>Сначала мы создаём вложенные циклы, которые вытаскивают прямоугольники с «задней части» нашей карты (y = 0) «вперёд» (y = this.size). Такой же цикл мы бы использовали для визуализации простого плоского квадрата.</p><h3>Светотени</h3><p>Наш непритязательный подход обеспечивает красивую визуальную текстуру. Мы сравниваем текущую высоту с высотой следующей точки, чтобы вычислить склон. И рисуем более яркие прямоугольники для более высоких склонов, чтобы заполнить одну сторону светом, а другую — тенью.</p><h3>Изометрическая проекция</h3><p>Визуально интереснее перевести наш ландшафт из фазы «square» в фазу «diamond» прежде чем делать его 3D-проекцию. Изометрическая проекция сводит верхний левый и нижний правый углы в центр изображения.</p><h3>Центральная (перспективная) проекция</h3><p>Мы будем использовать столь же простую 3D-проекцию для конвертации значений x, y и z в плоскую картинку с перспективой на 2D-экране.</p><p>Основная идея любой проекции перспективы состоит в том, чтобы разделить горизонтальную и вертикальную позицию на глубину таким образом, чтобы более далекие объекты казались меньше.</p><h2>Собираем воедино</h2><p>Создаем новый экземпляр Terrain с необходимым уровнем детализации. Затем генерируем его карту высот со значением неровности (roughness) между 0 и 1. Наконец, переносим ландшафт на сетку.</p><p><br />Можно <a href="http://demos.playfuljs.com/terrain">посмотреть результат</a> на сайте автора, а также <a>изучить код</a> на GitHub.</p><p>Если вам интересна разработка ландшафтов, советуем почитать наш перевод руководства <a>«Создание ландшафта на Unity за 24 часа»</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Стабильная версия Unity 5.6 доступна для скачивания</title>
      <link>https://tproger.ru/news/unity-5-6-released</link>
      <comments>https://tproger.ru/news/unity-5-6-released?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-5-6-released</guid>
      <description><![CDATA[<p>Релиз Unity 5.6 завершил цикл версий Unity 5, скачать сборку и прочитать полные примечания к выпуску можно на официальном сайте движка.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-5-6-released">Стабильная версия Unity 5.6 доступна для скачивания</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 01 Apr 2017 10:41:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вчера вышел <a href="https://tproger.ru/news/gdc-2017-day-1/">обещанный</a> релиз Unity 5.6, который завершил цикл версий Unity 5.</p><h3>Что нового?</h3><ul><li>Улучшенные техники освещенияВключенная в релиз предварительная версия Progressive Lightmapper предоставляет мгновенный фидбек при переключении между сценариями освещения и обеспечивает ускоренную итерацию по сравнению с текущим решением. Так же появился инструмент Light Modes, позволяющий по-разному совмещать «запеченное» (baked) и динамическое освещение.</li><li>Повышение производительности графикиGPU Instancing, позволяющий применять специальные эффекты для групп похожих объектов, стал еще более эффективным благодаря поддержке Procedural Instancing. Появилась возможность повысить уровень детализации игры благодаря вычислительным шейдерам для Metal API.</li><li>Поддержка Vulkan APIОна обеспечивает повышение скорости при уменьшении затрат вычислительных ресурсов драйверов и CPU. Это позволяет CPU совершать дополнительные вычисления и продлевает срок работы батарей для мобильных платформ.%save-sc0%</li><li>Обновление Particle SystemРасширен ассортимент эффектов для «систем частиц», позволяющих визуализировать объекты без четкой формы, наподобие облаков, огня и жидкостей.</li><li>Мультиплатформенный видеоплеер с воспроизведением в 4KПозволяет создавать видео для VR с 360-градусным обзором:%save-sc1%</li><li>Улучшенная навигацияСистема NavMesh расширяет возможности управления несколькими мешами и агентами. Появились новые инструменты для генерируемого и динамически загружаемого контента.%save-sc2%</li><li>Обновленный функционал для 2D-моделирования</li><li>Визуализатор текста TextMesh Pro стал бесплатнымВ скором времени он будет полностью интегрирован с Unity.%save-sc3%</li><li>Поддержка новых платформ: Facebook Gameroom, Google Daydream и Cardboard, Nintendo Switch</li><li>Unity Collaborate (Beta)Добавлены новые функции при публикации изменений для лучшего управления совместными проектами в облачном сервисе.</li><li>Экспериментальная поддержка стандарта WebAssembly</li></ul><p>Скачать Unity 5.6 и прочитать все примечания к выпуску можно <a href="https://unity3d.com/ru/unity/whats-new/unity-5.6.0">на официальном сайте</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Создаем игровой движок с видом от первого лица за 265 строк кода на JavaScript</title>
      <link>https://tproger.ru/translations/first-person-engine-265-lines</link>
      <comments>https://tproger.ru/translations/first-person-engine-265-lines?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/first-person-engine-265-lines</guid>
      <description><![CDATA[<p>Рейкастинг вместо сложной математики и 3D-визуализации: игрок задаётся координатами и направлением, а карта хранится в двумерном массиве.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/first-person-engine-265-lines">Создаем игровой движок с видом от первого лица за 265 строк кода на JavaScript</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Mar 2017 20:26:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>В этой статье мы создадим небольшой игровой движок с видом от первого лица без сложной математики и техник 3D-визуализации, используя метод рейкастинга (трассировки, или «бросания», лучей).</p><p><a href="https://ru.wikipedia.org/wiki/Ray_casting">Рейкастинг</a> — один из методов рендеринга в компьютерной графике, при котором сцена строится на основе замеров пересечения лучей с визуализируемой поверхностью.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/raycaster-result.gif" alt="" /></figure><h3>Игрок</h3><p>Логично, что если мы создаем движок от первого лица, то наш игрок — это и есть точка, из которой будут выходить лучи. Для начала нам понадобится всего три свойства: координата x, координата y и направление:</p><h3>Карта</h3><p>Будем хранить карту с помощью двумерного массива. В нем 0 будет обозначать отсутствие стены, а 1 — её наличие. Для нашей реализации такой простой схемы будет достаточно.</p><h3>Бросаем луч</h3><p>Фишка в том, что при рейкастинге движок не рисует пространство целиком. Вместо этого он делит его на отдельные колонки и воспроизводит одну за одной. Каждая колонка представляет собой один брошенный под определенным углом луч. Если луч встречает на пути стену, он измеряет расстояние до нее и рисует прямоугольник в колонке. Высота прямоугольника определяется пройденным расстоянием — чем дальше стена, тем короче колонка.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/raycaster-idea.png" alt="" /></figure><p>Чем больше мы бросим лучей, тем более гладкими в результате будут переходы.</p><h4>Найдем угол каждого луча</h4><p>Угол зависит от трех параметров: направления, в котором смотрит игрок, фокусного расстояния камеры и колонки, которую мы в данный момент рисуем.</p><h4>Проследим за каждым лучом на сетке</h4><p>Нам нужно проверить наличие стен на пути каждого луча. В результате мы должны получить массив, в котором будут перечислены все стены, с которыми луч сталкивается, удаляясь от игрока.</p><figure><img src="https://media.tproger.ru/uploads/2017/03/raycaster-grid.png" alt="" /></figure><p>Начинаем с того, что находим ближайшую к игроку горизонтальную stepX и вертикальную stepY линию сетки. Перемещаемся к той, что ближе, и проверяем на наличие стены с помощью inspect. Повторяем шаги до тех пор, пока не отследим до конца траекторию каждого луча.</p><p>Обнаружить пересечения на сетке легко: нужно просто найти все целочисленные x (1, 2, 3…). А потом найти соответствующие y с помощью умножения x на коэффициент угла наклона rise / run.</p><p>Прелесть этой части алгоритма в том, что размер карты не имеет значения. Мы рассматриваем только определенный набор точек на сетке — каждый раз примерно одно и то же количество. В нашем примере размер карты 32×32, но если бы он был 32 000×32 000, скорость загрузки была бы такой же.</p><h4>Рисуем колонку</h4><p>После того как мы отследили луч, нам нужно нарисовать все стены, которые встречаются ему на пути.</p><p>Мы определяем высоту каждой стены, деля её максимальную высоту на z. Чем дальше стена, тем короче мы её рисуем.</p><p>Откуда взялся косинус? Если мы будем использовать «чистое» расстояние от игрока до стены, то в итоге получим эффект «рыбьего глаза». Представьте, что вы стоите лицом к стене. Края стены слева и справа находятся от вас дальше, чем центр стены. Но мы же не хотим, чтобы при отрисовке стена выпирала посередине? Для того, чтобы визуализировать плоскую стену так, как мы её видим в реальной жизни, мы строим треугольник из каждого луча и находим перпендикуляр к стене с помощью косинуса. Вот так:</p><figure><img src="https://media.tproger.ru/uploads/2017/03/raycaster-distance.png" alt="" /></figure><p>В нашей статье это — самая сложная математика, с которой придется столкнуться ?</p><h3>Визуализируем</h3><p>Используем объект Camera, чтобы отрисовать карту с точки зрения игрока. Объект будет отвечать за визуализацию каждой колонки в процессе движения слева направо.</p><p>Прежде чем он отрисует стены, мы зададим skybox — большое изображение для фона с горизонтом и звездами. После того, как закончим со стенами, добавим оружие на передний план.</p><p>Самые важные свойства камеры — разрешение, фокусное расстояние и диапазон.</p><ul><li>Разрешение определяет, сколько колонок мы рисуем (сколько лучей бросаем);</li><li>Фокусное расстояние определяет ширину линзы, через которую мы смотрим (углы лучей);</li><li>Диапазон определяет дальность обзора (максимальная длина каждого луча).</li></ul><h3>Собираем воедино</h3><p>Используем объект Controls для снятия данных с клавиш-стрелок и сенсорной панели, а также объект GameLoop для вызова requestAnimationFrame. Цикл игры прописываем всего тремя строками:</p><h3>Детали</h3><h4>Дождь</h4><p>Дождь симулируем с помощью нескольких очень коротких стен, разбросанных произвольно:</p><p>Задаем ширину стены в 1 пиксель.</p><h4>Освещение и молнии</h4><p>Освещение — это, вообще-то, работа с тенями: все стены рисуются со 100% яркостью, а потом покрываются черным прямоугольником какой-либо прозрачности. Прозрачность определяется как расстоянием до стены, так и её ориентацией (север / юг / запад / восток).</p><p>Для симуляции молний, map.light случайным образом совершает резкий скачок до значения 2 и потом так же быстро гаснет.</p><h4>Предупреждение столкновений</h4><p>Для того, чтобы игрок не натыкался на стены, мы просто проверяем его следующую локацию по карте. Координаты x и y проверяем по отдельности, чтобы игрок мог идти вдоль стены:</p><h4>Текстура стен</h4><p>Без текстуры стена выглядела бы довольно скучно. Для каждой колонки мы определяем текстуру посредством взятия остатка в точке пересечения луча со стеной.</p><p>Например, для пересечения в точке (10, 8,2) остаток равен 0,2. Это значит, что пересечение находится в 20% от левого края стены (8) и 80% от правого края (9). Поэтому мы умножаем 0,2 на texture.width чтобы найти x-координату для изображения текстуры.</p><p>Можно <a href="http://demos.playfuljs.com/raycaster/">посмотреть результат</a> на сайте автора, а также <a href="https://github.com/hunterloftis/playfuljs-demos/blob/gh-pages/raycaster/index.html">изучить код</a> на GitHub.</p>]]></content:encoded>
    </item>
    <item>
      <title>Chrome 56 получил поддержку WebGL 2.0</title>
      <link>https://tproger.ru/news/web-gl-2-0-chrome</link>
      <comments>https://tproger.ru/news/web-gl-2-0-chrome?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/web-gl-2-0-chrome</guid>
      <description><![CDATA[<p>Обновлённое API WebGL 2.0 ускоряет рендеринг в реальном времени, добавляет новые типы текстур и снижает потребление видеопамяти на Windows, macOS и Linux.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/web-gl-2-0-chrome">Chrome 56 получил поддержку WebGL 2.0</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 17 Mar 2017 19:55:22 GMT</pubDate>
      <content:encoded><![CDATA[<p><a href="https://www.khronos.org/webgl/">WebGL</a> — это JS-библиотека для работы с 3D-графикой, аналог OpenGL для веб-разработки. Chrome 56 теперь поддерживает <a href="https://www.khronos.org/registry/webgl/specs/latest/2.0/">WebGL 2.0</a> — серьёзное усовершенствование API, которое открывает новые возможности в работе с графикой и рендеринге. Стандарт доступен для пользователей Chrome с современным аппаратным обеспечением на Windows, macOS и Linux, а скоро появится и поддержка Android.</p><h3>В чём преимущество WebGL 2.0?</h3><p>WebGL 2.0 упрощает сборку 3D-приложений благодаря ускоренному рендерингу в реальном времени, новым типам текстур и ретушеров и сниженному потреблению видеопамяти. Теперь легко реализовать такие техники, как, например, отложенное освещение, эффекты частиц и тональная компрессия. Новые API позволили WebGL догнать по функциональности OpenGL ES 3.0, графическую платформу, используемую в мобильных играх.</p><p>Вдобавок к новым возможностям рендеринга, WebGL 2.0 предоставляет значительно расширенный набор тестов. Chrome проходит 100% тестов с графическими процессорами разных производителей на каждой платформе.</p><p>Для знакомства с WebGL 2.0 сперва ознакомьтесь с демками нововведений, набором <a href="https://github.com/WebGLSamples/WebGL2Samples">WebGL 2.0 Samples Pack</a>. Посмотреть на WebGL 2.0 в действии можно также в интерактивной демонстрации <a href="https://playcanv.as/e/p/44MRmJRU/">After the Flood</a>, созданной PlayCanvas совместно с Mozilla.</p>]]></content:encoded>
    </item>
    <item>
      <title>Apple разработала прототип API для работы с 3D-графикой в Сети</title>
      <link>https://tproger.ru/news/apple-proposes-gpu-api-for-web</link>
      <comments>https://tproger.ru/news/apple-proposes-gpu-api-for-web?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Глеб Умаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/apple-proposes-gpu-api-for-web</guid>
      <description><![CDATA[<p>Команда WebKit предложила W3C создать общественную группу для нового веб-интерфейса, который свяжет браузеры с Direct3D 12, Metal и Vulkan.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/apple-proposes-gpu-api-for-web">Apple разработала прототип API для работы с 3D-графикой в Сети</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Feb 2017 18:55:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>Apple <a href="https://webkit.org/blog/7380/next-generation-3d-graphics-on-the-web/">предлагает</a> сообществу разработчиков начать совместную разработку стандартного API, который позволил бы браузерам пользоваться всеми возможностями графических процессоров для обработки трехмерной графики.</p><p>Данный вопрос подняла команда разработчиков Apple, которая работала над движком <a href="https://ru.wikipedia.org/wiki/WebKit">WebKit</a>. На собрании <a href="https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%81%D0%BE%D1%80%D1%86%D0%B8%D1%83%D0%BC_%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B9_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D1%8B">W3C</a> они предложили создать общественную группу, которая будет работать над созданием интерфейса между браузерами и современной 3D-графикой. Высокая производительность при работе с нативными платформами будет являться основной целью группы.</p><p>В предложении по созданию общественной группы говорится:</p><blockquote>Наша цель — это разработка нового API, который предоставит современные технологии в высокопроизводительном, мощном и безопасном виде. Он должен работать с уже существующими платформами, такими как Direct3D 12 от Microsoft, Metal от Apple и Vulkan от Khronos Group.</blockquote><p>Разработчики браузерных движков, изготовители графических процессоров и любые другие люди, заинтересованные в развитии 3D-графики, приглашаются к вступлению в данную общественную группу.</p><p>Google и Microsoft пока не сообщили, будут ли они участвовать в работе над этим проектом. Mozilla же заявила, что предложение Apple может оказаться полезным в плане разработки, но сейчас слишком рано говорить об этом что-либо еще.</p><p>Текущий стандарт для рендеринга графики в Сети — это WebGL. Однако с момента создания WebGL технологии GPU и программное обеспечение заметно улучшились. Такие современные API, как <a href="https://en.wikipedia.org/wiki/Direct3D">Direct3D</a>, <a href="https://en.wikipedia.org/wiki/Metal_(API)">Metal</a> и <a href="https://en.wikipedia.org/wiki/Vulkan_(API)">Vulkan</a>, предлагают куда лучшую производительность, чем WebGL. Большим минусом является то, что они не доступны для всех платформ, и именно это должна исправить будущая кроссплатформенная технология.</p>]]></content:encoded>
    </item>
    <item>
      <title>Баг, который нельзя было исправить</title>
      <link>https://tproger.ru/translations/unfixable-bug</link>
      <comments>https://tproger.ru/translations/unfixable-bug?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Мингалеев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/unfixable-bug</guid>
      <description><![CDATA[<p>Красный куб не появлялся на карте гонок, а отладчик к фрагментному шейдеру не применить — история поиска ошибки в графическом программировании.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/unfixable-bug">Баг, который нельзя было исправить</a>»</p>]]></description>
      <category><![CDATA[Отладка]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 24 Nov 2016 14:27:33 GMT</pubDate>
      <content:encoded><![CDATA[<p>Во время обучения в университете свое свободное время я тратил на создание своей игры — гонок. Я создал карту, нарисовал текстуры, создал водную поверхность с отражениями и преломлениями.</p><p>Следующим шагом было добавление машины. Здесь начались проблемы. Перед созданием красивой модели я решил начать с малого — с куба. Простой красный куб был создан и помещен на поверхность. Я запустил игру, но ничего не произошло. Куба не было. Чтобы куб было проще найти, я поместил его в центр карты, но его опять там не оказалось.</p><p>В программировании графики есть одна интересная вещь — обычно очень сложно найти источник ошибки. Нельзя применить отладчик к фрагментному шейдеру или посмотреть логи. Остается только изменять параметры, в надежде обнаружить ошибку.</p><p>После внимательного изучения своего кода я начал играться с параметрами. Сначала я поменял цвет куба с красного на белый и перезапустил игру. И знаете что? Маленький белый куб красовался на земле. Может быть я перепутал красный, зеленый и голубой каналы с альфа-каналом, задающим прозрачность? Я снова проверил, но ничего не нашел. Я поменял цвет на голубой, куб остался. Вернулся к красному. Куб исчез.</p><p>Это было странно. Почему не видно красный куб? Я проверил фрагментный шейдер. Я проверил режимы рендеринга. Я даже проверил настройки шаблона. Всё было хорошо. Но почему тогда мой куб не видно?</p><p>Я сделал его опять красным, и знаете что? Он появился! Я вернулся в самое начало, но теперь куб было видно! Ошеломленный, я отвел взгляд от монитора. Когда я посмотрел обратно, он опять исчез. Потом появился. Потом опять исчез. И тут меня осенило.</p><p>Куб был там все это время. Ошибка была не в программном или аппаратном обеспечении. И даже не в окружающем меня пространстве. Причина, по которой я не мог видеть красный куб на зеленом фоне, оказалась простой — я дальтоник, и путаю красный цвет с зеленым.</p>]]></content:encoded>
    </item>
    <item>
      <title>На GitHub выложили проект, генерирующий тайловые карты на основе одного фрагмента с применением идей квантовой механики</title>
      <link>https://tproger.ru/news/bitmap-tilemap-generation-algorithm</link>
      <comments>https://tproger.ru/news/bitmap-tilemap-generation-algorithm?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Пётр Соковых]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/bitmap-tilemap-generation-algorithm</guid>
      <description><![CDATA[<p>Алгоритм создаёт изображение произвольного размера по одному небольшому фрагменту, сохраняя сходство с исходником за счёт всего двух правил.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/bitmap-tilemap-generation-algorithm">На GitHub выложили проект, генерирующий тайловые карты на основе одного фрагмента с применением идей квантовой механики</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Компьютерная графика]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 01 Oct 2016 22:54:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вчера на GitHub появился <a href="https://github.com/mxgmn/WaveFunctionCollapse">проект</a>, генерирующий битовые (и тайловые) карты, который сразу <a href="https://www.reddit.com/r/programming/comments/557lrt/wave_function_collapse_algorithm_bitmap_tilemap/">привлёк</a> значительное внимание пользователей Reddit. Выглядит действительно круто, и мы решили разобраться, что же делает этот проект, и как он работает.</p><p>В качестве входных данных для алгоритма используется небольшая картинка, на основе которой создаётся похожее изображение произвольного размера. Самое главное, что привлекает внимание именно к этому проекту — то, насколько разнообразными могут быть итоговые изображения. Показать, что именно происходит, проще, чем рассказывать:</p><figure><img src="https://media.tproger.ru/uploads/2016/10/examples.png" alt="" /></figure><p>Сходство получаемых изображений с исходными гарантируется всего двумя правилами:</p><ul><li>Каждая область размером N*N пикселей в выходном файле должна хоть раз встречаться в исходном. N задаётся в параметрах генерации, в примерах выше обычно равняется трём.</li><li>Частота, с которой встречается каждая из таких областей в выходном файле, должна быть примерно равна частоте, с которой эта область встречается в исходном. Т. е., другими словами, чем чаще область встречается в образце, тем чаще она будет встречаться и в сгенерированном изображении.</li></ul><figure><img src="https://media.tproger.ru/uploads/2016/10/algo_illu.png" alt="" /></figure><p>Соблюдение этих условий достигается сложным алгоритмом, основанным на суперпозиции каждой части N*N выходного изображения, прочитать про который можно в <a href="https://github.com/mxgmn/WaveFunctionCollapse">Readme проекта</a> на Github. В целом алгоритм можно сравнить с разгадыванием судоку — поле делится на чанки размером N*N и каждый из них определяется в зависимости от своих соседей.</p><p>Алгоритм был вдохновлён квантовой механикой, однако по целому ряду причин (например — действительные коэффициенты, вместо комплексных) нельзя считать, что именно квантовые алгоритмы используются для генерации карт. В комментариях на Reddit даже нашёлся PhD (доктор наук) по физике, который <a href="https://www.reddit.com/r/programming/comments/557lrt/wave_function_collapse_algorithm_bitmap_tilemap/">предостерёг</a> читателей от изучения квантовой механики на основе этого проекта. С его точки зрения, этот алгоритм было бы правильнее называть <a href="https://ru.wikipedia.org/wiki/Байесовский_вывод">Байесовским выводом</a>, чем <a href="https://ru.wikipedia.org/wiki/Редукция_фон_Неймана">редукцией фон Неймана</a> (Wave function collapse), как указано в его названии.</p><p>На странице проекта так же выложена визуализация процесса генерации:</p><figure><img src="https://media.tproger.ru/uploads/2016/10/WaveFunctionCollapse.gif" alt="" /></figure><p>Алгоритм применим так же для создания изображений в высоком качестве и 3D моделей (однако отличается весьма низкой производительностю, при подобной работе):</p><figure><img src="https://media.tproger.ru/uploads/2016/10/3d_example.png" alt="" /></figure><p>Подробнее о проекте можно прочитать на <a href="https://github.com/mxgmn/WaveFunctionCollapse">его странице</a> на GitHub.</p>]]></content:encoded>
    </item>
  </channel>
</rss>