Чем paint отличается от paint 3d

Обновлено: 07.07.2024

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

Paint 3D: создание нового изображения

Прежде чем начать работу с Paint 3D, убедитесь, что у вас установлена эта программа. Если вы используете Windows 10, Paint 3D встроен в вашу систему по умолчанию. Если это не так, вы можете бесплатно загрузить Paint 3D из магазина приложений Microsoft по этой ссылке.

Запустите Paint 3D и нажмите на кнопку «Создать», чтобы создать новое изображение. Меню в Paint 3D

В Paint 3D имеется главное меню, элементы которого вы можете использовать для редактирования изображения. В крайнем правом углу вы найдете графические инструменты, где вы можете выбрать различные кисти и другие инструменты и рисовать ими. С помощью кнопки «2D» у вас есть возможность создавать двумерные фигуры, например, квадрат. Справа находится кнопка «3D», которая вам понадобится, если вы захотите добавить к вашему изображению различные 3D-модели (людей, животных и др.) и фигуры (сферу, куб и др.). Вы также можете создавать 3D-эскизы с мягкими и острыми краями и задавать различные свойства поверхности объекта (матовая поверхность, блеск и тому подобное). Рядом с кнопкой «3D» вы можете найти кнопку «Наклейка». Наклейки можно легко разместить на трехмерном объекте. Например, вы можете создать глобус из сферы и изображения с картой мира. Подробнее об этом будет рассказано ниже.

Рядом вы найдете кнопку «Текст», которую вы можете использовать, чтобы добавить текст к своему изображению.

Кнопка «Эффекты» позволяет применять различные фильтры или изменять уровень освещения вашего изображения.

Кнопка «Область рисования» используется реже, чем остальные. Например, с ее помощью вы можете изменить размер области рисования или выбрать прозрачный фон.

Помимо прочих, есть еще кнопка «Remix 3D», где вы найдете различные 3D-модели, которые были загружены пользователями. В левой части страницы вы найдете кнопку меню, с помощью которой вы можете сохранить или экспортировать свой проект. Как правильно настроить Paint 3D Поскольку в Paint 3D в основном создаются трехмерные изображения, вам нужно подружиться со специальным управлением этой программой.

Как и в случае с обычным редактором Paint, вы можете масштабировать изображение с помощью колеса мыши. А если вы нажмете на кнопку в правом верхнем углу, вы сможете перемещать и крутить трехмерное изображение с помощью правой кнопки мыши. При нажатии на колесико мыши изображение можно перемещать.

Paint 3D: создание первого проекта

Для того чтобы вам было понятнее, как работать в Paint 3D, предлагаем вам создать первый проект вместе с нами шаг за шагом. Сначала добавьте сферу с помощью кнопки «3D». При создании сферы удерживайте клавишу Shift, чтобы сделать ее ровной, а не эллипсоидной.

Затем загрузите изображение Земли из Интернета и перетащите его в Paint 3D. После этого нажмите на кнопку «Создать 3D» справа.

Теперь нажмите «Создать наклейку».

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

Активируйте прозрачную область рисования с помощью кнопки «Область символов».

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

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

Отображение и скрытие отдельных окон с инструментами может быстро осуществляться с помощью горячих клавиш Fx. Их полный список можно посмотреть в меню Window. Вы можете включить отображение направляющей сетки, а также боковых линеек, как в текстовых процессорах. Во время масштабирования рабочего окна приложения, меняется масштаб открытого документа. Помимо его плавного изменения, можно приводить размер изображения к границам текущего окна, а также включать реальный масштаб документа.

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

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

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

Для удаления царапин с фотографии можно использовать инструмент клонирования текстур Clone Stamp. Удерживая клавишу Ctrl, вы извлекаете исходную текстуру, после чего рисуете ей на поврежденном месте. Алгоритм работает не очень аккуратно, что не позволяет использовать штамп для деликатных целей, например, для удаления родинок на коже.

Базовая корректировка фотографии доступна из меню Adjustment. Первое, что необходимо отметить сразу – автоматический режим, который вызывается также с помощью сочетания Ctrl+Alt+L. Кроме того, вы можете быстро переводить фото в черно-белый режим, а также тонировать в цвета сепия.

Создание текстовых надписей происходит в текущем слое. При вызове инструмента Text можно всегда вернуться к старым надписям. Допускается сглаживание текста. Выбор цвета букв удобно осуществлять с помощью палитры, входящей в состав окна Colors. Графический редактор содержит большую библиотеку текстур, которыми могут закрашиваться буквы.

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

