Skip to content

Latest commit

 

History

History

graph

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

var30

Задание No1

Целью работы является ознакомление с основами векторной графики и получение навыков работы с базовыми функциями графического API и трехмерными графическими примитивами. Требуется при помощи стандартных функций бибилиотеки (OpenGL/Vulkan или DirectX) изобразить указанные объекты и произвести необходимые преобразования.

Задание 30.

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

Задание No2

Целью работы является ознакомление с основными функциями API, описывающими свойства материалов объектов и позволяющими задавать параметры источника освещения. Требуется разработать программу, изображающую заданный набор из трех предметов с указанными свойствами материалов и параметры источника освещения. При этом в качестве базового набора объектов выступают 3D примитивы, указанные в вашем варианте задания No1. Следует наделить один из объектов свойствами прозрачности (значение параметра должно быть выше 0,5). Другой выбранный объект должен имитировать отполированную поверхность (shininess, значение указывается максимальным). В качестве такого объекта следует выбирать примитивы с выпуклыми поверхностями, например - цилиндр, тор, конус, сферу, чайник. Третий объект должен быть диффузно-рассеивающим, матовым. В сцене обязательно должен быть как минимум один источник освещения, с возможностью менять его параметры: местоположение, интенсивность, цвет освещения. Окончательный этап – текстурирование одного из объектов (матового). Возможно при этом также использовать микроискажение нормалей при помощи bump-mapping Пример задания: Например, было в вашем варианте первого задания:

  1. Изобразить каркасный куб и каркасную сферу, расположенные на некотором расстоянии друг от друга.
  2. Совместить одну вершину куба и центр сферы.
  3. Изобразить тор и цилиндр. Размеры и местоположение примитивов задать самостоятельно.
  4. Выполнить последовательно сначала поворот цилиндра вокруг оси Х, а затем растяжение тора в 2 раза. Соответственно, вариант второго задания может выглядеть так: Базовый набор был – куб, сфера, цилиндр, тор. Изображаем – полупрозрачную сферу, отполированный тор, текстурированный куб. Включаем источник света – например, точечный, белый. Показываем его перемещение и, например, изменение цвета освещения.

Задание No3

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

Курсовая

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

Описание общей части задания.

  1. В качестве источников-генераторов (еmitters) частиц выступают объекты различной конфигурации. Количество частиц в сцене варьируется от 100 до 1000. Координаты начальной позиции частицы рассчитываются при помощи случайного числа, переведенного на поверхность требуемой фигуры. Направление движения частицы определяется по нормали к поверхности фигуры, например:
Cylinder:
r*cos(a)
r*sin(a)
Sphere:
r*cos(a)*sin(b)
r*sin(a)*sin(b)
r*sin(b)
Cone:
r(h)*cos(a)
r(h)*sin(a)
  1. Каждая частица должна характеризоваться следующим набором свойств: координаты, скорость, размер, цвет (с возможным добавлением текстуры и/или прозрачности), время жизни, наличие/отсутствие следа от частицы. Свойства могут зависеть друг от друга (например, цвет частицы изменяется в зависимости от времени жизни). По окончании времени жизни частица исчезает и порождается новая частица. Тем самым система становится цикличной.
  2. Так как время системы дискретно, то определяются правила поведения частиц на каждом такте (dtime). Частицы должны изменять свое расположение по определеннымзаконам, одинаковым для всей системы. Новая позиция частицы рассчитывается по следующим правилам (в векторной форме):
Скорость = Скорость + Ускорение * dtime;
Позиция = Позиция + Скорость * dtime;

Возможно использование собственных идей для расчета новой позиции частицы. Поощряется красивая формула для расчета изменений. 4. За каждой из частиц остается след, который изображается при помощи повторения частицы (поощряются также другие способы изображения следа). След может иметь различную протяженность или отсутствовать. 5. Требуется осуществить моделирование физического взаимодействия частиц с объектами в сцене. Такие взаимодействия в задании предусмотрены трех типов. Столкновение: в качестве объектов, с которыми могут сталкиваться частицы (коллайдеров), выступают стандартные примитивы (цилиндр, сфера, куб, ограниченная плоскость). Столкновение моделируется как изменение направления движения частицы (например, на противоположное или на какое-либо единое для всех частиц) с сохранением или потерей/увеличением скорости. Притяжение: используются «магниты»-притягиватели (аттракторы) в форме стандартных примитивов (цилиндр, ограниченная плоскость, точка). При приближении к таким объектам частицы должны изменять скорость и направление движения (по нормали к объекту) в зависимости от расстояния до него. Когда расстояние до аттрактора становится меньше заданного, частица изменяет направление движения и притягивается к аттрактору по нормали с нарастающей скоростью. Отталкивание: используются «магниты»-отталкиватели (анти-аттракторы) также в форме стандартных примитивов (цилиндр, ограниченная плоскость, точка) Когда расстояние до анти-аттрактора становится меньше заданного, частица замедляется и затем плавно изменяет направление движения, отклоняясь от прежней траектории таким образом, чтобы удалиться от анти-аттрактора по нормали с нарастающей скоростью.

Задание 30.

  1. Эмиттер – точка, направление движения выбирается случайным образом.
  2. Обязательные параметры: присутствует ускорение, прозрачность изменяется в зависимости от скорости частицы. Остальные параметры устанавливаются и изменяются по вашему выбору.
  3. След: необязателен
  4. Анти-аттрактор: точка