Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Програмування в Pascal. Моделювання 3D-об'єктів

Реферат Програмування в Pascal. Моделювання 3D-об'єктів





ають з поля зору виключити їх з процесу відтворення, заощадивши при цьому ресурси системи. Один з найшвидших способів перевірки заснований на визначенні напрямку нормалі до грані. p align="justify"> Нормаль - це пряма, ортогональна (перпендикулярна) дотичній прямої до деякої кривої або дотичної площини до деякої поверхні (рис. 3). Велике значення при побудові об'єктів має не сама нормаль, а її вектор. br/>В 

Малюнок 3


Вектором нормалі до поверхні в даній точці є вектор, прикладений до даної точки і паралельний напрямку нормалі. Для кожної точки гладкій поверхні можна задати два нормальних вектора, що відрізняються напрямком. Якщо на поверхні можна задати безперервне поле нормальних векторів, то говорять, що це поле задає орієнтацію поверхні (тобто виділяє одну зі сторін), а якщо ж цього зробити не можна, поверхню називають неоріентіруемой. p align="justify"> Припустимо, існує об'єкт, всередині якого камера (позиція спостерігача) свідомо не виявиться. Зазвичай такого роду об'єкти становлять більшу частину або всю сцену. Тоді для кожної грані спостерігач здатний побачити тільки одну її сторону - лицьову. Грань - площина, вона ділить всі 3D простір на два півпростору. Таким чином, лицьову сторону видно тільки з одного півпростору, з того, в яке "дивиться" нормаль до цієї грані, спрямована з об'єкта. Перевіривши, в яке півпростір потрапляє камера, можна відразу визначити, чи є грань лицьовий (тобто, чи може камера побачити лицьову сторону цієї грані) і чи треба її малювати. p align="justify"> Нехай грань має вершини v1, v2, v3 і нормаль (nx, ny, nz). Тоді рівняння площини, в якій вона лежить, буде мати вигляд

* x + ny * y + nz * z + d = 0.

знаходимо з того факту, що v1 в площині лежить:

* v1.x + ny * v1.y + nz * v1.z + d = 0, = - (nx * v1.x + ny * v1.y + nz * v1.z).


Функція nx * x + ny * y + nz * z + d приймає позитивні значення по одну сторону від площини, негативні по інший і дорівнює нулю на самій площині. Точка (v1.x + nx, v1.y + ny, v1.z + nz) лежить, очевидно, в тому півпросторі, звідки грань видно. Значення функції (назвемо її функцією видимості) в цій точці дорівнює

* (v1.x + nx) + ny * (v1.y + ny) + nz * (v1.z + nz) + d = nx * (v1.x + nx) + ny * (v1.y + ny) + nz * (v1.z + nz) - (nx * v1.x + ny * v1.y + nz * v1.z) = nx * nx + ny * ny + nz * nz> 0.

Таким чином, якщо значення функції в якійсь точці більше нуля, то грань з цієї точки потенційно видна. Для побудови зображення важливий факт видимість грані з позиції камери, а камера зафіксована в точці (0,0,-dist). Таким чином, отримуємо, що грані, для яких


nz * dist-(nx * v1.x + ny * v1.y + nz * v1.z) <0,

або, що рівносильно, * dist + nx * v1.x + ny * v1.y + nz * v1.z> 0,


свідомо не видно і час на їх обробку і відображення витрачати не варто.

Окремого розгляду потребує питання розрахунку норм...


Назад | сторінка 7 з 16 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Вектор-функція. Поняття кривої, лінії і поверхні. Диференціальна геометрі ...
  • Реферат на тему: PR і маркетинг: грані взаємодії
  • Реферат на тему: Людина і світ дикої природи: грані взаємодії
  • Реферат на тему: «Хованщина» М. П. Мусоргського. Грані образу святий руси
  • Реферат на тему: Парламент і органи судової влади Республіки Білорусь: грані взаємодії