Графический редактор не содержит каких-либо инструментов пакетной обработки файлов. Для подобных целей лучше использовать либо менеджер изображений, либо другой, более мощный графический редактор. В меню Tool можно найти интересный инструмент Choose Defaults, позволяющий указывать настройки по-умолчанию для всех инструментов графического редактора.

Microsoft plans to launch a new Paint app called Paint 3D with the Windows 10 Creative Update in early 2017.

It is unclear yet if Microsoft plans to replace the win32 version of Paint that was part of all recent and not so recent versions of Windows with the application version Paint 3D, or if both will remain available at least for some time.

Update: Microsoft launched Paint3D alongside classic Paint in the Windows 10 Creators Update.

As a user of Windows 10, and Paint in particular, you are probably wondering how Paint 3D compares to the classic Paint desktop application.

Notes: Paint 3D is available as a preview version currently. While it seems likely that the version resembles the final product in functionality and interface, there is a chance that things are changed before release. Features may be pulled, interface elements moved, or new features introduced.

I'm not a designer and not the target audience. I have used Paint in the past, but only to paste a screenshot from the Clipboard and to save it afterwards. That's why I will concentrate my observations on interface and differences in functionality mostly.

Microsoft Paint vs Paint 3D Comparison

paint vs paint 3d

The first thing that you may notice is that the new Paint 3D opens slower than the classic Paint program. This may not matter much if you use the program for a prolonged period of time regularly, but it may matter if you use it for quick tasks like the aforementioned saving of a screenshot.

Paint 3D displays a "getting started" page on Start with no apparent option to disable it. While it goes away when you paste an image into the application or drag a picture in the interface, it delays the start further if you want to start with a blank canvas.

It is possible that the page is only there during the preview period and that it will be removed or get an option to be turned off when Paint 3D is released fully.

The second thing that you may notice is that Paint 3D uses a tabbed interface at the top. While classic Paint used tabs as well, all but view related tools were accessible on a single toolbar.

This is no longer the case in Paint 3D as it divides tools on six different tabs. The following tabs are provided from left to right:

  • Tools: Lists different drawing tools, e.g. pencil, eraser and fill.
  • 3D Tools: Tools that power the new 3D functionality. Create 3D models, or add them to your images.
  • Stickers: Add stickers to your images.
  • Text: All text related functions, e.g. adding text, changing fonts and so on are available here.
  • Backdrop: Change the backdrop size and other backdrop related options.
  • Effects: Apply filters to the image.

Paint 3D offers more functionality than the classic Paint. The 3D functionality is probably the most visible new feature but you find a couple more. You can use Paint 3D to upload images or join a community. The latter did not work for me as it is available only to users from the United States, Canada, Australia or New Zealand currently.

The new app is optimized for touch input; all buttons, sliders and toggles are big and easy to tap on.

As far as missing features are concerned, there are a couple. There does not seem to be a scanner option anymore, and the option to set an image as the desktop background is missing as well.

Format support is identical, but Paint 3D does not support different save presets for Bitmap images anymore.

You can try the Paint 3D Preview if you are on the latest Windows Insider Fast Ring build.

Closing Words

It will be interesting to see if the Windows 10 community welcomes Paint 3D. It is not a bad program, and the new functionality makes it interesting to a whole new audience. Then again, this is not the classic Paint that you got in and out in less than five seconds saving a screenshot in the process.

Now You: Paint or Paint 3D, which one do you favor and why?


Всю сознательную программистскую деятельность я увлекался созданием игр и не любил делать редакторы и прочие утилиты. Главным моим редактором почти всегда был Paint. Но для игр, в которых уровень статичен и состоит из тайлов (Марио подобные и прочие танчики), это более-менее оправдано, т.к. одному пикселю из файла уровня, созданного в Paint, соответствует тайл в игре. А что если требуется создать игру, где нет тайлов, а игровая локация состоит из неровных скалистых пещер. Или игру, в которой много движущихся элементов (летающие платформы, лифты, циркулярные пилы, вращающиеся по окружности).

Создавать редактор для таких целей мне по-прежнему не хотелось. О том, как я это решил с помощью Paint опишу в этой статье.

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

Неровная карта

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


Извиняюсь за качество видео, снимали на телефон

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

Уровень из видео показан слева (увеличено в 4 раза):

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

  • Слой объектов, с которыми игрок взаимодействует: земля, эмиттеры и ежики, а также стартовая позиция и выход. Ориентация эмиттеров (могут стрелять в одном из четырех направлений) не задается, она вычисляется при загрузке, исходя из соседних «земельных» пикселей
  • Слой воды (это аркада, поэтому закон сообщающихся сосудов здесь не действует)
  • Слой с бекграундом


