Для розрахунку інтенсивності освітлення поверхні в заданій точці згідно розглянутої моделі освітлення, необхідно визначити чотири вектори:
напрям на джерело,
напрям на спостерігача,
вектор відбитого світла,
нормаль до поверхні .
Визначення перших трьох векторів досить очевидно, а обчислення нормалей викликає певні труднощі. Якщо поверхня, що фарбується, задана явним рівнянням, то визначення нормалей можна провести класичними математичними методами. Це вимагає величезного обсягу обчислень. Тому застосовують наближені методи обчислень.
Поверхні при візуалізації найчастіше апроксимуються певною множиною малих плоских багатокутників (трикутників або чотирикутників).
Нормалі для всіх точок площини збігаються і можуть бути розраховані, виходячи з координат будь-яких трьох точок площини р0, р1, р2, які не лежать на одній прямій.
Якщо вважати, що джерело освітлення спрямоване і розташоване в нескінченності, то проміні світла паралельні між собою, і якщо спостерігач також розташований у нескінченності, то ефект ослаблення світла в залежності від відстані від джерела можна не враховувати. Крім того, це означає і те, що вектори, які направлені від різних точок поверхні, по відношенню до спостерігача також будуть паралельні.
Плоска грань у всіх точках має однакову інтенсивність освітлення і, тому, забарвлюється одним кольором. Таке зафарбовування називається плоским.
Цей підхід дає максимальну ефективність, але поверхні, що фарбуються, візуально виглядають неприродно (Рис. 3.18).
При апроксимації поверхні багатокутником явно видно ребра, так як сусідні грані з різними напрямками нормалей мають різний колір. Ситуацію посилює поява смуг Маха.
Через особливості зорової системи людини, дуже чутливої до малих змін відтінків сусідніх ділянок зображення при різкому переході від світлої ділянки до більш темної, ми бачимо додаткові смуги вздовж лінії переходу. Тобто вздовж лінії переходу світлий багатокутник здається більш світлим, ніж він є насправді, а темний ще темніше.
Для того щоб усунути даний ефект, необхідно згладити перехід між відтінками сусідніх ділянок. Для цього існують спеціальні алгоритми.
Усунення дискретних інтенсивностей зафарбовування було запропоновано Анрі Гуро. Його метод полягає в тому, що використовуються не нормалі до плоских граней, а нормалі до апроксимуючої поверхні, побудованої в вершинах багатокутника.
Метод передбачає усереднення нормалей і білінійну інтерполяцію інтенсивностей, розрахованих для кожної вершини багатокутника. Білінійна інтерполяція в обчислювальній математиці – розширення лінійної інтерполяції для функцій двох змінних. Ключова ідея полягає в тому, щоб провести стандартну лінійну інтерполяцію спочатку в одному напрямку , а потім у перпендикулярному напрямку.
Вектора нормалей визначаються для всіх вершин багатокутників. Для усереднення нормалі до деякої вершині підсумовуються нормалі до всіх багатокутників, що перетинаються в цій вершині. Отриманий результат нормалізується. Наприклад, для вершини, в якій перетинаються чотири багатокутники М1, М2,М3, М4 нормаль може бути порахована наступним чином:
Зафарбування Гуро дає більш реалістичне уявлення поверхні, однак не усуває повністю смуг Маха, так як забезпечує тільки безперервність значень інтенсивностей вздовж меж багатокутників, не забезпечуючи безперервності зміни інтенсивності.
Друга проблема методу пов'язана з тим, що усереднення нормалей може давати однаковий результат для по-різному орієнтованих багатокутників, що призводить до спотворення зображення. Така побудова сильно залежить від методу розбивки.
Недоліком методу Гуро є і те, що він добре працює тільки з дифузною моделлю відображення