1046 lines
69 KiB
TeX
1046 lines
69 KiB
TeX
\documentclass[a4paper, final]{article}
|
||
%\usepackage{literat} % Нормальные шрифты
|
||
\usepackage[14pt]{extsizes} % для того чтобы задать нестандартный 14-ый размер шрифта
|
||
\usepackage{tabularx}
|
||
\usepackage[T2A]{fontenc}
|
||
\usepackage[utf8]{inputenc}
|
||
\usepackage[russian]{babel}
|
||
\usepackage{amsmath}
|
||
\usepackage[left=25mm, top=20mm, right=20mm, bottom=20mm, footskip=10mm]{geometry}
|
||
\usepackage{ragged2e} %для растягивания по ширине
|
||
\usepackage{setspace} %для межстрочно го интервала
|
||
\usepackage{moreverb} %для работы с листингами
|
||
\usepackage{indentfirst} % для абзацного отступа
|
||
\usepackage{moreverb} %для печати в листинге исходного кода программ
|
||
\usepackage{pdfpages} %для вставки других pdf файлов
|
||
\usepackage{tikz}
|
||
\usepackage{graphicx}
|
||
\usepackage{afterpage}
|
||
\usepackage{longtable}
|
||
\usepackage{float}
|
||
|
||
\usepackage{graphicx}
|
||
\usepackage{subcaption}
|
||
|
||
% \usepackage[paper=A4,DIV=12]{typearea}
|
||
\usepackage{pdflscape}
|
||
% \usepackage{lscape}
|
||
|
||
\usepackage{array}
|
||
\usepackage{multirow}
|
||
|
||
\renewcommand\verbatimtabsize{4\relax}
|
||
\renewcommand\listingoffset{0.2em} %отступ от номеров строк в листинге
|
||
\renewcommand{\arraystretch}{1.4} % изменяю высоту строки в таблице
|
||
\usepackage[font=small, singlelinecheck=false, justification=centering, format=plain, labelsep=period]{caption} %для настройки заголовка таблицы
|
||
\usepackage{listings} %листинги
|
||
\usepackage{xcolor} % цвета
|
||
\usepackage{hyperref}% для гиперссылок
|
||
\usepackage{enumitem} %для перечислений
|
||
|
||
\newcommand{\specialcell}[2][l]{\begin{tabular}[#1]{@{}l@{}}#2\end{tabular}}
|
||
|
||
|
||
\setlist[enumerate,itemize]{leftmargin=1.2cm} %отступ в перечислениях
|
||
|
||
\hypersetup{colorlinks,
|
||
allcolors=[RGB]{010 090 200}} %красивые гиперссылки (не красные)
|
||
|
||
% подгружаемые языки — подробнее в документации listings (это всё для листингов)
|
||
\lstloadlanguages{ SQL}
|
||
% включаем кириллицу и добавляем кое−какие опции
|
||
\lstset{tabsize=2,
|
||
breaklines,
|
||
basicstyle=\footnotesize,
|
||
columns=fullflexible,
|
||
flexiblecolumns,
|
||
numbers=left,
|
||
numberstyle={\footnotesize},
|
||
keywordstyle=\color{blue},
|
||
inputencoding=cp1251,
|
||
extendedchars=true
|
||
}
|
||
\lstdefinelanguage{MyC}{
|
||
language=SQL,
|
||
% ndkeywordstyle=\color{darkgray}\bfseries,
|
||
% identifierstyle=\color{black},
|
||
% morecomment=[n]{/**}{*/},
|
||
% commentstyle=\color{blue}\ttfamily,
|
||
% stringstyle=\color{red}\ttfamily,
|
||
% morestring=[b]",
|
||
% showstringspaces=false,
|
||
% morecomment=[l][\color{gray}]{//},
|
||
keepspaces=true,
|
||
escapechar=\%,
|
||
texcl=true
|
||
}
|
||
|
||
\textheight=24cm % высота текста
|
||
\textwidth=16cm % ширина текста
|
||
\oddsidemargin=0pt % отступ от левого края
|
||
\topmargin=-1.5cm % отступ от верхнего края
|
||
\parindent=24pt % абзацный отступ
|
||
\parskip=5pt % интервал между абзацами
|
||
\tolerance=2000 % терпимость к "жидким" строкам
|
||
\flushbottom % выравнивание высоты страниц
|
||
|
||
|
||
% Настройка листингов
|
||
\lstset{
|
||
language=C++,
|
||
extendedchars=\true,
|
||
inputencoding=utf8,
|
||
keepspaces=true,
|
||
% captionpos=b, % подписи листингов снизу
|
||
}
|
||
|
||
\begin{document} % начало документа
|
||
|
||
|
||
|
||
% НАЧАЛО ТИТУЛЬНОГО ЛИСТА
|
||
\begin{center}
|
||
\hfill \break
|
||
\hfill \break
|
||
\normalsize{МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ\\
|
||
федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский политехнический университет Петра Великого»\\[10pt]}
|
||
\normalsize{Институт компьютерных наук и кибербезопасности}\\[10pt]
|
||
\normalsize{Высшая школа технологий искусственного интеллекта}\\[10pt]
|
||
\normalsize{Направление: 02.03.01 <<Математика и компьютерные науки>>}\\
|
||
|
||
\hfill \break
|
||
\hfill \break
|
||
\hfill \break
|
||
\hfill \break
|
||
\large{Лабораторная работа №1}\\
|
||
\large{<<Изучение технологии создания реалистического объекта в среде Blender 3D>>}\\
|
||
\large{по дисциплине}\\
|
||
\large{<<Комьютерная графика>>}\\
|
||
% \hfill \break
|
||
|
||
% \hfill \break
|
||
\hfill \break
|
||
\end{center}
|
||
|
||
\small{
|
||
\begin{tabular}{lrrl}
|
||
\!\!\!Студент, & \hspace{2cm} & & \\
|
||
\!\!\!группы 5130201/20102 & \hspace{2cm} & \underline{\hspace{3cm}} &Тищенко А. А. \\\\
|
||
\!\!\!Преподаватель & \hspace{2cm} & \underline{\hspace{3cm}} & Курочкин М. А. \\\\
|
||
&&\hspace{4cm}
|
||
\end{tabular}
|
||
\begin{flushright}
|
||
<<\underline{\hspace{1cm}}>>\underline{\hspace{2.5cm}} 2025г.
|
||
\end{flushright}
|
||
}
|
||
|
||
\hfill \break
|
||
% \hfill \break
|
||
\begin{center} \small{Санкт-Петербург, 2025} \end{center}
|
||
\thispagestyle{empty} % выключаем отображение номера для этой страницы
|
||
|
||
% КОНЕЦ ТИТУЛЬНОГО ЛИСТА
|
||
\newpage
|
||
|
||
\tableofcontents
|
||
|
||
|
||
\newpage
|
||
|
||
\section*{Введение}
|
||
|
||
\addcontentsline{toc}{section}{Введение}
|
||
|
||
3D-моделирование — это процесс создания трёхмерной модели объекта.
|
||
|
||
В современном мире 3D-моделирование играет важную роль. Трёхмерная компьютерная графика позволяет создавать максимально реалистичные модели объекта. Сегодня 3D-моделирование используется в проектировании зданий, в ландшафтном дизайне, дизайне интерьеров, а также в компьютерных играх и программах, в
|
||
промышленности и медицине, а также во многих других сферах. Примером использования компьютерной графики является реставрация янтарной комнаты.
|
||
|
||
Одной из задач 3D-моделирования является построение реалистических моделей
|
||
объектов реального мира.
|
||
|
||
Реалистичность модели определяется следующими параметрами:
|
||
\begin{enumerate}
|
||
\item Соответствие формы объекта реальной форме.
|
||
\item Соответствие материала объекта особенностям объекта: цвет, текстура, шероховатость, отражаемость и другие.
|
||
\end{enumerate}
|
||
|
||
Программные пакеты, позволяющие моделировать объекты виртуальной реальности и создавать на основе этих моделей изображения, очень разнообразны, и различаются по функционалу, сложности, аппаратным требованиям, цене и так далее.
|
||
|
||
В данной работе будет рассматриваться программный пакет Blender 4.3.
|
||
|
||
|
||
\newpage
|
||
|
||
\section {Постановка задачи}
|
||
В данной работе необходимо:
|
||
\begin{enumerate}
|
||
\item Ознакомиться с возможностями пакета Blender, которые позволяют создавать реалистическую модель;
|
||
\item Выбрать три объекта реального мира и построить их визуализации в пакете Blender с учётом уникальных особенностей моделируемого объекта;
|
||
\item Отразить характерные особенности объекта, такие как:
|
||
\begin{itemize}
|
||
\item Геометрическая форма
|
||
\item Текстура и материал
|
||
\item Цвет
|
||
\item Освещение
|
||
\end{itemize}
|
||
\item Предоставить пошаговое руководство пользователя по получению результата.
|
||
\end{enumerate}
|
||
|
||
|
||
\newpage
|
||
\section{Описание функциональных возможностей пакета Blender}
|
||
|
||
Blender — это мощный и универсальный пакет для 3D-моделирования, анимации, рендеринга, скульптинга, композитинга и видео-монтажа. Он является бесплатным и с открытым исходным кодом, что делает его доступным для профессионалов и любителей.
|
||
|
||
Blender используется в различных областях:
|
||
\begin{itemize}
|
||
\item 3D-моделирование — создание и редактирование трехмерных объектов.
|
||
\item Анимация — разработка движущихся персонажей, эффектов и сцен.
|
||
\item Рендеринг — визуализация изображений с использованием движков Cycles и Eevee.
|
||
\item Скульптинг — цифровая лепка сложных форм.
|
||
\item Текстурирование и UV-развертка — нанесение текстур на 3D-объекты.
|
||
\item Физическая симуляция — моделирование воды, дыма, огня, тканей и т. д.
|
||
\item Композитинг и постобработка — редактирование изображений и видео.
|
||
\item Монтаж видео — встроенный видеоредактор для базового монтажа.
|
||
\item Программирование (Python API) — создание аддонов и автоматизация процессов.
|
||
\end{itemize}
|
||
|
||
\subsection{Возможности программы}
|
||
|
||
\subsubsection{3D-моделирование}
|
||
Blender предлагает широкий набор инструментов для моделирования:
|
||
\begin{itemize}
|
||
\item Полигональное моделирование — редактирование вершин, рёбер и граней.
|
||
\item NURBS и кривые — моделирование с использованием кривых Безье.
|
||
\item Метаболлы — создание органических форм.
|
||
\item Booleans (булевы операции) — вычитание, объединение и пересечение объектов.
|
||
\item Модификаторы — неразрушающее изменение геометрии (Subdivision Surface, Mirror, Array и др.).
|
||
\item Ретопология — оптимизация сетки для анимации и рендеринга.
|
||
\end{itemize}
|
||
|
||
\subsubsection{Цифровой скульптинг}
|
||
Blender позволяет создавать детализированные модели с высокой точностью:
|
||
\begin{itemize}
|
||
\item Dyntopo (динамическая топология) — адаптивное деление сетки.
|
||
\item Remesh — улучшение геометрии для дальнейшей работы.
|
||
\item Маскировка — изоляция областей при скульптинге.
|
||
\item Мультиразрешение — детализация сетки без потери формы.
|
||
\item Кисти (Brushes) — набор инструментов для лепки (Clay, Inflate, Grab и др.).
|
||
\end{itemize}
|
||
|
||
\subsubsection{Анимация и риггинг}
|
||
Blender имеет мощные инструменты для анимации:
|
||
\begin{itemize}
|
||
\item Keyframe Animation — покадровая анимация с интерполяцией.
|
||
\item Armature (Кости) — создание скелетов для персонажей.
|
||
\item Inverse Kinematics (IK) — автоматическое вычисление движения конечностей.
|
||
\item Shape Keys (Формы ключей) — создание мимики и морфинга объектов.
|
||
\item Graph Editor — контроль кривых анимации.
|
||
\item Grease Pencil — 2D-анимация в 3D-пространстве.
|
||
\end{itemize}
|
||
|
||
\subsubsection{Рендеринг}
|
||
Blender поддерживает несколько рендер-движков:
|
||
\begin{itemize}
|
||
\item Cycles — физически точный рендерер с трассировкой лучей (поддерживает GPU/CPU).
|
||
\item Eevee — рендеринг в реальном времени с использованием растеризации.
|
||
\item Workbench — быстрый рендер для предпросмотра моделей.
|
||
\item Freestyle — стилизованный рендер (например, для комиксов).
|
||
\end{itemize}
|
||
|
||
\subsubsection{Текстурирование и UV-развертка}
|
||
Blender предоставляет мощные инструменты для работы с текстурами:
|
||
\begin{itemize}
|
||
\item UV Mapping — развертка модели для наложения текстур.
|
||
\item Texture Painting — рисование текстур прямо на модели.
|
||
\item Shader Editor — создание сложных материалов с помощью узлов (nodes).
|
||
\item Procedural Textures — генерация текстур на основе алгоритмов.
|
||
\end{itemize}
|
||
|
||
\subsubsection{Физическая симуляция}
|
||
Blender позволяет имитировать физические явления:
|
||
\begin{itemize}
|
||
\item Cloth Simulation — симуляция тканей.
|
||
\item Fluid \& Smoke Simulation — симуляция воды, дыма, огня.
|
||
\item Soft Body — деформации мягких тел.
|
||
\item Rigid Body — симуляция твердых тел.
|
||
\item Particles — система частиц (пыль, искры, снег и т. д.).
|
||
\end{itemize}
|
||
|
||
\subsubsection{Композитинг и постобработка}
|
||
Blender включает узловую систему композитинга:
|
||
\begin{itemize}
|
||
\item Color Correction — корректировка цветов и уровней.
|
||
\item Blur \& Glare Effects — эффекты размытия и свечения.
|
||
\item Depth of Field (DOF) — имитация фокусировки камеры.
|
||
\item Green Screen (Chroma Key) — работа с хромакеем.
|
||
\end{itemize}
|
||
|
||
\subsubsection{Видеомонтаж (VSE - Video Sequence Editor)}
|
||
Blender также может использоваться как видеоредактор:
|
||
\begin{itemize}
|
||
\item Обрезка и склейка клипов.
|
||
\item Добавление эффектов и переходов.
|
||
\item Работа с аудиодорожками.
|
||
\end{itemize}
|
||
|
||
\subsubsection{Программирование и автоматизация (Python API)}
|
||
Blender позволяет создавать скрипты и аддоны:
|
||
\begin{itemize}
|
||
\item Автоматизация рутинных задач.
|
||
\item Создание новых инструментов.
|
||
\item Редактирование сцен и объектов через код.
|
||
\end{itemize}
|
||
|
||
|
||
\newpage
|
||
\section{Описание объектов моделирования}
|
||
|
||
\subsection{Объект моделирования №1}
|
||
|
||
Объектом №1 является покерная фишка (Рис.~\ref{fig:chip/real/front}-\ref{fig:chip/real/side-view-right}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/real/front.jpg}
|
||
\caption{Объект моделирования №1, вид с лицевой стороны.}
|
||
\label{fig:chip/real/front}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/real/back.jpg}
|
||
\caption{Объект моделирования №1, вид с обратной стороны.}
|
||
\label{fig:chip/real/back}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/real/side-view-left.jpg}
|
||
\caption{Объект моделирования №1, вид на лицевую сторону под углом слева.}
|
||
\label{fig:chip/real/side-view-left}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/real/side-view-right.jpg}
|
||
\caption{Объект моделирования №1, вид на лицевую сторону под углом справа.}
|
||
\label{fig:chip/real/side-view-right}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\textbf{Форма:} Покерная фишка представляет собой круглую плоскую дисковидную форму. На поверхности фишки есть небольшое колцевидное углубление.
|
||
|
||
\textbf{Материал:} Фишка изготовлена из пластика и покрыта белой краской. Номинал и узоры нанесены синей краской. Поверхность ближе к матовой.
|
||
|
||
\textbf{Особенности:} На фишке видны множественные дефекты покраски - отдельные точки и пятна синей краски, в особенности на лицевой стороне.
|
||
|
||
\newpage
|
||
\subsection{Объект моделирования №2}
|
||
Объектом №2 является зажим от пакета с хлебом (Рис.~\ref{fig:clamp/real/front}-\ref{fig:clamp/real/writing}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/clamp/real/front.jpg}
|
||
\caption{Объект моделирования №2, вид с лицевой стороны.}
|
||
\label{fig:clamp/real/front}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/clamp/real/back.jpg}
|
||
\caption{Объект моделирования №2, вид с обратной стороны.}
|
||
\label{fig:clamp/real/back}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.35\linewidth]{img/clamp/real/top.jpg}
|
||
\caption{Объект моделирования №2, вид сверху.}
|
||
\label{fig:clamp/real/top}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/clamp/real/writing.jpg}
|
||
\caption{Объект моделирования №2, развёртка для демонстрации надписи.}
|
||
\label{fig:clamp/real/writing}
|
||
\end{figure}
|
||
|
||
\textbf{Форма:} Зажим от пакета имеет форму деформированной плоскости с двумя цилиндрическими ободками сверху и снизу.
|
||
|
||
\textbf{Материал:} Зажим изготовлен из пластика и покрыта красной краской. Внутри ободков находятся кусочки проволоки, за счёт которых зажим запоминает приданную ему форму. Надпись со сроком годности нанесена белой краской.
|
||
|
||
\textbf{Особенности:} Объект имеет уникальную форму, которая была придана ему вручную специально для этой лабораторной работы. Также уникальной особенностью является надпись на объекте. В ней содержится срок годности и номер бригады -- <<09.03.25.2 - 2>>.
|
||
|
||
|
||
\newpage
|
||
\subsection{Объект моделирования №3}
|
||
Объектом №3 является сломанная линейка (Рис.~\ref{fig:ruler/real/front}-\ref{fig:ruler/real/back-side}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.2\linewidth]{img/ruler/real/front.jpg}
|
||
\caption{Объект моделирования №3, вид с лицевой стороны.}
|
||
\label{fig:ruler/real/front}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.2\linewidth]{img/ruler/real/back.jpg}
|
||
\caption{Объект моделирования №3, вид с обратной стороны.}
|
||
\label{fig:ruler/real/back}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.6\linewidth]{img/ruler/real/side.jpg}
|
||
\caption{Объект моделирования №3, вид сбоку на лицевую сторону.}
|
||
\label{fig:ruler/real/side}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/ruler/real/back-side.jpg}
|
||
\caption{Объект моделирования №3, вид сбоку на обратную сторону.}
|
||
\label{fig:ruler/real/back-side}
|
||
\end{figure}
|
||
|
||
\textbf{Форма:} Линейка имеет форму удлинённой плоской пластины с прямыми параллельными краями. Торец, на котором нанесены измерительные деления, скошен.
|
||
|
||
\textbf{Материал:} Линейка изготовлена из пластика и покрыта чёрной краской. Измерительные деления и отметки нанесены белой краской.
|
||
|
||
\textbf{Особенности:} Линейка имеет уникальный излом. Также она слегка погнута по всей длине. Видны следы продолжительной эксплуатации -- в некоторых местах стёрта краска, а в некоторых видны царапины.
|
||
|
||
|
||
\newpage
|
||
\section{Описание технологии разработки моделей}
|
||
|
||
\subsection{Объект моделирования №1}
|
||
\subsubsection{Реальные размеры изделия}
|
||
|
||
Диаметр - 40 мм
|
||
|
||
Высота - 2 мм
|
||
|
||
Ложбинка - 0.4 мм
|
||
|
||
\subsubsection{Моделирование}
|
||
|
||
Нажимаем на цифру 7 на Num Pad, чтобы перейти на вид сверху. Затем нажимаем Shift + A и в разделе Image выбираем Reference. В открывшемся окне проводника выбираем изображение лицевой стороны покерной фишки и нажимаем Add~Image~(Рис.~\ref{fig:chip/modeling/1-add-reference}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/modeling/1-add-reference.png}
|
||
\caption{Добавление изображения фишки.}
|
||
\label{fig:chip/modeling/1-add-reference}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Нажимаем Shift + A и в разделе Mesh выбираем Cylinder (Рис.~\ref{fig:chip/modeling/2-add-cylinder}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/modeling/2-add-cylinder.png}
|
||
\caption{Добавление цилиндра.}
|
||
\label{fig:chip/modeling/2-add-cylinder}
|
||
\end{figure}
|
||
|
||
Нажимаем Alt + Z, чтобы перейти в режим прозрачности и видеть изображение фишки сквозь цилиндр.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/modeling/3-alt-z.png}
|
||
\caption{Режим прозрачности.}
|
||
\label{fig:chip/modeling/3-alt-z}
|
||
\end{figure}
|
||
|
||
Выбираем изображение, а затем с помощью масштабирования (клавиша S) и смещения (клавиша G) выравниваем центр цилиндра с центром фишки на изображении. Перемещаем курсор с зажатой клавишей Shift для более точного позиционирования. Результат на Рис.~\ref{fig:chip/modeling/4-positioning}.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/modeling/4-positioning.png}
|
||
\caption{Результат подгонки изображения под размер цилиндра.}
|
||
\label{fig:chip/modeling/4-positioning}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Нажимаем на цилиндр и переходим в режим редактирования (клавиша Tab). В режиме выбора граней (клавиша 3) и с зажатой клавишей Shift выбираем верхнюю и нижнюю грани цилиндра (Рис.~\ref{fig:chip/modeling/5-select-faces}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/modeling/5-select-faces.png}
|
||
\caption{Выбор верхней и нижней граней цилиндра.}
|
||
\label{fig:chip/modeling/5-select-faces}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Возвращаемся на вид сверху (клавиша 7 на Num Pad). Нажимаем клавишу I, чтобы добавить внтреннюю грань. Выравниваем её по внешней стороне ложбинки на фишке, ориентируясь на изображения. При этом перемещаем курсор с зажатой клавишей Shift для более точного позиционирования.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/modeling/6-insert-faces.png}
|
||
\caption{Добавление новых рёбер на верхней и нижней гранях цилиндра.}
|
||
\label{fig:chip/modeling/6-insert-faces}
|
||
\end{figure}
|
||
|
||
Снова нажимаем на клавишу I. Новую грань выравниваем по внутренней стороне ложбинки на фишке (Рис.~\ref{fig:img/chip/modeling/7-insert-inner-faces}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/modeling/7-insert-inner-faces.png}
|
||
\caption{Добавление новых рёбер на верхней и нижней гранях цилиндра.}
|
||
\label{fig:img/chip/modeling/7-insert-inner-faces}
|
||
\end{figure}
|
||
|
||
Изображение больше не понадобится и его можно скрыть. Возвращаемся в объектный режим (клавиша Tab), нажимаем на изображение, а затем нажимаем на клавишу H.
|
||
|
||
Нажимаем на цилиндр, а затем нажимаем на клавишу N, чтобы открыть боковое меню с размерами модели. В разделе Dimensions указываем реальные размеры изделия. В поле X и Y указываем значения 40mm, в поле Z указываем 2mm. Затем нажимаем точку на Num Pad, чтобы приблизиться к модели (Рис.~\ref{fig:chip/modeling/8-sizing}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/chip/modeling/8-sizing.png}
|
||
\caption{Указание размеров фишки.}
|
||
\label{fig:chip/modeling/8-sizing}
|
||
\end{figure}
|
||
|
||
Нажимаем сочетание клавиш Ctrl + A и в появившемся меню выбираем вариант Scale (Рис.~\ref{fig:chip/modeling/9-scale}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.7\linewidth]{img/chip/modeling/9-scale.png}
|
||
\caption{Применение функции Scale к модели.}
|
||
\label{fig:chip/modeling/9-scale}
|
||
\end{figure}
|
||
|
||
Переходим в режим редактирования (клавиша Tab). С зажатой клавишей Alt нажимаем на грань внутри ложбинки, чтобы выделить все грани ложбинки. Нажимаем на клавишу 1 на Num Pad, чтобы переключиться на вид сбоку. Затем нажимаем на клавишу E, чтобы создать углубление. В боковом меню (клавиша N) в разделе Median в поле Z указываем значение 0.6mm. Затем нажимаем сочетание клавиш Ctrl + 7 на Num Pad, чтобы переключиться на вид снизу. Аналогичным образом выделяем грани ложбинки, переключаемся на вид сбоку и создаём углубление. В боковом меню в разделе Median в поле Z указываем значение -0.6mm (Рис.~\ref{fig:chip/modeling/10-trench}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/chip/modeling/10-trench.png}
|
||
\caption{Добавление ложбинки.}
|
||
\label{fig:chip/modeling/10-trench}
|
||
\end{figure}
|
||
|
||
На этом этапе можно отключить режим прозрачности (Alt + z). Переходим в объектный режим (клавиша Tab) и в разделе Modifiers добавляем модификатор Subdivision Surface из раздела Generate. В параметрах Levels Viewport и Render указываем значение 3. Нажимаем на цилиндр правой кнопкой мыши и выбираем пункт Shade Smooth (Рис.~\ref{fig:chip/modeling/11-shade-smooth}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/chip/modeling/11-shade-smooth.png}
|
||
\caption{Сглаживание модели.}
|
||
\label{fig:chip/modeling/11-shade-smooth}
|
||
\end{figure}
|
||
|
||
На данном этапе углы модели выглядят слишком скруглёнными. Переходим в режим редактирования (клавиша Tab). Нажимаем сочетание клавиш Ctrl + R и создаём новые грани, почти в плотную к граням, на которых происходит перепад высот. Создаём такие же грани в ложбинке. В режиме выбора поверхностей (клавиша 3) нажимаем на центральную часть фишки и нажимаем на клавишу I, чтобы создать новую грань в центральной части фишки. Затем переключаемся на вид снизу (Ctrl + 7 на Num Pad) и проделываем те же операции (Рис.~\ref{fig:chip/modeling/12-new-edges}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/chip/modeling/12-new-edges.png}
|
||
\caption{Добавление новых рёбер для уточнения модели.}
|
||
\label{fig:chip/modeling/12-new-edges}
|
||
\end{figure}
|
||
|
||
Теперь добавим подложку, на которой разместим текстуру стола. В боковом меню (клавиша N) в разделе Location в поле Z указываем значение 1mm, чтобы приподнять модель. Затем нажимаем Shift + A и в разделе Mesh выбираем Plane (Рис.~\ref{fig:chip/modeling/13-plane}). Затем нажимаем H, чтобы временно скрыть добавленную поверхность.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/chip/modeling/13-plane.png}
|
||
\caption{Добавление плоскости.}
|
||
\label{fig:chip/modeling/13-plane}
|
||
\end{figure}
|
||
|
||
\subsubsection{Текстурирование}
|
||
|
||
Переходим в раздел UV Editing в верхнем меню программы. В правом окне переключаемся в объектный режим (клавиша Tab), нажимаем на модель и нажимаем на точку на Num Pad, чтобы приблизиться к ней (Рис.~\ref{fig:chip/texturing/1-start}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/texturing/1-start.png}
|
||
\caption{Раздел UV Editing.}
|
||
\label{fig:chip/texturing/1-start}
|
||
\end{figure}
|
||
|
||
В разделе Render Properties в поле Render Engine выбираем EEVEE, ставим галочку на разделе Raytracing и в его подразделе Fast GI Approximation в поле Threshold указыем значение 1. После чего нажимаем сочетание клавиш Z + 2, чтобы переключиться в режим предпросмотра материалов.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.7\linewidth]{img/chip/texturing/2-settings.png}
|
||
\caption{Настройка движка EEVEE для корректного отображения текстур.}
|
||
\label{fig:chip/texturing/2-settings}
|
||
\end{figure}
|
||
|
||
Открываем раздел Material Properties и добавляем новый материал, нажимая на кнопку New. В поле Base Color указываем значение \#9FAAB1FF. Затем нажимаем на + и снова на New, чтобы добавить ещё один материал. В разделе Base Color нажимаем на жёлтый кружок и выбираем пункт Image Texture (Рис.~\ref{fig:chip/texturing/3-image-texture}). В открывшемся окне проводника выбираем изображение фишки сверху. Изображение фишки снизу добавляем аналогичным образом.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.7\linewidth]{img/chip/texturing/3-image-texture.png}
|
||
\caption{Добавление изображения текстуры.}
|
||
\label{fig:chip/texturing/3-image-texture}
|
||
\end{figure}
|
||
|
||
Переходим в режим редактирования (клавиша Tab). Переходим на вид сверху (клавиш 7 на Num Pad). В режиме выбора поверхностей (клавиша 3), выделяем все видимые поверхности. В разделе с материалами выбираем материал с изображением фишки сверху и нажимаем на кнопку Assign (Рис.~\ref{fig:chip/texturing/4-assigning}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/chip/texturing/4-assigning.png}
|
||
\caption{Применение материалов с текстурой к выбранным граням.}
|
||
\label{fig:chip/texturing/4-assigning}
|
||
\end{figure}
|
||
|
||
На панели слева распологаем проекцию поверхностей на текстуре таким образом, чтобы форма поверхности совпадала с изображением. Аналогичным образом накладываем материал с текстурой обратной стороны фишки (Рис.~\ref{fig:chip/texturing/5-uv-editing}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/texturing/5-uv-editing.png}
|
||
\caption{Подгонка изображения текстуры.}
|
||
\label{fig:chip/texturing/5-uv-editing}
|
||
\end{figure}
|
||
|
||
Теперь можно вернуть поверхность, добавленную на этапе моделирования (Alt~+~H). В разделе Material Properties добавляем новый материал и в поле Base Color указываем текстуру стола. С помощью клавишы S в левом окне можно подогнать размеры текстуры (Рис.~\ref{fig:chip/texturing/6-table}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/texturing/6-table.png}
|
||
\caption{Добавление текстуры стола.}
|
||
\label{fig:chip/texturing/6-table}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsubsection{Освещение и камера}
|
||
|
||
Переходим в раздел Shading в верхнем меню программы. Нажимаем на модель и нажимаем на точку на Num Pad, чтобы приблизиться к ней. После чего используем сочетание клавиш Z + 8, чтобы перейти в режим предпросмотра результата.
|
||
|
||
Затем на панели редактирования материалов нужно переключиться на вкладку World. Нажать сочетание клавиш Shift + A и в разделе Texture выбрать Image Texture. Выход Color узла Image Texture необходимо подключить ко входу Color узла Background. В Image Texture указывается путь до HDRI текстуры окружения, которая поставляется вместе с Blender -- \texttt{C:\textbackslash Program Files\textbackslash Blender Foundation\textbackslash Blender 4.3\textbackslash 4.3\textbackslash datafiles\textbackslash studiolights\textbackslash world\textbackslash }. В параметре Strength узла Background указываем значение 0.200 (Рис.~\ref{fig:chip/lighting/1_start}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/lighting/1_start.png}
|
||
\caption{Настройка общего освещения сцены.}
|
||
\label{fig:chip/lighting/1_start}
|
||
\end{figure}
|
||
|
||
Переключаемся на вид сбоку (клавиша 1 на Num Pad), нажимаем Shift + A и в разделе Light выбираем Point. С помощью клавиши G располагаем источник света слева сверху над моделью. Для этого в боковом меню (клавиша N) в разделе Location в поле X указываем -0.3m, в поле Z указываем 0.2m. В разделе Object Data Properties в поле Power устанавливаем значение 4.5W. Затем дублируем источник света с помощью сочетания клавиш Shift + D и располагаем с противоположной стороны. Источнику света слева задаём синеватый оттенок (\#C5FBFF) в поле Color раздела Object Data Properties (Рис.~\ref{fig:chip/lighting/2_points}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/lighting/2_points.png}
|
||
\caption{Расположение дополнительных источников освещения.}
|
||
\label{fig:chip/lighting/2_points}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Теперь добавим камеру. Для этого нажимаем сочетание клавиш Shift + A и выбираем пункт Camera. Теперь располагаем её ровно над моделью, чтобы получить изображение вида сверху. В боковом меню (клавиша N) в разделе Location в Z указываем значение 0.15m, а в разделе Rotation в поле X укажем значение 0. В разделе Object Data Properties в подразделе Lens в поле Focal Length указываем значение 110mm. Нажимаем 0 на Num Pad, чтобы переключиться на вид с камеры (Рис.~\ref{fig:chip/lighting/3_camera}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/chip/lighting/3_camera.png}
|
||
\caption{Расположение камеры.}
|
||
\label{fig:chip/lighting/3_camera}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsubsection{Рендеринг финальных изображений}
|
||
|
||
Для настройки рендеринга открываем Render Properties. В поле Render Engine выбираем значение Cycles. В разделе Sampling/Render в поле Max Samples указываем значение 128, чтобы ускорить рендеринг (Рис.~\ref{fig:chip/render/1_settings}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.33\linewidth]{img/chip/render/1_settings.png}
|
||
\caption{Настройки рендеринга.}
|
||
\label{fig:chip/render/1_settings}
|
||
\end{figure}
|
||
|
||
Нажимаем клавишу F12 и ожидаем некоторое время до окончания процесса рендеринга.
|
||
|
||
Результаты представлены на Рис.~\ref{fig:compare-front}--\ref{fig:compare-side}.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/chip/render/front.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/chip/real/front.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид с лицевой стороны.}
|
||
\label{fig:compare-front}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/chip/render/back.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/chip/real/back.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид с обратной стороны.}
|
||
\label{fig:compare-back}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/chip/render/side-view.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/chip/real/side-view-right.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид сбоку справа.}
|
||
\label{fig:compare-side}
|
||
\end{figure}
|
||
|
||
|
||
\newpage
|
||
\phantom{text}
|
||
\newpage
|
||
\subsection{Объект моделирования №2}
|
||
\subsubsection{Реальные размеры изделия}
|
||
|
||
Ширина - 21 мм
|
||
|
||
Высота - 7 мм
|
||
|
||
Диаметр ободков - 1 мм
|
||
|
||
Толщина пластика между ободками - 0.3 мм
|
||
|
||
\subsubsection{Моделирование}
|
||
|
||
Нажимаем на цифру 7 на Num Pad, чтобы перейти на вид сверху. Затем нажимаем Shift + A и в разделе Image выбираем Reference. В открывшемся окне проводника выбираем изображение зажима и нажимаем Add~Image~(Рис.~\ref{fig:clamp/modeling/1-add-reference}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/1-add-reference.png}
|
||
\caption{Добавление изображения зажима.}
|
||
\label{fig:clamp/modeling/1-add-reference}
|
||
\end{figure}
|
||
|
||
Нажимаем Shift + A и в разделе Mesh выбираем Plane (Рис.~\ref{fig:clamp/modeling/2-add-plane}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/2-add-plane.png}
|
||
\caption{Добавление плоскости.}
|
||
\label{fig:clamp/modeling/2-add-plane}
|
||
\end{figure}
|
||
|
||
Переходим в режим редактирования (клавиша Tab) и в режиме выбора вершин (клавиша 1) с зажатой клавишей Shift выбираем три любых вершины добавленной плоскости. Нажимаем на клавишу X и в появившемся меню выбираем пункт Vertex, чтобы удалить эти вершины. Выделяем оставшуюся вершину и с помощью клавишы G переносим её в крайнюю точку ободка зажима. Затем нажимаем клавишу E, чтобы добавить новую точку. Таким образом делаем окантовку для всего зажима (Рис.~\ref{fig:clamp/modeling/3-border}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/3-border.png}
|
||
\caption{Создание окантовки.}
|
||
\label{fig:clamp/modeling/3-border}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Переходим в объектный режим. Выделяем изображение и скрываем (клавиша H), оно больше не понадобится. Теперь выделяем полученную линию окантовки и в боковом меню (клавиша N) в разделе Dimensions в поле X указываем реальную ширину объекта -- 21mm. После чего значение поля X из раздела Scale копируем в поле Y того же раздела, чтобы сохранить пропорции при масштабировании (Рис.~\ref{fig:clamp/modeling/4-sizes}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/4-sizes.png}
|
||
\caption{Задание реальных размеров.}
|
||
\label{fig:clamp/modeling/4-sizes}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Переключаемся на вид сбоку (клавиша 1 на Num Pad), затем копируем окантовку (сочетание клавиш Shift + D) и поднимаем немного выше. Затем нажимаем по новому объекту правой кнопкой мыши и в разделе Convert To выбираем пункт Curve.
|
||
|
||
Нажимаем сочетание клавиш Shift + A и в разделе Mesh выбираем пункт Circle. Затем в боковом меню (клавиша N) в разделе Dimensions в полях X и Y указываем диаметр ободков -- 1mm. Нажимаем на добавленный круг правой кнопкой мыши и в разделе Convert To выбираем пункт Curve (Рис.~\ref{fig:clamp/modeling/5-circle}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/5-circle.png}
|
||
\caption{Конвертация круга из меша в кривую.}
|
||
\label{fig:clamp/modeling/5-circle}
|
||
\end{figure}
|
||
|
||
Выбираем добавленный круг и нажимаем сочетание клавиш Ctrl + A и в появившемся списке выбираем пункт Scale. Затем выбираем скопированную окантовку, открваем раздел Object Data Properties и в подразделе Geometry/Bevel выбираем вариант Object. Нажимаем на иконку пипетки и выбираем круг и нажимаем на галочку у поля Fill Caps (Рис.~\ref{fig:clamp/modeling/6-bevel}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.85\linewidth]{img/clamp/modeling/6-bevel.png}
|
||
\caption{Создание ободка.}
|
||
\label{fig:clamp/modeling/6-bevel}
|
||
\end{figure}
|
||
|
||
Полученный ободок и круг пока можно скрыть (клавиша H). В объектном режиме выбираем исходную окантовку зажима и переходим в режим редактирования (клавиша Tab). Выбираем все вершины (клавиша A) и расширяем окантовку вверх (сочетание клавиш E + Z). Возвращаемся в объектный режим (клавиша Tab). В боковом меню (клавиша N) в разделе Dimensions в поле Z указываем высоту чуть меньше реальной высоты объекта -- 6.5mm. В разделе Location в поле Z указываем значение 0.5mm. Нажимаем сочетание клавиш Ctrl + A и выбираем пункт Scale (Рис.~\ref{fig:clamp/modeling/7-sides}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.85\linewidth]{img/clamp/modeling/7-sides.png}
|
||
\caption{Создание боковых сторон зажима.}
|
||
\label{fig:clamp/modeling/7-sides}
|
||
\end{figure}
|
||
|
||
Продолжаем работать с ободком. В разделе Modifier Properties нажимаем на кнопку Add Modifier и добавляем модификатор Subdivision Surface из раздела Generate. В поле Level указываем значение 2. Затем добавляем ещё один модификатор из раздела Generate -- Solidify. В поле Mode выбираем значение Complex. В поле Thickness указываем половину от толщины пластика -- 0.15mm. В поле Offset указываем значение 0. Затем нажимаем сочетание клавиш Ctrl + A, чтобы применить модификатор Solidify (Рис.~\ref{fig:clamp/modeling/8-modifiers}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/clamp/modeling/8-modifiers.png}
|
||
\caption{Придание толщины зажиму.}
|
||
\label{fig:clamp/modeling/8-modifiers}
|
||
\end{figure}
|
||
|
||
Переходим в режим редактирования (клавиша Tab). Нажимаем сочетание Ctrl + R, чтобы добавить новые грани и убрать излишнее сглаживание по краям объекта. Возвращаемся в объектный режим (клавиша Tab). Нажимаем на объект правой кнопкой мыши и выбираем пункт Shade Smooth (Рис.~\ref{fig:clamp/modeling/9-new-edges}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/clamp/modeling/9-new-edges.png}
|
||
\caption{Добавление новых граней.}
|
||
\label{fig:clamp/modeling/9-new-edges}
|
||
\end{figure}
|
||
|
||
Возвращаем скрытый ободок (Alt + H). В Modifier Properties добавляем модификатор Subdivision Surface из раздела Generate. В поле Levels указываем значение 2. Нажимаем на ободок правой кнопкой мыши и выбираем пункт Shade Smooth. В боковом меню (клавиша N) в разделе Location в поле Z указываем значение 0.5mm (Рис.~\ref{fig:clamp/modeling/10-bottom}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/10-bottom.png}
|
||
\caption{Установка и сглаживание нижнего ободка.}
|
||
\label{fig:clamp/modeling/10-bottom}
|
||
\end{figure}
|
||
|
||
Переходим в режим редактирования (клавиша Tab). Выделяем крайние точки на ободке и чуть-чуть сдвигаем (клавиша G) с зажатой клавишей Shift, чтобы грани ободка и основной части зажима не накладывались друг на друга (Рис.~\ref{fig:clamp/modeling/11-faces}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/modeling/11-faces.png}
|
||
\caption{Устранение артефактов на стыке граней.}
|
||
\label{fig:clamp/modeling/11-faces}
|
||
\end{figure}
|
||
|
||
Возвращаемся в объектный режим (клавиша Tab). Копируем нижний ободок с помощью сочетания клавиш Alt + D. В боковом меню (клавиша N) в разделе Locataion в поле Z указываем значение 7mm (Рис.~\ref{fig:clamp/modeling/12-copy}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/clamp/modeling/12-copy.png}
|
||
\caption{Установка верхнего ободка.}
|
||
\label{fig:clamp/modeling/12-copy}
|
||
\end{figure}
|
||
|
||
Теперь добавим подложку, на которой разместим текстуру стола. Нажимаем Shift + A и в разделе Mesh выбираем Plane (Рис.~\ref{fig:clamp/modeling/13-plane}). Затем нажимаем H, чтобы временно скрыть добавленную поверхность.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.8\linewidth]{img/clamp/modeling/13-plane.png}
|
||
\caption{Добавление плоскости.}
|
||
\label{fig:clamp/modeling/13-plane}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsubsection{Текстурирование}
|
||
|
||
Переходим в раздел UV Editing в верхнем меню программы. В правом окне переключаемся в объектный режим (клавиша Tab), нажимаем на модель и нажимаем на точку на Num Pad, чтобы приблизиться к ней (Рис.~\ref{fig:clamp/texturing/1-start}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/texturing/1-start.png}
|
||
\caption{Раздел UV Editing.}
|
||
\label{fig:clamp/texturing/1-start}
|
||
\end{figure}
|
||
|
||
В разделе Render Properties в поле Render Engine выбираем EEVEE, ставим галочку на разделе Raytracing и в его подразделе Fast GI Approximation в поле Threshold указыем значение 1. После чего нажимаем сочетание клавиш Z + 2, чтобы переключиться в режим предпросмотра материалов (Рис.~\ref{fig:clamp/texturing/2-settings}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.7\linewidth]{img/clamp/texturing/2-settings.png}
|
||
\caption{Настройка движка EEVEE для корректного отображения текстур.}
|
||
\label{fig:clamp/texturing/2-settings}
|
||
\end{figure}
|
||
|
||
Выбираем нижний ободок и открываем раздел Material Properties. Нажимаем на кнопку New, чтобы добавить новый материал. В поле Base Color указываем значение \#A61625 (Рис.~\ref{fig:clamp/texturing/3-color}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.8\linewidth]{img/clamp/texturing/3-color.png}
|
||
\caption{Покраска ободков.}
|
||
\label{fig:clamp/texturing/3-color}
|
||
\end{figure}
|
||
|
||
Переходим в раздел Shading. Выбираем основную часть зажима и добавляем новый материал для него. Для этого нажимаем на кнопку New на панели ниже. Затем нажимаем сочетание клавиш Shift + A и в разделе Color выбираем Hue/Saturation/Value. В поле Color добавленного узла указываем значение \#A61625. Снова нажимаем Shift + A и в разделе Texture выбираем Image Texture, в которой указываем путь до текстуры с надписью (Рис.~\ref{fig:clamp/real/writing-no-bg}), в поле Extension указываем значение Clip, чтобы изображение с надписью не повторялось. Добавляем ещё один узел из раздела Color -- Mix Color. Соединяем узлы как показано на Рис.~\ref{fig:clamp/texturing/4-nodes}.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.9\linewidth]{img/clamp/texturing/4-nodes.png}
|
||
\caption{Графовое представление материала основной части зажима.}
|
||
\label{fig:clamp/texturing/4-nodes}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.5\linewidth]{img/clamp/real/writing-no-bg.png}
|
||
\caption{Текстура надписи на объекте моделирования.}
|
||
\label{fig:clamp/real/writing-no-bg}
|
||
\end{figure}
|
||
|
||
Возвращаемся на вкладку UV Editing. Переключаемся в режим выбора граней (клавиша 3) и выделяем все грани, на которых будет расположена надпись. Нажимаем клавишу U и в разделе Unwrap выбираем пункт Angle Based, чтобы создать развёртку этих граней. Теперь в левом окне подгоняем развёртку под изображение, используя клавишы G, S и R (Рис.~\ref{fig:clamp/texturing/5-uv}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/texturing/5-uv.png}
|
||
\caption{Корректировка UV развёртки текстуры с надписью.}
|
||
\label{fig:clamp/texturing/5-uv}
|
||
\end{figure}
|
||
|
||
Теперь можно вернуть поверхность, добавленную на этапе моделирования (Alt~+~H). В разделе Material Properties добавляем новый материал и в поле Base Color указываем текстуру стола. С помощью клавишы S в левом окне можно подогнать размеры текстуры (Рис.~\ref{fig:clamp/texturing/6-table}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/texturing/6-table.png}
|
||
\caption{Добавление текстуры стола.}
|
||
\label{fig:clamp/texturing/6-table}
|
||
\end{figure}
|
||
|
||
|
||
\newpage
|
||
\subsubsection{Освещение и камера}
|
||
|
||
Переходим в раздел Shading в верхнем меню программы. После чего используем сочетание клавиш Z + 8, чтобы перейти в режим предпросмотра результата.
|
||
|
||
Затем на панели редактирования материалов нужно переключиться на вкладку World. Нажать сочетание клавиш Shift + A и в разделе Texture выбрать Image Texture. Выход Color узла Image Texture необходимо подключить ко входу Color узла Background. В Image Texture указывается путь до HDRI текстуры окружения, которая поставляется вместе с Blender -- \texttt{C:\textbackslash Program Files\textbackslash Blender Foundation\textbackslash Blender 4.3\textbackslash 4.3\textbackslash datafiles\textbackslash studiolights\textbackslash world\textbackslash interior.exr} (Рис.~\ref{fig:clamp/lighting/1-start}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/lighting/1-start.png}
|
||
\caption{Настройка общего освещения сцены.}
|
||
\label{fig:clamp/lighting/1-start}
|
||
\end{figure}
|
||
|
||
Нажимаем Shift + A и в разделе Light выбираем Point. В боковом меню (клавиша N) в разделе Location в поле X указываем 0.01m, в поле Y указываем -0.4m, в поле Z указываем 0.5m. В разделе Object Data Properties в поле Power устанавливаем значение 4.5W. Нажимаем на точку на Num Pad, чтобы перейти к источнику света, и переключаемся на вид сверху (клавиша 7 на Num Pad). Затем дублируем источник света дважды с помощью сочетания клавиш Shift + D. Копии располагаем рядом с исходным источником для имитации лампочек в люстре, именно такое освещения было в момент создания фотографий. Источникам света задаём цвет \#CCDEFF в поле Color раздела Object Data Properties (Рис.~\ref{fig:clamp/lighting/2-points}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/lighting/2-points.png}
|
||
\caption{Расположение дополнительных источников освещения.}
|
||
\label{fig:clamp/lighting/2-points}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
Теперь добавим камеру. Для этого нажимаем сочетание клавиш Shift + A и выбираем пункт Camera. Теперь располагаем перед моделью, чтобы получить вида сбоку как на фотографии. В боковом меню (клавиша N) в разделе Location в поле X указываем 0.062m, в поле Y указываем -0.09m, в поле Z указываем 0.066m, а в разделе Rotation в поле X укажем значение 60, в поле Z -- 34. В разделе Object Data Properties в подразделе Lens в поле Focal Length указываем значение 140mm. Нажимаем 0 на Num Pad, чтобы переключиться на вид с камеры (Рис.~\ref{fig:clamp/lighting/3-camera}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=1\linewidth]{img/clamp/lighting/3-camera.png}
|
||
\caption{Расположение камеры.}
|
||
\label{fig:clamp/lighting/3-camera}
|
||
\end{figure}
|
||
|
||
\newpage
|
||
\subsubsection{Рендеринг финальных изображений}
|
||
|
||
Для настройки рендеринга открываем Render Properties. В поле Render Engine выбираем значение Cycles. В разделе Sampling/Render в поле Max Samples указываем значение 128, чтобы ускорить рендеринг (Рис.~\ref{fig:chip/render/1_settings}).
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\includegraphics[width=0.33\linewidth]{img/chip/render/1_settings.png}
|
||
\caption{Настройки рендеринга.}
|
||
\label{fig:chip/render/1_settings}
|
||
\end{figure}
|
||
|
||
Нажимаем клавишу F12 и ожидаем некоторое время до окончания процесса рендеринга.
|
||
|
||
Результаты представлены на Рис.~\ref{fig:clamp-compare-front}--\ref{fig:clamp-compare-top}.
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.46\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/render/front.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/real/front.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид с лицевой стороны.}
|
||
\label{fig:clamp-compare-front}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.425\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/render/other-side.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/real/other-side.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид сбоку справа.}
|
||
\label{fig:clamp-compare-back}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.47\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/render/side.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.40\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/real/side.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид сбоку слева.}
|
||
\label{fig:clamp-compare-side}
|
||
\end{figure}
|
||
|
||
\begin{figure}[h!]
|
||
\centering
|
||
\begin{subfigure}{0.54\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/render/top.png}
|
||
\caption{Модель объекта.}
|
||
\end{subfigure}
|
||
\hfill
|
||
\begin{subfigure}{0.35\linewidth}
|
||
\centering
|
||
\includegraphics[width=\linewidth]{img/clamp/real/top.jpg}
|
||
\caption{Объект моделирования.}
|
||
\end{subfigure}
|
||
\caption{Сравнение модели объекта и объекта моделирования. Вид сверху.}
|
||
\label{fig:clamp-compare-top}
|
||
\end{figure}
|
||
|
||
|
||
\newpage
|
||
\section*{Заключение}
|
||
\addcontentsline{toc}{section}{Заключение}
|
||
|
||
|
||
\newpage
|
||
\section*{Список литературы}
|
||
\addcontentsline{toc}{section}{Список литературы}
|
||
|
||
\vspace{-1.5cm}
|
||
\begin{thebibliography}{0}
|
||
|
||
\end{thebibliography}
|
||
|
||
\end{document} |