|
17.10.2009 19:18 |
Flat-закраска без УНЛиП была нами рассмотрена в л.р. №1. Реализация flat-закраски с использованием z-буфера аналогична реализации методов Гуро и Фонга, только мы полученный после двойной интерполяции массив точек полигона будем закрашивать цветом самого полигона.
Экранные координаты каждой узловой точки поверхности получаются следующим образом: Xsc=X0+X, Ysc=Y0-Y, где Xsc, Ysc – экранные координаты точки, X0,Y0 – начало координат экрана, X и Y – трехмерные координаты точки. В случае каркаса для отображения используются методы MoveTo(x,y), LineTo(x,y), где х,у – координаты точек начала и конца ребра. Каркасная модель получается путем соединения линиями всех смежных узлов сетки. В случае с Flat-заливкой без использования z-буфера, с помощью метода Polygon(p1,…,pn) производится закраска всех сегментов поверхности, где p1, … , pn - узловые точки полигона, являющиеся объектами структуры TPoint. Для закраски методами Гуро, Фонга и flat с использованием z-буфера, используется атрибут обьекта TImage Pixels[X, Y: Integer]: TColor, где Х,У – координаты точки на экране, TColor – ее цвет.
|