Если это сейчас просто так взять и отрендерить (потайлово), то локация будет состоять из гигантских квадратов. Да и количество таких тайлов достаточно велико (61х69 для этой карты). Поэтому был применён другой способ рендеринга (нетайловый), при котором можно отобразить карту за один вызов (на самом деле за три: отдельно воду, бекграунд и финальная склейка). Это благодаря тому, что весь уровень помещается в одну единственную текстуру, назовём её tex_level. И натягивается она на полноэкранный квад (полигон, размером с экран). Перед этим выставляются текстурные координаты в зависимости от виртуальной камеры, которая привязана к персонажу.

Слева – примерно так выглядит текстура tex_level и охват виртуальной камеры. Справа – назначенные текстурные координаты для полноэкранного квада, т. о. на экран попадает кусочек текстуры tex_level.

Вначале текстуру tex_level надо подготовить. Для этого заведём массив под пиксели этой текстуры:

где w – ширина файла с уровнем, h – высота, деленная на 3 (т.к. три слоя).

Теперь в цикле считываем каждый пиксель исходной карты из каждого слоя и в зависимости от цвета (он же и тип тайла) заполняем соответствующие цветовые каналы в пикселе pix, а именно:


Техническая особенность: на самом деле w и h равны ближайшей в сторону увеличения степени двойки для ширины и высоты карты, недостающие пиксели замащиваются красным цветом (земля), а этот цикл можно считать псевдокодом.


Видно, что один и тот же пиксель в массиве может содержать землю, воду и бекграунд. На основе массива pix создается текстура tex_level, сам массив pix нам ещё пригодится.

Слева готовая текстура tex_level, а справа она же, но в игре. Камера в стартовой позиции.

Чтобы было удобнее продвигаться дальше, будем выводить только R канал из tex_level, т.е. только землю.


Для начала нужно избавиться от этих гигантских квадратов. Для этого массив pix перед тем, как его передать в текстуру tex_level следует размыть по Гауссу (радиус размытия подбирался опытным путем). Теперь всё та же локация выглядит уже куда лучше:

Слева земля до размытия, справа после.
Техническая деталь: перед размытием надо растянуть в 2 раза массив pix так, чтобы исходный пиксель занимал бы уже 2х2 пикселя в растянутом массиве.

Но граница земли здесь очень размыта. Для понимания процесса превращения размытой границы в четкую (назовём этот процесс фильтр четкой границы) рассмотрим одномерный случай, т.к. он аналогичный. Тогда размытая граница земли будет выглядеть примерно так:



Вычтем из этого графика 0.5, домножим на какое-нибудь большое число (в данном проекте это 50) и обрежем (операция clamp) по границе [0; 1], т.е. всё, что меньше 0 превращается в 0, а всё, что больше 1 превращается в 1:

В итоге белый цвет не мгновенно переходит в черный (это важно).

Теперь проделаем все эти операции с нашей текстурой tex_level. Пусть в level_color хранится выборка из этой текстуры, тогда фильтр выглядит так: clamp((level_color.r – 0.5) * 50.0, 0.0, 1.0)



Гораздо лучше, а если внимательно присмотреться, то можно увидеть, что на границе раздела двух сред отсутствует алиасинг. Но такая граница слишком гладкая и плавная, давайте же добавим к ней немного шума. Для этого была сгенерирована текстура с шумом Перлина (параметры шума подбирались опытным путем), назовём её noise. Текстурные координаты для выборки из текстуры шума больше во много раз, чем текстурные координаты для tex_level. Это означает, что пока мы в игре видим лишь кусочек текстуры tex_level, шумовая текстура повторяется несколько раз в пределах экрана. Теперь просто сложим выборки из текстуры шума и из tex_level и только потом применим фильтр четкой границы:


В левой части tex_level + noise, в правой части фильтр четкой границы.

Техническая деталь: диапазон значений в текстуре noise от 0 до 1, поэтому к выборке из tex_level следует прибавлять (noise — 0.5) * k, где k – коэффициент возмущения границы (в проекте он равен 0.3).

Теперь осталось просто наложить текстуры. Текстура земли уже есть (это просто обычная текстура), а вот воды еще нет, нужно её сперва подготовить.

Алгоритм абсолютно такой же, как и с землей, только вместо выборки из R канала следует делать выборку из B канала, т.к. именно там и содержится вода. Еще одно отличие – это вместо обычного шума применяется анимированный шум (плавно меняющийся во времени) для создания волн на границе воды и воздуха. Создание анимированного шума выходит за рамки данной статьи. В этом этапе применяем текстуру неба, а роль воды выполняет синий цвет (подбирался опытным путем). Все шаги этапа получения слоя с водой проиллюстрированы ниже:


