Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

Національний технічний університет


«Харківський політехнічний інститут»
Кафедра ГМКГ

Звіт
з дисципліни “Технології анімації та рендерінгу”
Лабораторна робота №1-2

Виконала:
студентки групи І218.в
Кириченко М.Ю.

Харків 2022
7 варіант
Початкові дані:

Рис.1 – Барицентричні координати трикутника


1) положення глядача (E) (xV , yV , zV ) = (2, 7, 10);
2) положення джерела світла ( Pl) (xL , yL , zL ) = (19, 9, 15);
3) координати точок поверхні: P = (p0, p1, p2, p3, p4, p5)
4) з яких сформовано трикутники:
t1 = (p0, p2, p1)
t2 = (p0, p1, p3)
t3 = (p1, p2, p4)
t4 = (p0, p5, p2)
5) з відповідними нормалями: N = (N1, N2, N3, N4)
6) матеріал поверхні C = (r, g, b);
7) інтенсивність джерела світла IL = 1;
8) інтенсивність непрямого світла IA = 1;
7) коефіцієнти усіх видів віддзеркалення kS = kd = kA = 1;
Додаткові дані:
P (координати точок поверхні)
P0 4 5 6
P1 7 10 4
P2 10 4 4
P3 3 10 0
P4 14 12 0
P5 8 1 0

N (нормалі)
N1 0,336860768 0,168430384 0,926367113
N2 -0,577350269 0,577350269 0,577350269
N3 0,43643578 0,21821789 0,872871561
N4 0,058025885 -0,812362394 0,580258853

C
R G B
199 130 128

Плоске затінення трикутників:


Розрахуємо для трикутника t1 (P₀, P₂, P₁):
1. Розрахуємо Рс – точку в центрі трикутника, за формулою:
1 1 1
Рс = Р0 + Р2 + Р1
3 3 3
2. L – одиничний вектор з точки до джерела світла:
L=Pl −Pc

3. |L| - модуль вектора для нормалізації:


|L|=√ x 2l + y 2l + z 2l
4. Ln – нормалізація одиничного вектора з точки до джерела світла:
L
Ln =
|L|
5. Cosα – для знаходження кольору:
cos α=N × Ln

6. Знаходження CRGB:
C RGB=C ×cos α

P₀, P₂, P₁
Рс 7 6,333333 4,666667
L 12 2,666667 10,333333
|L| 16,0589193
Ln 0,74724829 0,166055 0,643464
cosα 0,87577108
CRGB 174,278445 133,8502 112,0987

Аналогічні дії повторимо для трикутників t2 та t3:


P₀, P1, P3 P1, P2, P4 P0, P5, P2
Рс 4 8 3 10 8 2 7 3 3
L 14 0,6 11 8 0,3 12 11 5 11
|L| 18 15 17
Ln 0,7 0,03 0,6 0,5 0,02 0,8 0,6 0,3 0,6
cosα -0,06 0,9 0,1
CRGB -12 -8 -7 192 126 124 32 21 20

Затінення за Гуро:
1. Знайдемо нормалі в точках:
N1+ N2+ N4
Np =
0
3
N1+ N2+ N3
Np =
1
3
N1+ N3+ N4
Np =
2
3
Np 0
-0,060821205 -0,022193914 0,694658745

Np 1
0,065315427 0,321332848 0,792196314

Np 2
0,277107478 -0,141904707 0,793165842
Вирахуємо їх модулі:
|N p |=√ x N
2
0 p0
+ y 2N + z 2N
p0 p0

Аналогічно інші модулі | N p | та | N p |. 1 2

|N p | 0
0,697669378

|N p | 1
0,857377341

|N p | 2
0,852078373

Вирахуємо N norm p – нормалізовану нормаль за Гуро:


Np
N norm p = 0

0
|N p | 0

Аналогічно інші N norm p та N norm p . 1 2

N norm p 0
-0,087177691 -0,031811506 0,995684728

N norm p 1
0,076180491 0,374785794 0,923976267

N norm p 2
0,325213603 -0,166539501 0,930860197

2. Знайдемо одиничний вектор з точки до джерела світла:


L p =P L −P 0
0

Аналогічно L p та L p . 1 2

Lp 0
15 4 9

Lp 1
12 -1 11

Lp 2
9 5 11

Вирахуємо |L p | та LN , |L p | та LN , |L p | та LN по аналогії з пунктом 1.


0 p0 1 p1 2 p2

|L p |
0 17,94435844 LN p0 0,835917319 0,222911 0,50155

|L p |
1 16,30950643 LN p1 0,735767207 -0,06131 0,674453

|L p |
2 15,06651917 LN p2 0,59735098 0,331862 0,730096

3. Вирахуємо cos α :
cos α 0 =∑ ( N norm p × L N 0 p0 )
Аналогічно cos α 1та cos α 2.
cos α 0 0,41942158
cos α 1 0,65625033
cos α 2 0,81861556

