Grafika komputerowa.


Idź do treści

Cieniowanie płaskie.

Cieniowanie płaskie to najprostszy model cieniownia. Dany trójkąt pokolorowany jest tylko jednym kolorem. Objekt cieniowany płasko, ma wyrażnie widoczną strukturę poligonu. (trójkąta).


Algorytm cieniowania płaskiego:

UWAGA: Algorytm wykorzystuje wyłącznie zmienne typu całkowitego.

1. Posortuj wierzchołki trójkąta względem ich współrzędnych Y (od najmniejszej do największej).
2. Oblicz przyrosty między wierzchołkami trójąta na podstawie wzorów.
a) dx12=(x2-x1)/(y2-y1) b)dx13=(x3-x1)/(y3-y1) c)dx23=(x3-x2)/(y3-y2) licząc przyrosty, licznik pomnóż przez 256 jeśli mianownik jest równy 0,to przyjmij przyrost dx = 0.
3. x11=x1; x12=x1, czyli xk1=256x1; xk2=256x1
4. y=y1
5. x11=xk1/256; x12=xk2/256
6. Sprzwdż, czy x11 =< x12
7. Narysuj poziomą linię od punktu (x11,y) do punktu (x12,y).
8. x11=x11 + dx13 czyli xk1=xk1 + dx13
9. x12=x12 + dx12, czyli xk2=xk2 + dx12
10. y=y+1
11. Jeżeli y , y2 to powtarzaj od kroku 5
12. x11=x11 (bez zmian); x12=x2, czyli xk1 bez zmian tak jak po wyjściu z pętli; xk3 = 256 * x2
13. y = y2
14. x11 = xk1/256; x12 = xk3/256;
15. Sprawdż, czy x11 =< x12; jeśli nie, to zamień kolejność punktów (x11,y) i (x12,y).
16. Narysuj poziomą linię od punktu (x11,y) do punktu (x12,y).
17. x11 = x11+dx13; czyli xk1 = xk1 + dx13.
18. x12 = x12 + dx23; czyli xk3 = xk3 + dx23.
19.Jeżeli y < y3 to powtarzaj od kroku 14.


UWAGA: Kroki 4-11 i 13-20 należy zrealizować jako pętle. Mnożenie i dzielenie przez 256 należy zrealizowac jako przesunięcia bitowe.



Obiekt cieniowany płasko Obiekt cieniowany płasko

Obiekt cieniowany płasko Obiekt cieniowany płasko