Визуализация трехмерных объектов. Получение стереоскопических изображений. Удаление невидимых линий и поверхностей.
Трёхмерная графика — раздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), предназначенных для изображения объёмных объектов. Больше всего применяется для создания изображений на плоскости экрана или листа печатной продукции в архитектурной визуализации, кинематографе, телевидении, компьютерных играх, печатной продукции, а также в науке и промышленности.
Трёхмерное изображение на плоскости отличается от двумерного тем, что включает построение геометрической проекции трёхмерной модели сцены на плоскость (например, экран компьютера) с помощью специализированных программ. При этом модель может как соответствовать объектам из реального мира (автомобили, здания, ураган, астероид), так и быть полностью абстрактной.
Для получения трёхмерного изображения на плоскости требуются следующие шаги:
моделирование — создание трёхмерной математической модели сцены и объектов в ней.
рендеринг (визуализация) — построение проекции в соответствии с выбранной физической моделью.
Алгоритмы визуализации: принцип триангуляции: из точки взгляда пускаем пучок лучей, получаем параметры положения (трассировка). Триангуляция – разбить плоскость на плоские треугольники. Так же Существуют специальные «библиотеки», в которых все эти задачи уже решены (Open GL. DirectX)
Стереоскопическое изображение, изображение, создающее иллюзию объёмности, пространственности наблюдаемой картины. Два изображения стереопары, рассматриваемые раздельно правым и левым глазом, в сознании наблюдателя сливаются в единый зрительный образ. Чтобы такое слияние осуществилось, необходимо обеспечить проекцию на сетчатку каждого глаза предназначенного ему изображения. Примером устройства, используемого с этой целью, является стереоскоп.
Получение полностью объёмных изображений (воспринимаемых как Стереоскопическое изображение при произвольном положении и перемещении наблюдателя) стало возможным с развитием голографии.
СТЕРЕОИЗОБРАЖЕНИЕ-это картинка или видеоряд, использующих два отдельных изображения, позволяющих достичь стереоэффекта. Чтобы создать стереоизображение впрограмме трехмерного моделирования, надо сделать двойной рендеринг сцены- с двух камер, соответсвующ. Глазам наблюдателя.
Задача удаления невидимых линий и поверхностей является одной из наиболее сложных в машинной графике. Алгоритмы удаления невидимых линий и поверхностей служат для определения линий ребер, поверхностей или объемов, которые видимы или невидимы для наблюдателя, находящегося в заданной точке пространства.
Операторы Паскаля: Оператор присваивания, условный оператор, операторы циклов, оператор выбора.
Оператором называют специальную совокупность служебных слов, идентификаторов и специальных знаков выполняющих определенные действия. Операторы отделяются друг от друга точкой с запятой ";".
Оператор присваивания a := b;
Оператор присваивания - служит для присваивания значений переменным
Условные операторы - позволяют выбирать для выполнения те или иные части программы в зависимости от некоторых условий.
If <условие>
then <on1> [else <on2>] [] – необязательная часть условия.
Пример: если а<5 то выполняем then…. Но если a>5 выполняем else
Оператор цикла - применяется при выполнении расчетов или других действий, повторяющихся определенное количество раз. Цикл- это многократно повторяющаяся последовательность операторов. В Паскале имеется три типа циклов: repeat(оператор с пост.условием), while(цикл с предусловием) и for(счетный)
Счетный: for i: = <нач> to <конец> do <0
: for i: = 5 to 7 do (7-5)+1 - увеличение на 1, следовательно оператор выполнится 3 раза.
Цикл с предусловием while <условие> do оператор. – выполняется до тех пор, пока условие истинно. Например while 5>7 do оп – ни разу не выполнится, т.к. условие ложно.
Repeat
<операторы>
Until <условие>
Например:
Repeat
<операторы>
Until 5>7
– бесконечно, т.к. условие не выполнится никогда, оно ложное.
Оператор выбора - это условный оператор, в котором происходит выбор из большого числа вариантов.
Case <пер> of <зн1> oп1;
<зн.№>: <оп№>;
End;
Выполнится только один из операторов