4. Знайдемо кольори за формулою:


C RGB=C ×cos α
R0 83,46489444 R1 130,593816 R2 162,9044973
G0 54,52480541 G1 85,3125433 G2 106,4200234
B0 53,68596225 B1 84,0000426 B2 104,7827923

5. Вирахуємо колір у точці, центрі мас трикутника, C p cent та C p barac – колір


всередині трикутника:
C RGB C C C
C p cent = та C p barac = RGB + RGB + RGB
0 1 2

3 2 4 4
C p cent 125,654403 82,08579 80,82293
C p barac 115,11 88,17 86,81

Затінення за Фонгом:
1. Для розрахунків нам будуть потрібні деякі параметри з минулого
розділу, а саме: N norm p та C RGB .
2. Знайдемо одиничний нормалізований вектор E N , виконаємо такі дії: p

E−N p для x, y, z та їх модулі |E−N p|.

E−N p 0 -2 2 4 |E−N p | 0 4,89897949


E−N p 1 -5 -3 6 |E−N p | 1 8,36660027
E−N p 2 -8 3 6 |E−N p | 2 10,4403065

Тепер вирахуємо E N : p

E−N p
EN =
p
|E−N p|
EN p0 -0,40824829 0,408248 0,816497
EN p1 -0,597614305 -0,35857 0,717137
EN p2 -0,766261028 0,287348 0,574696

3. Знайдемо одиничний вектор з точки положення камери – R p:


R p =2 N norm p × ( N norm p × E N ) −E N p p

Rp 0 0,26256106 -0,461410173 0,84744459


Rp 1 0,67115968 0,720390356 0,17487832
Rp 2 0,92100295 -0,36659009 -0,1317773

Знайдемо їх модуль |R p|:


|R p |
0
1
|R p |
1
1
|R p |
2
1

4. Знайдемо кольори:
Interp N norm
Interp N norm
, його модуль |N normal| та N 3
3 normal=
|N normal|
Interp N norm
0,1047388 0,058812 0,950174
3
|N normal| 0,95773647
N normal 0,109360774 0,061407 0,992104

P0 P1 P2
Pbarac = + +
2 4 4
E−Pbarac, |E−Pbarac| та Enormal barac

Lbarac =Pl−P barac, |Lbarac| та Lnormal barac

N norm p N norm p N norm p


N barac = 0
+ 1
+ 2
, |N barac| та N normal barac
2 4 4
Rbarac =2 N normal barac × ( N norm × E )−¿ E N barac , |R barac| та Rnormal barac

Pbarac 6,25 6 5
Lbarac 12,75 3 10 |Lbarac| 16 Lnormal barac
0,1 0,6
0,7
E−Pbarac -4,25 1 5 |E−Pbarac| 6 Enormal barac
-0,6 0,1 0,7
N barac 0,05 0,03 0,9 |N barac| 0,9 N normal barac
0,05 0,03 0,9
Rbarac 0,7 -0,09 0,6 |R barac| 1 Rnormal barac
0,7 -0,09 0,6

cos α barac =Lnormal barac × N normal barac


C diffusbarac =cos α barac ×C RGB
Enormal barac + Rnormal barac
C s barac = ×C RGB
4
C barac =C diffusbarac +C s barac
cos α barac 0,65773487
C diffusbarac 130,889239 85,50553 84,19006
C s barac 0,000296656 0,000194 0,000191
C barac 130,889536 85,50573 84,19025

Затінення Блінна-Фонга:
1. Знайдемо L+E, беремо значення з минулих підрахунків Гуро та Фонга
відповідно:
L p + ( E−N p )
L+ E0 13 6 13
L+ E1 7 -4 17
L+ E2 1 8 17

Та їх модулі:
|L+ E 0| 19,3390796
|L+ E1| 18,8148877
|L+ E2| 18,8148877

2. Нормалізуймо їх для отримання Н – вектору напівшляху:


L+ E
H=
|L+ E|
H0 0,672214 0,310253 0,672214
H1 0,3720458 -0,2126 0,90354
H2 0,0531494 0,425195 0,90354

3. Розраховуємо косинуси, застосуємо певні значення з затінення Гуро:


cos α= H × N norm p та зведемо їх у ступінь 4:

cos α 0 0,60084154 cos α 0


4
0,13032863
cos α 1 0,78351341 cos α
4
1 0,37686493
cos α 2 0,78754235 cos α 2
4
0,38467652

4. Знайдемо кольори:
4 Сp С С С
С p=C RGB ×cos α , С p cent = та С p barac = p + p + p
3 2 4 4
Cp 0 25,9353965 16,94272 16,68206
Cp 1 74,9961219 48,99244 48,23871
Cp 2 76,5506271 50,00795 49,23859
С p cent 59,1607151 38,6477 38,05312
С p barac 50,8543855 33,22 32,71

Реалізація у Excel: Лаб_9-10.xlsx

You might also like