Слева направо: размытая граница воды, анимированный шум плюс фильтр, интерполяция из синего цвета в текстуру неба.

Следующий этап – это рендеринг бекгруанда. На этот раз выборку из tex_level производим из G канала. В этом этапе ничего принципиально нового нет: получаем маску бекграунда и интерполируем текстуру камней (это в данном случае) и текстуру воды из предыдущего этапа. Конечно, есть свои тонкости: на подводную часть бекграунда накладываются дополнительные фильтры, то же самое и для самой воды для придания эффекта толщи воды, но это выходит за рамки статьи. В этом же этапе рендерятся декоративные элементы: рыбки и водоросли. Окончательно слой с бекграундом выглядит так:


Технические подробности: для придания эффекта «шевелящихся водорослей» из-за подводных течений использовалось смещение x-компоненты текстурных координат при рендеринге спрайта с водорослями. Величина этого смещения считывалась всё из той же текстуры с анимированным шумом.

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


Развитие идеи. Что если требуется накладывать несколько текстур на землю, тогда просто добавляем ещё один слой, в котором пиксели земли раскрашиваем в 4 разных цвета (можно меньше, но не больше). Из этого слоя создается отдельная текстура-маска (4 цвета в слое – 4 цветовых канала в маске), но тогда придется делать дополнительные пять текстурных выборок вместо одной (одна из маски и 4 из соответствующих текстур земли).

Определение коллизий

Если в тайловых играх коллизии определяются достаточно просто: делаем выборку из массива тайлов и проверяем, попал/не попал в непроходимый тайл. То здесь это будет слишком грубо, т.к. теперь визуально нет тайлов, а есть поверхности под разными углами. Кстати, маска земли в сишном коде недоступна (она является всего лишь одним из этапов вычисления на видеокарте). Но у нас есть массив pix, размытый по Гауссу. В элементах этого массива интересен только младший байт, т.к. именно там хранится земля. Визуально этот массив выглядит так (приведён лишь фрагмент массива, попадающий в камеру, на самом деле в массиве содержится вся карта):


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

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


Динамичная карта

Итак, первая проблема, поставленная в начале статьи, решена: никаких тайлов не видно, одни неровные скалистые пейзажи. А как быть с движущимися элементами? Это покажет вторая игра – аналог super meat boy:

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


Процесс рендеринга полностью аналогичен первой игре, поэтому ограничимся рассмотрением формата карты. Карта из видео выглядит так (увеличено в 5 раз):

Данная карта состоит из шести (!) слоёв (всего в игре есть пять разных типов слоёв, все они здесь представлены). В отличие от предыдущей игры количество слоёв здесь может быть любым. В левом верхнем углу есть набор пикселей (их ровно столько, сколько и слоёв). Они-то как раз и задают тип слоя (это позволяет не заботиться о порядке и количестве слоёв). Первые два слоя очевидны: слой объектов – взаимодействующие элементы с игроком (земля, шипы, пилы, старт, выход, рассыпающиеся тайлы) и слой бекграунда. Четвёртый слой тоже, как и первый, является слоем объектов (4-й пиксель в левом верхнем углу тоже черный). Пришлось вынести некоторые объекты в этот слой, потому что они пересекались с другими объектами (теоретически одинаковых слоёв может быть сколько угодно).

Техническая особенность: в текстуру tex_level помещается только замля и бекграунд (воды в этой игре нет), а все остальные объекты считываются из файла уровня в массив.

  • Перемещающаяся группа. Все тайлы этой группы синхронно перемещаются (зеленый цвет). Группа содержит один главный тайл (сине-зеленый цвет), для которого в другом слое назначается траектория и скорость. В этой карте одна большая группа, в которую входит земля (становится что-то вроде тележки) с шипом и пилой. И четыре одинарных – только одна пила перемещается в каждой из них.
  • Вращающаяся группа (серый цвет)

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

Развитие идеи. Теоретически с помощью Paint можно создать карту для 3D-шутера, файл карты будет состоять из матрицы слоёв. Строка этой матрицы соответствует высоте слоя в игре, а в столбцах содержатся слои одного типа. Например, в 1-м столбце будет геометрия карты (один слой – это срез карты на данной высоте), во 2-м столбце можно назначать текстуры с помощью ключевых цветов пеинта, в 3-м расставлять объекты и т.д.

Читайте также: