<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=20061207_G_csoport</id>
	<title>20061207 G csoport - Laptörténet</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/index.php?action=history&amp;feed=atom&amp;title=20061207_G_csoport"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=20061207_G_csoport&amp;action=history"/>
	<updated>2026-05-17T18:10:24Z</updated>
	<subtitle>Az oldal laptörténete a wikiben</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=20061207_G_csoport&amp;diff=138274&amp;oldid=prev</id>
		<title>Unknown user: Új oldal, tartalma: „{{GlobalTemplate|Infoalap|SzgGrafPZH20061207G}}   __TOC__  &lt;b&gt;Adott egy háromszög, csúcsai képernyőkoordinátákban: (11,11,0), (1,21,5), (21,31,8). A hozzájuk ta…”</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=20061207_G_csoport&amp;diff=138274&amp;oldid=prev"/>
		<updated>2012-10-21T20:16:09Z</updated>

		<summary type="html">&lt;p&gt;Új oldal, tartalma: „{{GlobalTemplate|Infoalap|SzgGrafPZH20061207G}}   __TOC__  &amp;lt;b&amp;gt;Adott egy háromszög, csúcsai képernyőkoordinátákban: (11,11,0), (1,21,5), (21,31,8). A hozzájuk ta…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Új lap&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafPZH20061207G}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Adott egy háromszög, csúcsai képernyőkoordinátákban: (11,11,0), (1,21,5), (21,31,8). A hozzájuk tartozó árnyalónormálok a világ koordináta rendszerben rendre (1,0,0), (0,1,0), (0,0,1). Az [1,1,1] irányból az RGB csatornákon (1,2,3) intenzitással fényforrás világít. A háromszög diffúz visszaverési tényezője ( 0.3, 0.2, 0.1). Milyen színű a (2,21) pixel, ha Phong-árnyalást alkalmazunk? (Tisztázza magában a Phong-árnyalás fogalmát! Ez itt nem Gouraud-árnyalás, sem Phong BRDF.)&amp;lt;/b&amp;gt;&lt;br /&gt;
J -- [[SzaMa|SzaMa]] - 2006.12.09.&lt;br /&gt;
&lt;br /&gt;
==Skiz: ==&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:blue&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;_(lásd süni 204. oldal)_&amp;#039;&amp;#039;&amp;#039; &amp;lt;/span&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a(11,11,0)&amp;lt;br&amp;gt;&lt;br /&gt;
b(1,21,5)&amp;lt;br&amp;gt;&lt;br /&gt;
c(21,31,8)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
n=(c-a) x (b-a) = [10 20 8] x [-10 10 5]= [20 -130 300]&amp;lt;br&amp;gt;&lt;br /&gt;
C= n_x*a_x + n_y*a_y + n_z*a_z = 11*20+11*(-130)+ 0*300= -1210&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Z(2,21)= (C-nx*2-ny*21)/nz = (-1210-20*2-21*(-130))/300= 74/15 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P(2,21,74/15) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
11a+b+21c=2&lt;br /&gt;
11a+21b+31c=21&lt;br /&gt;
		 +5b+8c=74/15&lt;br /&gt;
----------------------&lt;br /&gt;
a=1/30 b=14/15 c=1/30  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \cos{\alpha} = \frac{(1/30, 14/15, 1/30) \cdot (1, 1, 1)}{|(1/30, 14/15, 1/30)| \cdot |(1, 1, 1)|} = \frac{1}{0.935 \sqrt{3}} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
R = cos(&amp;amp;alpha;) &amp;amp;middot; 0.3 &amp;amp;middot; 1 &amp;lt;br&amp;gt;&lt;br /&gt;
B = cos(&amp;amp;alpha;) &amp;amp;middot; 0.2 &amp;amp;middot; 2 &amp;lt;br&amp;gt;&lt;br /&gt;
G = cos(&amp;amp;alpha;) &amp;amp;middot; 0.1 &amp;amp;middot; 3 &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[AdamO|adamo]] - 2006.12.30.&lt;br /&gt;
&lt;br /&gt;
==Egy kicsit bővebben... :) ==&lt;br /&gt;
&lt;br /&gt;
A feladat megoldásának elve ([http://users.hszk.bme.hu/~mz271/grafika/grafika_030113A5_pelda.txt link]): A Phong árnyalás arról szól, hogy van egy felületünk, és nem szeretnénk pontról pontra kiszámolni a színeket, ezért csalunk. Felbontjuk a felületet háromszögekre, és, hogy azért ne veszítsünk sokat, minden csúcspontban eltároljuk, hogy az eredeti felületnek ott mi a normálisa. Utána, ha kérdezik egy belső pont színet, akkor a normálist abban a pontban a csúcspontokban lévőkből számoljuk, majd a felület BRDF-jéből, a fény és nézeti irányból számoljuk a színt. Diffúz felulet esetén a BRDF-e konstans, ezt kell megszorozni a fényforrás intenzitásával és a normálvektor és a fényforrás felől mutató vektor coszinuszával. (Ha több fényforrásunk lenne, ezt kellene szummázni az egyes fényekre.) Mivel irányfényforrásunk van, így az intenzitása nem csökken a távolsággal. Tehát Phong algoritmusa nem a színeket, hanem a háromszög-csúcspontokban érvényes normálvektort interpolálja a háromszög felületén, és az illuminációs képletet minden pixelre külön kiértékeli.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img src = &amp;quot;%ATTACHURLPATH%/phong.png&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tehát először meg kell határozni a pixel normálvektorát. A lineáris interpoláció során felhasznált módszer a következő. Meghatározzuk a &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; ponton átmenő Y pászta metszéspontjait a háromszög oldalaival. A metszéspontok normálvektorát az oldalak csúcsainak normálvektorából interpoláljuk, majd a metszéspontok normálvektorait felhasználva számoljuk ki a belső &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; pont normálvektorát.&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;P_3&amp;lt;/math&amp;gt; pontok közötti oldal egyenlete:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;(y - y_1)(x_2 - x_1) = (x - x_1)(y_2 - y_1)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;10(y-11)=20(x-11)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;y=2x-11&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;P_3&amp;lt;/math&amp;gt; pontok közötti oldal és az &amp;lt;math&amp;gt;Y=21&amp;lt;/math&amp;gt; pászta közötti metszéspont (&amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt;) koordinátái:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;21=2x-11&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;Q=(16,21)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; pont normálvektorát a &amp;lt;math&amp;gt;P_1&amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;P_3&amp;lt;/math&amp;gt; csúcspontok normálvektorából az alábbiak szerint számoljuk ki:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_{x}^{Q} = u*N_{x}^{P_1} + (1-u)*N_{x}^{P_3}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_{y}^{Q} = u*N_{y}^{P_1} + (1-u)*N_{y}^{P_3}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_{z}^{Q} = u*N_{z}^{P_1} + (1-u)*N_{z}^{P_3}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ahol az &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; azt adja meg, hogy melyik csúcs milyen súllyal szamít (természetesen a közelebbi jobban). Mivel a &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; pont az oldal felezőpontja, ezért &amp;lt;math&amp;gt;u=\frac{1}{2}&amp;lt;/math&amp;gt;. Ebből a &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; normálvektora:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_Q = (\frac{1}{2},0,\frac{1}{2})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; pont normálvektorát a &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;P_2&amp;lt;/math&amp;gt; (mivel az Y pászta másik metszéspontja a második csúcs) pontok normálvektorából interpoláljuk:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_{x}^{P} = u*N_{x}^{P_2} + (1-u)*N_{x}^{Q}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_{y}^{P} = u*N_{y}^{P_2} + (1-u)*N_{y}^{Q}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_{z}^{P} = u*N_{z}^{P_2} + (1-u)*N_{z}^{Q}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Az &amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; értéke ebben az esetben:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;u=\frac{|PP_Q|}{|P_{2}{Q}|}=\frac{14}{15}&amp;lt;/math&amp;gt;, ahol a számláló és a nevező a pontok alkotta szakaszok hossza. A &amp;lt;math&amp;gt;P&amp;lt;/math&amp;gt; normálvektora tehát:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;N_P = (\frac{1}{30},\frac{14}{15},\frac{1}{30})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Megjegyzés:&amp;#039;&amp;#039;&amp;#039; A fenti képletben szerintem &amp;lt;math&amp;gt;u=\frac{|{P}{Q}|}{|P_{2}{Q}|}=\frac{14}{15}&amp;lt;/math&amp;gt;. Ez az eredményen nem változtat, csak egy apró elírás.&amp;lt;br&amp;gt;&lt;br /&gt;
Tehát &amp;lt;math&amp;gt;P_{2}&amp;lt;/math&amp;gt; súlya az interpolációban &amp;lt;math&amp;gt;\frac{14}{15}&amp;lt;/math&amp;gt;, míg &amp;lt;math&amp;gt;Q&amp;lt;/math&amp;gt; súlya &amp;lt;math&amp;gt;\frac{1}{15}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
-- [[SikAndrasFerenc|Bandita]] - 2008.06.03.&lt;br /&gt;
&lt;br /&gt;
Ezután ki kell számolni a beeső sugár és a normálvektor szögének koszinuszát. Legyen a fényforrás iránya L a normálvektor N.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\cos\theta&amp;#039; = \frac{L \cdot N}{|L|*|N|} = \frac{(1*\frac{1}{30})+(1*\frac{14}{15})+(1*\frac{1}{30})}{(\sqrt{1^2+1^2+1^2})+(\sqrt{(\frac{1}{30})^2+(\frac{14}{15})^2+(\frac{1}{30})^2})} =  \frac{5\sqrt{10}}{\sqrt{131}} \sim 1,3814&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Végül a pixel színe:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;L = L_{in}*k_d*\cos\theta&amp;#039;=L_{(fény)}*k_d=[0.3,0.2,0.1]*[1,2,3]*1,3814 = [0.4144,0.5526,0.4144]&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;img src = &amp;quot;%ATTACHURLPATH%/szin.png&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- [[SamiRello|Samirello]] - 2007.01.02.&lt;br /&gt;
&lt;br /&gt;
A bővebb megoldás végén mégsem ugyanaz az eredmény jön ki, mint az elsőben. Gondolom ez azért lehet, mert a &amp;lt;math&amp;gt;\cos\theta&amp;#039;&amp;lt;/math&amp;gt;-nál a nevezőben összeadás van a szorzás helyett. Addig ugyanis ugyanaz a részeredmény... Szerintem a szorzás a jó!&lt;br /&gt;
&lt;br /&gt;
-- [[UjvariAttilaGabor|Atex]] - 2007.10.29.&lt;br /&gt;
&lt;br /&gt;
Revízió: Miután ismét átnéztem a feladatot ismét, rájöttem, hülyeséget írtam, &amp;lt;math&amp;gt;\vec{N}&amp;lt;/math&amp;gt; és &amp;lt;math&amp;gt;\vec{L}&amp;lt;/math&amp;gt; hossza semmiképpen nem egységnyi, ahhoz normálnunk kellene. Továbbá ahogy Atex mondta, a képletbe való behelyettesítés el van írva, ott szorzás lenne a helyes. Ha szorzunk ugyanazt az eredményt kapjuk, mint a skiz esetén, ami végülis a jó megoldás :) &amp;lt;br&amp;gt;&lt;br /&gt;
-- [[SikAndrasFerenc|Bandita]] - 2008.06.17.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>