<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="hu">
	<id>https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gabesz852</id>
	<title>VIK Wiki - Felhasználó közreműködései [hu]</title>
	<link rel="self" type="application/atom+xml" href="https://vik.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gabesz852"/>
	<link rel="alternate" type="text/html" href="https://vik.wiki/Speci%C3%A1lis:Szerkeszt%C5%91_k%C3%B6zrem%C5%B1k%C3%B6d%C3%A9sei/Gabesz852"/>
	<updated>2026-04-21T10:02:44Z</updated>
	<subtitle>Felhasználó közreműködései</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://vik.wiki/index.php?title=SzoftTechZH20140414&amp;diff=180342</id>
		<title>SzoftTechZH20140414</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzoftTechZH20140414&amp;diff=180342"/>
		<updated>2014-04-14T17:17:42Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: Új oldal, tartalma: „=== Beugró: === 60% (27 pont) kellett, 45p összesen  ==== 1. feladat: ====  a. UserControl fogalma és jelentősége a tervezés/fejlesztés során. (3p)&amp;lt;br /&amp;gt; b. Üz…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Beugró: ===&lt;br /&gt;
60% (27 pont) kellett, 45p összesen&lt;br /&gt;
&lt;br /&gt;
==== 1. feladat: ====&lt;br /&gt;
&lt;br /&gt;
a. UserControl fogalma és jelentősége a tervezés/fejlesztés során. (3p)&amp;lt;br /&amp;gt;&lt;br /&gt;
b. Üzenetkezelő ciklus megmagyarázása. (2p)&amp;lt;br /&amp;gt;&lt;br /&gt;
c. C# kódot kellett írni: a 20,20 koordinátára rajzoljon ki egy 60px oldalhosszúságú telizöld négyzetet, és ennek másodpercenként csökkenjen az oldalhosszúsága 5px-el addig, amíg az x billentyű le nem lett nyomva. (12p)&lt;br /&gt;
&lt;br /&gt;
==== 2. feladat: ====&lt;br /&gt;
&lt;br /&gt;
a. Mikor érdemes többszálú alkalmazást használni? 3 alkalom. (3p)&amp;lt;br /&amp;gt;&lt;br /&gt;
b. ReaderWriterLock (vagy ReaderWriterLockSlim) és Mutex összehasonlítása. (2p)&amp;lt;br /&amp;gt;&lt;br /&gt;
c. C# kódot kellett írni: konkurrens stack megvalósítása, egészeket tárol, void Push(int i) művelet betesz egy számot a tetejére, int Pop() pedig visszaadja a tetején lévőt (de nem törli). (9p)&lt;br /&gt;
&lt;br /&gt;
==== 3. feladat: ====&lt;br /&gt;
&lt;br /&gt;
C# kódot kellett írni: Square osztály, private int side mező, public SetSide(int newValue) metódus beállítja a mező értékét, majd elsüti a SideChanging eseményt, és ebben paraméterül visszaadja a sides mező régi és új értékét is. Ezt kellett megvalósítani, meg egy másik osztályt, ami feliratkozik az eseményére. (14p)&lt;br /&gt;
&lt;br /&gt;
=== Maradék: ===&lt;br /&gt;
55p összesen&lt;br /&gt;
&lt;br /&gt;
==== 4. feladat: ====&lt;br /&gt;
&lt;br /&gt;
ADO.NET kapcsolatalapú modellel kellett a Movie(MovieID, Title, Rating) táblából kitörölni azokat a sorokat, ahol a Rating &amp;lt; 7 vagy nincs megadva. (13p)&lt;br /&gt;
&lt;br /&gt;
==== 5. feladat: ====&lt;br /&gt;
&lt;br /&gt;
a. UML osztálydiagramból kellett C#, Java, vagy C++ kódot írni. (6p)&amp;lt;br /&amp;gt;&lt;br /&gt;
b. Leírtak egy történetet, hogy te vagy a vezető szoftverfejlesztő egy cégnél, ahol képkezelő alkalmazást készítenek C#-ban. A képtípusokat (PngImage, GifImage, ...) összefogták egy közös ős, az ImageBase alá, hogy elkerüljék a kódduplikálást. Szeretnék a JPEG támogatást is hozzáadni, erre az egyik alkalmazott talált egy küldő dll-t, ami tartalmaz egy JpegBase absztrakt osztályt, ami jó lenne a Jpeg képek ősének. Kritikus döntést kell hoznod: hogyan módosítanád a jelenlegi struktúrát úgy, hogy a dll-t fel lehessen használni? A dll nyilván nem módosítható (nem tudod leszármaztatni osztályból, nem valósíthat meg interfészt, de pl. belőle származhatnak le). A megoldást meg is kellett magyarázni. (9p)&lt;br /&gt;
&lt;br /&gt;
==== 6. feladat: ====&lt;br /&gt;
&lt;br /&gt;
a. A C++ template-ek három nagy hátránya, ami .NET-ben nincs. (3p)&amp;lt;br /&amp;gt;&lt;br /&gt;
b. Reflexió fogalma, 3 szolgáltatása. (3p)&amp;lt;br /&amp;gt;&lt;br /&gt;
c. Reflexiós példakód: változó típusának kiírása. (4p)&amp;lt;br /&amp;gt;&lt;br /&gt;
d. Reflexiós példakód: osztály tagváltozóinak a neveinek a kiírása. (4p)&lt;br /&gt;
&lt;br /&gt;
==== 7. feladat: ====&lt;br /&gt;
&lt;br /&gt;
a. Adatforrás által vezérelt csővezeték szekvencia diagrammal + magyarázattal. (8p)&amp;lt;br /&amp;gt;&lt;br /&gt;
b. Csővezetékbe beépíthető szűrő pszeudokód. (6p)&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Szoftvertechnik%C3%A1k&amp;diff=180341</id>
		<title>Szoftvertechnikák</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Szoftvertechnik%C3%A1k&amp;diff=180341"/>
		<updated>2014-04-14T16:40:36Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* ZH-k */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Tantárgy&lt;br /&gt;
|targykod=VIAUA218&lt;br /&gt;
|nev=Szoftvertechnikák&lt;br /&gt;
|szak=info&lt;br /&gt;
|kredit=4&lt;br /&gt;
|felev=4&lt;br /&gt;
|kereszt= vizsgakurzus&lt;br /&gt;
|tanszék= AAIT&lt;br /&gt;
|labor= 7 db&lt;br /&gt;
|kiszh= nincs&lt;br /&gt;
|nagyzh=1 db&lt;br /&gt;
|hf=nincs&lt;br /&gt;
|vizsga= írásbeli&lt;br /&gt;
|tad=https://www.vik.bme.hu/kepzes/targyak/VIAUA218/&lt;br /&gt;
|targyhonlap=https://www.aut.bme.hu/Course/VIAUA218&lt;br /&gt;
|levlista=sznikak{{Kukac}}sch.bme.hu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Követelmények==&lt;br /&gt;
===Előtanulmányi rend===&lt;br /&gt;
[[A programozás alapjai II. | A programozás alapjai 2.]] tárgyból kredit, illetve [[Szoftvertechnológia]] tárgyból aláírás megszerzése szükséges a tárgy felvételéhez.&lt;br /&gt;
&lt;br /&gt;
===A szorgalmi időszakban===&lt;br /&gt;
*Az &#039;&#039;&#039;aláírás&#039;&#039;&#039; feltételei:&lt;br /&gt;
**A &#039;&#039;&#039;gyakorlatok&#039;&#039;&#039;on való részvétel, max. egyről lehet hiányozni. A gyakorlatok elején &#039;&#039;&#039;beugró&#039;&#039;&#039;t kell írni az előre kiadott segédanyagokból, ennek sikertelensége esetén a gyakorlat nem folytatható és az adott alkalom hiányzásnak minősül. Továbbá a gyakorlaton végig jelen kell lenni és közben nem lehet mást csinálni, csak ekkor érvényes a jelenlét.&lt;br /&gt;
**A &#039;&#039;&#039;ZH&#039;&#039;&#039; sikeres (min. 40%) megírása.&lt;br /&gt;
*&#039;&#039;&#039;Megajánlott jegy:&#039;&#039;&#039; nincs.&lt;br /&gt;
*&#039;&#039;&#039;Pótlási lehetőségek:&#039;&#039;&#039;&lt;br /&gt;
**Egy gyakorlat pótolható a pótlási héten. (Alapos indok - pl. betegség - esetén megengedhetnek 2 gyakorlat pótlását is, de ehhez az oktatókkal kell egyezkedni.)&lt;br /&gt;
**A ZH egyszer félév közben, egyszer pedig a pótlási héten (különeljárási díj fejében) pótolható.&lt;br /&gt;
*&#039;&#039;&#039;Elővizsga:&#039;&#039;&#039; nincs.&lt;br /&gt;
&lt;br /&gt;
===A vizsgaidőszakban===&lt;br /&gt;
*&#039;&#039;&#039;Vizsga:&#039;&#039;&#039; írásbeli, amelyen 100 pont szerezhető.&lt;br /&gt;
**Előfeltétele: az aláírás megléte.&lt;br /&gt;
**A négyes ZH-t írók +4, az ötös ZH-t írók +8 pontot kapnak a vizsgadolgozatukra. Ha valaki minden gyakorlatot teljesített, +2 pont jár érte. (A pótZH-kon és a pótgyakorlaton már nincs mód a pluszpontok megszerzésére). Így összesen +10 pont szerehető, de pluszpontokkal az elégségest megszerezni nem lehet.&lt;br /&gt;
&lt;br /&gt;
===Félévvégi jegy===&lt;br /&gt;
*A félévvégi jegyet a pluszpontokkal megnövelt vizsgaeredmény (V) adja.&lt;br /&gt;
*Ponthatárok:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!V !!Jegy&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 44 || 1&lt;br /&gt;
|-&lt;br /&gt;
|45 - 55 || 2&lt;br /&gt;
|-&lt;br /&gt;
|56 - 70 || 3&lt;br /&gt;
|-&lt;br /&gt;
|71 - 84 || 4&lt;br /&gt;
|-&lt;br /&gt;
|85 -    || 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Segédanyagok==&lt;br /&gt;
&lt;br /&gt;
* [[Media:Sznikak_jegyzet_CBible2002.pdf‎| CsharpBible2002.pdf]] &lt;br /&gt;
* [[Media:Sznikak_jegyzet_osszefoglal.pdf‎| Tételkidolgozás ZH-ra]] &lt;br /&gt;
* [[Media:Sznikak_jegyzet_osszefoglal_3.pdf‎| Tételkidolgozás ZH-ra javított verzió]] &lt;br /&gt;
* [[Sznikak_tervezesimintak | Tervezési minták]]&lt;br /&gt;
* [[Media:Sznikak_jegyzet_DesignPatterns.pdf‎‎| Tervezési minták (Siklósi Zsolt @ info2007)]]&lt;br /&gt;
* [[Media:Sznikak_jegyzet_designpatternscard.pdf‎‎| Tervezési minták tömör összefoglaló (angol)]]&lt;br /&gt;
* [[Media:Sznikak_jegyzet_reitercsharp.pdf‎‎‎| Reiter István - C# jegyzet]] ([https://devportal.hu/Fajlok/Default.aspx?shareid=1&amp;amp;path=Konyvek%5ccsharp+jegzyet forrás])&lt;br /&gt;
* [[Media:Sznikak_jegyzet_E.Gamma_R.Helm_R.Johnson_J.Vlissides_DesignPatterns.pdf‎| Tervezési minták (angol)]]&lt;br /&gt;
* [[Media:Sznikak_jegyzet_Pattern-Oriented-SA_vol1.pdf‎‎‎| Diák végén ajánlott könyv első kötete (angol)]]&lt;br /&gt;
* [[Media:Sznikak_Pattern-Oriented-SA_vol2.pdf‎‎‎| Diák végén ajánlott könyv második kötete (angol)]]&lt;br /&gt;
* [[Media:Sznikak_jegyzet_designpatternkezi.pdf‎| Design pattern (kézzel írott)]] by: Vincze Viktória&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;[[Sznikák_példakódok | Példakódok]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==ZH-k==&lt;br /&gt;
&lt;br /&gt;
* [[Media:Sznikak_zh_2007-04-13_kidolgozott.pdf‎‎| 2007. április 13. ZH]] megoldással&lt;br /&gt;
* [[Media:Sznikak_pzh_2008-04-30_kidolgozott.pdf‎‎| 2008. április 30. PZH]] megoldással&lt;br /&gt;
* [[SzoftTechZH201004|2010. április 14. ZH]] megoldással&lt;br /&gt;
* [[SzoftTechZH20110418|2011. április 18. ZH]] megoldással&lt;br /&gt;
* [[SzoftTechZH20130422|2013. április 22. ZH]] megoldással&lt;br /&gt;
* [[SzoftTechPZH20130510|2013. május 10. PZH]] megoldással&lt;br /&gt;
* [[SzoftTechZH20140414|2014. április 14. ZH]]&lt;br /&gt;
&lt;br /&gt;
==Vizsgák==&lt;br /&gt;
* [[Media:Sznikak_jegyzet_vizsgara2010byzsepi.pdf‎| kigyűjtött vizsgafeladatok]] by: Zsepi&lt;br /&gt;
* [[SzoftverTechnikakTetelsor|Szoftvertechnikák tételsor]]&lt;br /&gt;
* [[Media:Sznikak_jegyzet_osszestettvizsgakerdesek.pdf‎| összesítettkérdések és válaszok]] by: Évi&lt;br /&gt;
&lt;br /&gt;
===2013===&lt;br /&gt;
&lt;br /&gt;
* [[Media:sznikak_vizsga_20130625.pdf|2013. június 5. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga130530|2013. május 30. vizsga]]&lt;br /&gt;
&lt;br /&gt;
===2012===&lt;br /&gt;
* [[SzoftTechVizsga120523|2012. május 23. vizga]]&lt;br /&gt;
&lt;br /&gt;
===2011===&lt;br /&gt;
* [[SzoftTechVizsga110601|2011. június 1. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga110525|2011. május 25. vizsga]]&lt;br /&gt;
&lt;br /&gt;
===2010===&lt;br /&gt;
* [[SzoftTechVizsga100608|2010. június 8. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga100601|2010. június 1. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga100525|2010. május 25. vizsga]]&lt;br /&gt;
&lt;br /&gt;
===2009===&lt;br /&gt;
* [[SzoftTechVizsga090616|2009. június 16. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga090610|2009. június 10. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga090605|2009. június 5. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga090529|2009. május 29. vizsga]]&lt;br /&gt;
&lt;br /&gt;
===2008===&lt;br /&gt;
* [[SzoftTechVizsga080604|2008. június 4. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga080530|2008. május 30. vizsga]]&lt;br /&gt;
&lt;br /&gt;
===2007===&lt;br /&gt;
* [[SzoftTechVizsga070613|2007. június 13. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga070606|2007. június 6. vizsga]]&lt;br /&gt;
* [[SzoftTechVizsga070530|2007. május 30. vizsga]]&lt;br /&gt;
&lt;br /&gt;
== Egyéb hasznos oldalak, tippek ==&lt;br /&gt;
=== Hasonló tárgyak, tanfolyamok ===&lt;br /&gt;
* [[SzoftverTechnikak|Szoftver technikák]] az 1.1-es szakirányon és [[SzoftTechLabor|labor]]&lt;br /&gt;
* [[Szoftverfejlesztés .NET platformon]]&lt;br /&gt;
* [[MCP70-526|.NET framework 2.0 Windows-Based Client Development]]&lt;br /&gt;
* [[MCP70-536|.NET framework 2.0 Application Development Foundation]]&lt;br /&gt;
&lt;br /&gt;
=== Fejlesztői környezetek ===&lt;br /&gt;
* [http://e5.onthehub.com/WebStore/OfferingsOfMajorVersionList.aspx?ws=42a261b1-869b-e011-969d-0030487d8897&amp;amp;vsro=8&amp;amp;pmv=6dca33b6-d5b0-e111-b575-f04da23e67f6&amp;amp;cmi_mnuMain=bdba23cf-e05e-e011-971f-0030487d8897 Visual Studio 2012 (DreamSpark)] - Ultimate igényelhető ingyen a {{kukac}}hszk.bme.hu -s e-mailcímmel&lt;br /&gt;
&lt;br /&gt;
== Kedvcsináló ==&lt;br /&gt;
&lt;br /&gt;
===Lord Viktor===&lt;br /&gt;
Szoftvertechnológia után felüdülés volt, mondjuk engem azért nem nagyon fogott meg. Az anyag érdekes, bár vannak benne unalmas, száraz részek is. Nekem jobban bejött a Java, mint a C#, de hát ízlések és pofonok. Előadásra annak érdemes járni, akit leköt a dolog, egyébként abszolválható simán a tárgy anélkül is. A diák jók, és minden bennük van, ami a ZH-hoz/vizsgához kell. A gyakorlat lebonyolítása viszont a Szoftver laborok után vicc kategória. A beugró nem nehéz, sőt kifejezetten könnyű, aki figyelmesen elolvasta az anyagot, annak jobbára megvan. Viszont az órai munka nehezen követhető és nem reprodukálható: a laborvezető kivetítve csinálja a feladatokat (amik lehet neki megvannak, de leírva és kiadva sehol sincsenek), te pedig kódolsz utána bambán. Bár magyaráz mellé, de szerintem kevés az olyan férfi ember, aki egyszerre tudja a kódot a kivetítőről lemásolni és az érdemi mondanivalót is megjegyezni. A honlapra csak a kezdeti forráskódot rakják fel, illetve a félév végén a végső megoldásokat, de feladatsor sehol sincs, így igazából a vizsgaidőszakra kb. 0 ragad meg az órai munkából, max. amennyi rutint megszerzel. Viszont az oktatók rendesek, mind a beugró, mind a ZH/vizsga pontozása korrekt, szóval összességében kellemes tárgy, de a laborgyakorlatokon lehetne csiszolni. &amp;lt;br /&amp;gt;&lt;br /&gt;
[[Szerkesztő:Lordviktor|Lord Viktor]] ([[Szerkesztővita:Lordviktor|vita]]) 2013. június 6., 17:36 (UTC)&lt;br /&gt;
&lt;br /&gt;
{{Lábléc_-_Mérnök_informatikus_alapszak}}&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175985</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175985"/>
		<updated>2014-01-22T15:41:30Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* Bónusz kérdések (1 pont darabja) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd();&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
Egy megoldás, amely közel jó eredményt ad:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Csúcspont árnyaló:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void vertex(in float4 position		: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
            out float4 oPosition	: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
  	    out float4 posTexcoord	: TEXCOORD0)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.x == 0.0)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//x irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.x = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.y == 0.0)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//y irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.y = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	oPosition = position;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//végső pozíció kiadása (erre rajzol majd)&amp;lt;br/&amp;gt;&lt;br /&gt;
	posTexcoord = oPosition;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//pozíció a fragmens shadernak&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Képpont árnyaló:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
void fragment(in float4 position	: TEXCOORD0,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;out float4 oColor		: COLOR)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	float P = position.x * position.x + position.y * position.y;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + y&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float innerR = 0.7 * 0.7;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float outerR = 0.9 * 0.9;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (P &amp;gt;= innerR &amp;amp;&amp;amp; P &amp;lt;= outerR)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//a pontnak az r sugarú körön kívül és az R sugarú körön belül kell lennie&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(1, 1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
	else&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(0, 0, 0, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Mivel a fragmens shader alapból nem kapja meg a pozíciókat, csak a textúrakoordinátákat, ezért trükközni kell egy kicsit. A vertex shaderből a módosított pozícióvektort visszaadom, mint egy textúrakoordinátát, így már elérhető a fragmens shaderből is. Azért kell mindenképpen átadni, mert a vertex shader csak a csúcspontokat kezeli, tehát az csak a négy koordinátát kapja meg, és nyilván a négy sarok nincs benne a gyűrűben, tehát ha ott végeznénk a számításokat, akkor az egész kép fekete lenne. A fragmens shader viszont az összes képpontot kezeli, így ott elvégezhető a számolás.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ezzel a két programmal, a megadott vertexekkel a következő képet kaptam:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[:File:grafika_vertex_shader_korgyuru.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A hiba okát nem tudom, elvileg minden klappol. Javítás jöhet.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:12 (UTC)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
A fehér, mert az minden színt tartalmaz. Ha prizmába belelövünk egy fehér fénynyalábot, a szivárvány színeire bontva jön ki a másik oldalon.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
b) Nevezzen meg egy G&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
G&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; folytonosság: két görbeszakasz értéke intervallumhatáron megegyezik.&amp;lt;br /&amp;gt;&lt;br /&gt;
Konvex burok tulajdonság: nem lép ki a kontrollpontok alkotta konvex sokszög határából.&amp;lt;br /&amp;gt;&lt;br /&gt;
Interpoláló: érinti a kontrollpontokat.&amp;lt;br /&amp;gt;&lt;br /&gt;
Ezeket a tulajdonságokat teljesíti pl. a törtvonal is (simán összekötöd a csomópontokat egyenes szakaszokkal).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Ideális tükröket lehet így szimulálni. Külön leképzéssel meghatározzuk, hogy mi látszik a tükörirányban, majd a képet textúraként rátesszük a tükröző objektumra.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Ideális visszaverődés: csak ideális tükörnél fordul elő; a beesési irány, a felületi normális és a kilépési irány egy síkban van, és a beesési szög megegyezik a kilépési szöggel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Teljes visszaverődés: az optikailag sűrűbb anyagból a fény nem tud kilépni a ritkább anyagba. Amikor sugárkövetésnél a fénytörési irányt számolod, és a gyökjel alatti tag (1-(1-cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;alfa)/(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)) negatív, akkor áll fenn. A tört fény mennyisége is hozzáadódik a visszaverődéshez. Így működik az üvegszál.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Idő: 60 perc&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:40 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175984</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175984"/>
		<updated>2014-01-22T15:40:32Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* Bónusz kérdések (1 pont darabja) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd();&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
Egy megoldás, amely közel jó eredményt ad:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Csúcspont árnyaló:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void vertex(in float4 position		: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
            out float4 oPosition	: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
  	    out float4 posTexcoord	: TEXCOORD0)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.x == 0.0)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//x irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.x = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.y == 0.0)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//y irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.y = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	oPosition = position;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//végső pozíció kiadása (erre rajzol majd)&amp;lt;br/&amp;gt;&lt;br /&gt;
	posTexcoord = oPosition;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//pozíció a fragmens shadernak&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Képpont árnyaló:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
void fragment(in float4 position	: TEXCOORD0,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;out float4 oColor		: COLOR)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	float P = position.x * position.x + position.y * position.y;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + y&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float innerR = 0.7 * 0.7;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float outerR = 0.9 * 0.9;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (P &amp;gt;= innerR &amp;amp;&amp;amp; P &amp;lt;= outerR)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//a pontnak az r sugarú körön kívül és az R sugarú körön belül kell lennie&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(1, 1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
	else&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(0, 0, 0, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Mivel a fragmens shader alapból nem kapja meg a pozíciókat, csak a textúrakoordinátákat, ezért trükközni kell egy kicsit. A vertex shaderből a módosított pozícióvektort visszaadom, mint egy textúrakoordinátát, így már elérhető a fragmens shaderből is. Azért kell mindenképpen átadni, mert a vertex shader csak a csúcspontokat kezeli, tehát az csak a négy koordinátát kapja meg, és nyilván a négy sarok nincs benne a gyűrűben, tehát ha ott végeznénk a számításokat, akkor az egész kép fekete lenne. A fragmens shader viszont az összes képpontot kezeli, így ott elvégezhető a számolás.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ezzel a két programmal, a megadott vertexekkel a következő képet kaptam:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[:File:grafika_vertex_shader_korgyuru.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A hiba okát nem tudom, elvileg minden klappol. Javítás jöhet.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:12 (UTC)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&lt;br /&gt;
&lt;br /&gt;
A fehér, mert az minden színt tartalmaz. Ha prizmába belelövünk egy fehér fénynyalábot, a szivárvány színeire bontva jön ki a másik oldalon.&lt;br /&gt;
&lt;br /&gt;
b) Nevezzen meg egy G&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&lt;br /&gt;
&lt;br /&gt;
G&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; folytonosság: két görbeszakasz értéke intervallumhatáron megegyezik.&lt;br /&gt;
Konvex burok tulajdonság: nem lép ki a kontrollpontok alkotta konvex sokszög határából.&lt;br /&gt;
Interpoláló: érinti a kontrollpontokat.&lt;br /&gt;
Ezeket a tulajdonságokat teljesíti pl. a törtvonal is (simán összekötöd a csomópontokat egyenes szakaszokkal).&lt;br /&gt;
&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&lt;br /&gt;
&lt;br /&gt;
Ideális tükröket lehet így szimulálni. Külön leképzéssel meghatározzuk, hogy mi látszik a tükörirányban, majd a képet textúraként rátesszük a tükröző objektumra.&lt;br /&gt;
&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&lt;br /&gt;
&lt;br /&gt;
Ideális visszaverődés: csak ideális tükörnél fordul elő; a beesési irány, a felületi normális és a kilépési irány egy síkban van, és a beesési szög megegyezik a kilépési szöggel.&lt;br /&gt;
Teljes visszaverődés: az optikailag sűrűbb anyagból a fény nem tud kilépni a ritkább anyagba. Amikor sugárkövetésnél a fénytörési irányt számolod, és a gyökjel alatti tag (1-(1-cos&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;alfa)/(n&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;)) negatív, akkor áll fenn. A tört fény mennyisége is hozzáadódik a visszaverődéshez. Így működik az üvegszál.&lt;br /&gt;
&lt;br /&gt;
Idő: 60 perc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:40 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175983</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175983"/>
		<updated>2014-01-22T15:27:17Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* 1. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd();&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
Egy megoldás, amely közel jó eredményt ad:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Csúcspont árnyaló:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void vertex(in float4 position		: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
            out float4 oPosition	: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
  	    out float4 posTexcoord	: TEXCOORD0)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.x == 0.0)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//x irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.x = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.y == 0.0)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//y irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.y = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	oPosition = position;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//végső pozíció kiadása (erre rajzol majd)&amp;lt;br/&amp;gt;&lt;br /&gt;
	posTexcoord = oPosition;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//pozíció a fragmens shadernak&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Képpont árnyaló:&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
void fragment(in float4 position	: TEXCOORD0,&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;out float4 oColor		: COLOR)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	float P = position.x * position.x + position.y * position.y;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + y&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float innerR = 0.7 * 0.7;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float outerR = 0.9 * 0.9;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (P &amp;gt;= innerR &amp;amp;&amp;amp; P &amp;lt;= outerR)&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;//a pontnak az r sugarú körön kívül és az R sugarú körön belül kell lennie&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(1, 1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
	else&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(0, 0, 0, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Mivel a fragmens shader alapból nem kapja meg a pozíciókat, csak a textúrakoordinátákat, ezért trükközni kell egy kicsit. A vertex shaderből a módosított pozícióvektort visszaadom, mint egy textúrakoordinátát, így már elérhető a fragmens shaderből is. Azért kell mindenképpen átadni, mert a vertex shader csak a csúcspontokat kezeli, tehát az csak a négy koordinátát kapja meg, és nyilván a négy sarok nincs benne a gyűrűben, tehát ha ott végeznénk a számításokat, akkor az egész kép fekete lenne. A fragmens shader viszont az összes képpontot kezeli, így ott elvégezhető a számolás.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ezzel a két programmal, a megadott vertexekkel a következő képet kaptam:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[:File:grafika_vertex_shader_korgyuru.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A hiba okát nem tudom, elvileg minden klappol. Javítás jöhet.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:12 (UTC)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&lt;br /&gt;
&lt;br /&gt;
b) Nevezzen meg egy Go folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&lt;br /&gt;
&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&lt;br /&gt;
&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Idő: 60 perc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175982</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175982"/>
		<updated>2014-01-22T15:23:32Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* 1. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd();&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
Egy megoldás, amely közel jó eredményt ad:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Csúcspont árnyaló:&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void vertex(in float4 position		: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
            out float4 oPosition	: POSITION,&amp;lt;br/&amp;gt;&lt;br /&gt;
  	    out float4 posTexcoord	: TEXCOORD0)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.x == 0.0)                      //x irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.x = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (position.y == 0.0)                      //y irányú nyújtás&amp;lt;br/&amp;gt;&lt;br /&gt;
		position.y = -1.0;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	oPosition = position;                       //végső pozíció kiadása (erre rajzol majd)&amp;lt;br/&amp;gt;&lt;br /&gt;
	posTexcoord = oPosition;                    //pozíció a fragmens shadernak&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Képpont árnyaló:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
void fragment(in float4 position	: TEXCOORD0,&amp;lt;br/&amp;gt;&lt;br /&gt;
	      out float4 oColor		: COLOR)&amp;lt;br/&amp;gt;&lt;br /&gt;
{&amp;lt;br/&amp;gt;&lt;br /&gt;
	float P = position.x * position.x + position.y * position.y;       //x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + y&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float innerR = 0.7 * 0.7;                                          //r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
	float outerR = 0.9 * 0.9;                                          //R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
	if (P &amp;gt;= innerR &amp;amp;&amp;amp; P &amp;lt;= outerR)              //a pontnak az r sugarú körön kívül és az R sugarú körön belül kell lennie&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(1, 1, 1, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
	else&amp;lt;br/&amp;gt;&lt;br /&gt;
		oColor = float4(0, 0, 0, 1);&amp;lt;br/&amp;gt;&lt;br /&gt;
}&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Mivel a fragmens shader alapból nem kapja meg a pozíciókat, csak a textúrakoordinátákat, ezért trükközni kell egy kicsit. A vertex shaderből a módosított pozícióvektort visszaadom, mint egy textúrakoordinátát, így már elérhető a fragmens shaderből is. Azért kell mindenképpen átadni, mert a vertex shader csak a csúcspontokat kezeli, tehát az csak a négy koordinátát kapja meg, és nyilván a négy sarok nincs benne a gyűrűben, tehát ha ott végeznénk a számításokat, akkor az egész kép fekete lenne. A fragmens shader viszont az összes képpontot kezeli, így ott elvégezhető a számolás.&amp;lt;br/&amp;gt;&lt;br /&gt;
Ezzel a két programmal, a megadott vertexekkel a következő képet kaptam:&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
[[:File:grafika_vertex_shader_korgyuru.png]]&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
A hiba okát nem tudom, elvileg minden klappol. Javítás jöhet.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:12 (UTC)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&lt;br /&gt;
&lt;br /&gt;
b) Nevezzen meg egy Go folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&lt;br /&gt;
&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&lt;br /&gt;
&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Idő: 60 perc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175981</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175981"/>
		<updated>2014-01-22T15:17:16Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* 1. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd();&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
Egy megoldás, amely közel jó eredményt ad:&lt;br /&gt;
&lt;br /&gt;
Csúcspont árnyaló:&lt;br /&gt;
&lt;br /&gt;
void vertex(in float4 position		: POSITION,&lt;br /&gt;
            out float4 oPosition	: POSITION,&lt;br /&gt;
  	    out float4 posTexcoord	: TEXCOORD0)&lt;br /&gt;
{&lt;br /&gt;
	if (position.x == 0.0)                      //x irányú nyújtás&lt;br /&gt;
		position.x = -1.0;&lt;br /&gt;
&lt;br /&gt;
	if (position.y == 0.0)                      //y irányú nyújtás&lt;br /&gt;
		position.y = -1.0;&lt;br /&gt;
	&lt;br /&gt;
	oPosition = position;                       //végső pozíció kiadása (erre rajzol majd)&lt;br /&gt;
	posTexcoord = oPosition;                    //pozíció a fragmens shadernak&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Képpont árnyaló:&lt;br /&gt;
&lt;br /&gt;
void fragment(in float4 position	: TEXCOORD0,&lt;br /&gt;
	      out float4 oColor		: COLOR)&lt;br /&gt;
{&lt;br /&gt;
	float P = position.x * position.x + position.y * position.y;       //x&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; + y&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
	float innerR = 0.7 * 0.7;                                          //r&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
	float outerR = 0.9 * 0.9;                                          //R&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	if (P &amp;gt;= innerR &amp;amp;&amp;amp; P &amp;lt;= outerR)              //a pontnak az r sugarú körön kívül és az R sugarú körön belül kell lennie&lt;br /&gt;
		oColor = float4(1, 1, 1, 1);&lt;br /&gt;
	else&lt;br /&gt;
		oColor = float4(0, 0, 0, 1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Mivel a fragmens shader alapból nem kapja meg a pozíciókat, csak a textúrakoordinátákat, ezért trükközni kell egy kicsit. A vertex shaderből a módosított pozícióvektort visszaadom, mint egy textúrakoordinátát, így már elérhető a fragmens shaderből is. Azért kell mindenképpen átadni, mert a vertex shader csak a csúcspontokat kezeli, tehát az csak a négy koordinátát kapja meg, és nyilván a négy sarok nincs benne a gyűrűben, tehát ha ott végeznénk a számításokat, akkor az egész kép fekete lenne. A fragmens shader viszont az összes képpontot kezeli, így ott elvégezhető a számolás.&lt;br /&gt;
Ezzel a két programmal, a megadott vertexekkel a következő képet kaptam:&lt;br /&gt;
&lt;br /&gt;
[[:File:grafika_vertex_shader_korgyuru.png]]&lt;br /&gt;
&lt;br /&gt;
A hiba okát nem tudom, elvileg minden klappol. Javítás jöhet.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:12 (UTC)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&lt;br /&gt;
&lt;br /&gt;
b) Nevezzen meg egy Go folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&lt;br /&gt;
&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&lt;br /&gt;
&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Idő: 60 perc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175980</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175980"/>
		<updated>2014-01-22T15:12:52Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* 1. Feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd();&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
Egy megoldás, amely közel 100%-os eredményt ad:&lt;br /&gt;
&lt;br /&gt;
Csúcspont árnyaló:&lt;br /&gt;
&lt;br /&gt;
void vertex(in float4 position		: POSITION,&lt;br /&gt;
            out float4 oPosition	: POSITION,&lt;br /&gt;
  	    out float4 posTexcoord	: TEXCOORD0)&lt;br /&gt;
{&lt;br /&gt;
	if (position.x == 0.0)                      //x irányú nyújtás&lt;br /&gt;
		position.x = -1.0;&lt;br /&gt;
&lt;br /&gt;
	if (position.y == 0.0)                      //y irányú nyújtás&lt;br /&gt;
		position.y = -1.0;&lt;br /&gt;
	&lt;br /&gt;
	oPosition = position;                       //végső pozíció kiadása (erre rajzol majd)&lt;br /&gt;
	posTexcoord = oPosition;                    //pozíció a fragmens shadernak&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Képpont árnyaló:&lt;br /&gt;
&lt;br /&gt;
void fragment(in float4 position	: TEXCOORD0,&lt;br /&gt;
	      out float4 oColor		: COLOR)&lt;br /&gt;
{&lt;br /&gt;
	float P = position.x * position.x + position.y * position.y;       //x^2 + y^2&lt;br /&gt;
	float innerR = 0.7 * 0.7;                                          //r^2&lt;br /&gt;
	float outerR = 0.9 * 0.9;                                          //R^2&lt;br /&gt;
	&lt;br /&gt;
	if (P &amp;gt;= innerR &amp;amp;&amp;amp; P &amp;lt;= outerR)              //a pontnak az r sugarú körön kívül és az R sugarú körön belül kell lennie&lt;br /&gt;
		oColor = float4(1, 1, 1, 1);&lt;br /&gt;
	else&lt;br /&gt;
		oColor = float4(0, 0, 0, 1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Mivel a fragmens shader alapból nem kapja meg a pozíciókat, csak a textúrakoordinátákat, ezért trükközni kell egy kicsit. A vertex shaderből a módosított pozícióvektort visszaadom, mint egy textúrakoordinátát, így már elérhető a fragmens shaderből is. Azért kell mindenképpen átadni, mert a vertex shader csak a csúcspontokat kezeli, tehát az csak a négy koordinátát kapja meg, és nyilván a négy sarok nincs benne a gyűrűben, tehát ha ott végeznénk a számításokat, akkor az egész kép fekete lenne. A fragmens shader viszont az összes képpontot kezeli, így ott elvégezhető a számolás.&lt;br /&gt;
Ezzel a két programmal, a megadott vertexekkel a következő képet kaptam:&lt;br /&gt;
&lt;br /&gt;
[[:File:grafika_vertex_shader_korgyuru.png]]&lt;br /&gt;
&lt;br /&gt;
A hiba okát nem tudom, elvileg minden klappol. Javítás jöhet.&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 22., 15:12 (UTC)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&lt;br /&gt;
&lt;br /&gt;
b) Nevezzen meg egy Go folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&lt;br /&gt;
&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&lt;br /&gt;
&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Idő: 60 perc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=F%C3%A1jl:Grafika_vertex_shader_korgyuru.png&amp;diff=175979</id>
		<title>Fájl:Grafika vertex shader korgyuru.png</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=F%C3%A1jl:Grafika_vertex_shader_korgyuru.png&amp;diff=175979"/>
		<updated>2014-01-22T15:03:46Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;MsUpload&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175227</id>
		<title>SzgGrafVizsga20120613</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=SzgGrafVizsga20120613&amp;diff=175227"/>
		<updated>2014-01-14T18:15:23Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{GlobalTemplate|Infoalap|SzgGrafVizsga20120613}}&lt;br /&gt;
&lt;br /&gt;
==1. Feladat==&lt;br /&gt;
Írjon Cg nyelven olyan csúcspont-árnyaló és képpont-árnyaló programokat, amelyekkel az alábbi [[OpenGL]] kód egy teljes képernyőt feledő téglalapot rajzol.&lt;br /&gt;
&lt;br /&gt;
	glBegin(GL_QUADS);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(0.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 1.0f);&lt;br /&gt;
&lt;br /&gt;
		glVertex2f(1.0f, 0.0f);&lt;br /&gt;
&lt;br /&gt;
	glEnd;&lt;br /&gt;
&lt;br /&gt;
A képpont színe legyen fekete, kivéve egy (normalizált eszközkoordinátákban) origó középpontú, 0.7 belső sugarú és 0.2 széles körgyűrűben, ahol a szín legyen fehér.&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==2. Feladat==&lt;br /&gt;
Írjon C++ függvényt, ami pontosan meghatározza, hogy egy &#039;&#039;&#039;r0&#039;&#039;&#039; pontból *v* sebességgel kilőtt pontszerű gumilövedéknek _t_ idő múlva mi lesz a pozíciója. A lövedék egy síklapok határolta, konvex szobában pattog. A síklapok _N_ száma, &#039;&#039;&#039;ni&#039;&#039;&#039; normálvektorai és a tartalmazó síkok &amp;amp;#958;i origótól vett távolságai adottak. A normálvektorok a szoba belseje felé mutatnak, az origó a szobán belül van. A lövedék egyenes vonalban, egyenletes sebességgel mozog, amíg falnak nem ütközik. A falról visszapattan, de a sebesség falra merőleges komponensének 50%-át elveszti (a maradék 50% meg megfordul). Ne használjon közelítő, diszkrét idejű szimulációt, a feladatot sugárkövetési feladatként oldja meg!&lt;br /&gt;
&lt;br /&gt;
(15 pont)&lt;br /&gt;
&lt;br /&gt;
==Bónusz kérdések (1 pont darabja)==&lt;br /&gt;
a) Melyik a legtelítettebb szín és miért?&lt;br /&gt;
&lt;br /&gt;
b) Nevezzen meg egy Go folytonos interpoláló görbét, ami teljesíti a konvex burok tulajdonságait is!&lt;br /&gt;
&lt;br /&gt;
c) Mi a környezet-leképezés (environment mapping)?&lt;br /&gt;
&lt;br /&gt;
d) Mi a különbség a teljes visszaverődés és az ideális visszaverődés között?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Idő: 60 perc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Main.voros - 2012.06.13.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s_-_Vizsga,_2014.01.10.&amp;diff=175179</id>
		<title>Számítógépes grafika és képfeldolgozás - Vizsga, 2014.01.10.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s_-_Vizsga,_2014.01.10.&amp;diff=175179"/>
		<updated>2014-01-14T15:15:33Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ha esetleg elírtam valami, tessék javítani.&lt;br /&gt;
&lt;br /&gt;
== 1. feladat ==&lt;br /&gt;
Egy naperőmű tükörvezérlését programozod. Egy egyszerű, téglalap alakú síktükörről van szó, melynek helyzete t(tx,ty,tz). Ezen kívül ismered a nap helyzetét: d(dx,dy,dz), és az erőmű fókuszpontjáét is: f(fx,fy,fz). A tükör alaphelyzetben az x-y síkban van, mégpedig úgy, hogy a rövidebbik oldala az x, a hosszabbik oldala az y tengellyel párhuzamos. A feladat: olyan programot írni, amely kiszámítja a tükör forgatását vezérlő transzformációs mátrixot. A tükröt mindig olyan pozícióba kell forgatni, hogy a napsugarakat a fókuszpontba tükrözze, ha egy mód van rá úgy, hogy közben a tükör mindig függőleges állású legyen, tehát a rövidebbik oldala maradjon az x-y síkban. A programot pszeudonyelven kell megírni, melyben a következő vektorműveletek állnak rendelkezésre: két vektor összeadása, két vektor skaláris szorzása (?), vektor szorzása skalárral (?) (esetleg más is?). Ha egyéb vektorműveletre is szükség van, akkor az definiálandó vektoralgebrával. (12p)&lt;br /&gt;
Hogyan számítanád ki azt, hogy a tükör 600 nm-es hullámhosszon milyen intenzitással veri vissza a fényt? Képleteket tilos írni, csak elvi leírás kell, miből mivel mit és hogyan számítanál. (3p)&lt;br /&gt;
&lt;br /&gt;
== 2. feladat ==&lt;br /&gt;
Megadtak egy CG nyelvű kódot. Erre pontosan nem emlékszem, de adtak hozzá egy leírást is:&lt;br /&gt;
&lt;br /&gt;
A fenti CG kód akkor működik, ha a glEnable(GL_LIGTHING)-al engedélyeztük a világítást, a glEnable(GL_LIGHT0)-val engedélyeztük a 0-ás fényforrást, aminek irányfényforrásnak kell lennie, és a glEnable(GL_NORMALIZE) is be van kapcsolva. Ha mindez engedélyezve a van, akkor a kód diffúz árnyalást végez (csak azt). Ezt a kódot kell módosítani úgy, hogy glDisable(GL_NORMALIZE) esetben működjön, irány- és pontfényforrásra is működjön, valamint a Phong-féle (vigyázat, nem a Phong-Blinn-féle!) árnyalási modellt használja, és csak spekuláris árnyalást végezzen. A változtatásokat meg kell magyarázni! (15p)&lt;br /&gt;
&lt;br /&gt;
--[[Szerkesztő:Gabesz852|Gabesz852]] ([[Szerkesztővita:Gabesz852|vita]]) 2014. január 14., 15:15 (UTC)&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s_-_Vizsga,_2014.01.10.&amp;diff=175174</id>
		<title>Számítógépes grafika és képfeldolgozás - Vizsga, 2014.01.10.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s_-_Vizsga,_2014.01.10.&amp;diff=175174"/>
		<updated>2014-01-14T15:01:15Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* 2. feladat */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ha esetleg elírtam valami, tessék javítani.&lt;br /&gt;
&lt;br /&gt;
== 1. feladat ==&lt;br /&gt;
Egy naperőmű tükörvezérlését programozod. Egy egyszerű, téglalap alakú síktükörről van szó, melynek helyzete t(tx,ty,tz). Ezen kívül ismered a nap helyzetét: d(dx,dy,dz), és az erőmű fókuszpontjáét is: f(fx,fy,fz). A tükör alaphelyzetben az x-y síkban van, mégpedig úgy, hogy a rövidebbik oldala az x, a hosszabbik oldala az y tengellyel párhuzamos. A feladat: olyan programot írni, amely kiszámítja a tükör forgatását vezérlő transzformációs mátrixot. A tükröt mindig olyan pozícióba kell forgatni, hogy a napsugarakat a fókuszpontba tükrözze, ha egy mód van rá úgy, hogy közben a tükör mindig függőleges állású legyen, tehát a rövidebbik oldala maradjon az x-y síkban. A programot pszeudonyelven kell megírni, melyben a következő vektorműveletek állnak rendelkezésre: két vektor összeadása, két vektor skaláris szorzása (?), vektor szorzása skalárral (?) (esetleg más is?). Ha egyéb vektorműveletre is szükség van, akkor az definiálandó vektoralgebrával. (12p)&lt;br /&gt;
Hogyan számítanád ki azt, hogy a tükör 600 nm-es hullámhosszon milyen intenzitással veri vissza a fényt? Képleteket tilos írni, csak elvi leírás kell, miből mivel mit és hogyan számítanál. (3p)&lt;br /&gt;
&lt;br /&gt;
== 2. feladat ==&lt;br /&gt;
Megadtak egy CG nyelvű kódot. Erre pontosan nem emlékszem, de adtak hozzá egy leírást is:&lt;br /&gt;
&lt;br /&gt;
A fenti CG kód akkor működik, ha a glEnable(GL_LIGTHING)-al engedélyeztük a világítást, a glEnable(GL_LIGHT0)-val engedélyeztük a 0-ás fényforrást, aminek irányfényforrásnak kell lennie, és a glEnable(GL_NORMALIZE) is be van kapcsolva. Ha mindez engedélyezve a van, akkor a kód diffúz árnyalást végez (csak azt). Ezt a kódot kell módosítani úgy, hogy glDisable(GL_NORMALIZE) esetben működjön, irány- és pontfényforrásra is működjön, valamint a Phong-féle (vigyázat, nem a Phong-Blinn-féle!) árnyalási modellt használja, és csak spekuláris árnyalást végezzen. A változtatásokat meg kell magyarázni! (15p)&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s_-_Vizsga,_2014.01.10.&amp;diff=175164</id>
		<title>Számítógépes grafika és képfeldolgozás - Vizsga, 2014.01.10.</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s_-_Vizsga,_2014.01.10.&amp;diff=175164"/>
		<updated>2014-01-14T14:00:59Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: Új oldal, tartalma: „Ha esetleg elírtam valami, tessék javítani.  == 1. feladat == Egy naperőmű tükörvezérlését programozod. Egy egyszerű, téglalap alakú síktükörről van sz…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ha esetleg elírtam valami, tessék javítani.&lt;br /&gt;
&lt;br /&gt;
== 1. feladat ==&lt;br /&gt;
Egy naperőmű tükörvezérlését programozod. Egy egyszerű, téglalap alakú síktükörről van szó, melynek helyzete t(tx,ty,tz). Ezen kívül ismered a nap helyzetét: d(dx,dy,dz), és az erőmű fókuszpontjáét is: f(fx,fy,fz). A tükör alaphelyzetben az x-y síkban van, mégpedig úgy, hogy a rövidebbik oldala az x, a hosszabbik oldala az y tengellyel párhuzamos. A feladat: olyan programot írni, amely kiszámítja a tükör forgatását vezérlő transzformációs mátrixot. A tükröt mindig olyan pozícióba kell forgatni, hogy a napsugarakat a fókuszpontba tükrözze, ha egy mód van rá úgy, hogy közben a tükör mindig függőleges állású legyen, tehát a rövidebbik oldala maradjon az x-y síkban. A programot pszeudonyelven kell megírni, melyben a következő vektorműveletek állnak rendelkezésre: két vektor összeadása, két vektor skaláris szorzása (?), vektor szorzása skalárral (?) (esetleg más is?). Ha egyéb vektorműveletre is szükség van, akkor az definiálandó vektoralgebrával. (12p)&lt;br /&gt;
Hogyan számítanád ki azt, hogy a tükör 600 nm-es hullámhosszon milyen intenzitással veri vissza a fényt? Képleteket tilos írni, csak elvi leírás kell, miből mivel mit és hogyan számítanál. (3p)&lt;br /&gt;
&lt;br /&gt;
== 2. feladat ==&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
	<entry>
		<id>https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s&amp;diff=175163</id>
		<title>Számítógépes grafika és képfeldolgozás</title>
		<link rel="alternate" type="text/html" href="https://vik.wiki/index.php?title=Sz%C3%A1m%C3%ADt%C3%B3g%C3%A9pes_grafika_%C3%A9s_k%C3%A9pfeldolgoz%C3%A1s&amp;diff=175163"/>
		<updated>2014-01-14T13:44:53Z</updated>

		<summary type="html">&lt;p&gt;Gabesz852: /* Vizsga */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TODO}}&lt;br /&gt;
&lt;br /&gt;
[[TargynevAjanlas|Ajánlott rövidítés]]: grafika&lt;br /&gt;
&lt;br /&gt;
{{Tantárgy&lt;br /&gt;
|targykod=VIIIA316&lt;br /&gt;
|nev=Számítógépes grafika &amp;lt;br /&amp;gt; és képfeldolgozás&lt;br /&gt;
|szak=info&lt;br /&gt;
|kredit=4&lt;br /&gt;
|felev=5&lt;br /&gt;
|tanszék=IIT&lt;br /&gt;
|kiszh=nincs&lt;br /&gt;
|vizsga=írásbeli&lt;br /&gt;
|nagyzh=nincs&lt;br /&gt;
|hf=5 db&lt;br /&gt;
|tad=https://www.vik.bme.hu/kepzes/targyak/VIIIA316/&lt;br /&gt;
|targyhonlap=http://cg.iit.bme.hu/portal/oktatott-targyak/szamitogepes-grafika-es-kepfeldolgozas&lt;br /&gt;
|levlista=grafika{{Kukac}}sch.bme.hu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==Követelmények==&lt;br /&gt;
&lt;br /&gt;
===Előtanulmányi rend===&lt;br /&gt;
[[Bevezetés a számításelméletbe I.|Bevezetés a számításelméletbe 1.]] tárgyból kredit megszerzése szükséges a tárgy felvételéhez és legkorábban a [[Szoftver labor III.|Szoftver laboratórium 3.]] tárggyal vehető fel együtt.&lt;br /&gt;
&lt;br /&gt;
===A szorgalmi időszakban===&lt;br /&gt;
*Az &#039;&#039;&#039;aláírás feltételei:&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;Házi feladatok leadása&#039;&#039;&#039;. 5 db kis házi feladat van, ezekből 3-at kell sikeresen megcsinálni és az erre kijelölt [https://cg.iit.bme.hu/grafhazi/ portálon] feltölteni. Opcionálisan, az oktatóval előre egyeztetett módon nagy házi feladat is készíthető, mely kiválthat két kis házi feladatot.&lt;br /&gt;
**&#039;&#039;&#039;Házi feladatok védése&#039;&#039;&#039;. A védés arra szolgál, hogy megbizonyosodjanak róla, hogy Te írtad a beadott házijaidat. Ennek megfelelően ez nem egy vizsga a teljes anyagból, hanem a háziban alkalmazott megoldásaidat kell tudnod elmagyarázni és azzal kapcsolatban kérdésekre felelni. Ha tényleg te írtad meg a házikat, akkor ez semmilyen problémát nem jelenthet.&lt;br /&gt;
*&#039;&#039;&#039;Megajánlott jegy:&#039;&#039;&#039; van, 5 kiemelkedően jó házi feladat leadása és azok megvédése szükséges a megajánlott ötöshöz. A sikeres védéshez itt már szükséges a tárgy teljes anyagának (beleértve a sugárkövetést és az árnyalóprogramozást is) az implementációs részleteken túlmutató, alapos ismerete, amely alapján a védésen úgy ítélik meg, hogy a vizsgán is teljes bizonyossággal ötös születne.&lt;br /&gt;
*&#039;&#039;&#039;Pótlási lehetőségek:&#039;&#039;&#039;&lt;br /&gt;
**A házi feladatok nem pótolhatók.&lt;br /&gt;
*&#039;&#039;&#039;Elővizsga:&#039;&#039;&#039; nincs.&lt;br /&gt;
&lt;br /&gt;
===A vizsgaidőszakban===&lt;br /&gt;
*&#039;&#039;&#039;Vizsga:&#039;&#039;&#039; írásbeli, 30 pontot lehet rajta elérni, min. 40% (12 pont) kell az elégségeshez.&lt;br /&gt;
**Előfeltétele: az aláírás megléte.&lt;br /&gt;
&lt;br /&gt;
===Félévvégi jegy===&lt;br /&gt;
*A jegyet a vizsga (V) és a házi feladatok (HF&amp;lt;sub&amp;gt;i&amp;lt;/sub&amp;gt;) összpontszáma (P) adja a következő módon:&lt;br /&gt;
*&amp;lt;math&amp;gt;P= V + \min\left(V,\sum\limits_{i= 1}^5 HF_i\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
*&#039;&#039;Tehát ha a házik eredménye rosszabb, mint a vizsgáé, akkor vizsga és házik összpontszáma adja a jegyet, ha jobb, akkor csak a vizsgapontszám.&lt;br /&gt;
*Ponthatárok:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!P!!Jegy&lt;br /&gt;
|-&lt;br /&gt;
| 0 - 23 || 1&lt;br /&gt;
|-&lt;br /&gt;
|24 - 29 || 2&lt;br /&gt;
|-&lt;br /&gt;
|30 - 35 || 3&lt;br /&gt;
|-&lt;br /&gt;
|36 - 41 || 4&lt;br /&gt;
|-&lt;br /&gt;
|42 - 60 || 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Segédanyagok ==&lt;br /&gt;
&lt;br /&gt;
Előadásidák:&lt;br /&gt;
 &lt;br /&gt;
* [[Media:grafika_foliak_2013osz_merged.pdf|2013 őszi félév fóliái összefűzve]]&lt;br /&gt;
* [[Media:Grafika_diasor_szirmayfull.pdf|Nyomtatóbarát dia összeválogatás]]&lt;br /&gt;
* [[SzgGrafEA2010_Tavasz|2009/2010 tavaszi félév diái]]&lt;br /&gt;
&lt;br /&gt;
Összefoglalók:&lt;br /&gt;
&lt;br /&gt;
* [[SzgGrafHaziTutorial|Házikhoz szükséges elmélet összefoglaló]] (egyelőre még fejlesztés alatt)&lt;br /&gt;
* [[Grafika_hibakezeles|Hibakezelés]]&lt;br /&gt;
&lt;br /&gt;
Könyv (csak érdeklődőknek, ez sokkal részletesebb, mint ami a tárgyhoz kell):&lt;br /&gt;
&lt;br /&gt;
* [[Media:Grafika_jegyzet_OpenGL.pdf|Juhász Imre: OpenGL]]&lt;br /&gt;
&lt;br /&gt;
=== Videó ===&lt;br /&gt;
A 2009 őszi kurzusról videofelvétel készült, elérhető a [http://videotorium.hu/hu/categories/details/1083,Szamitogepes_grafika Videotorium]-on streamelve, vagy a [http://video.bme.hu/index.php?act=vid&amp;amp;tkod=BMEVGR régi oldalán] egyben letölthető. Egyes előadásokról nem készült felvétel (1,3,4)&lt;br /&gt;
&lt;br /&gt;
==  Házi ==&lt;br /&gt;
A tárgy arról szól, hogy ezeket meg tudod-e írni. Az első órán el szokott hangzani, hogy vagy 5-sel, vagy 1-sel szeretik értékelni a munkát, kettest csak az kap akit már sok év alatt sem sikerült megtanítani a tárgyra, de a tudása kezd körvonalazódni. Szóval ez a rész amire nagyon szükséged lesz!&lt;br /&gt;
&lt;br /&gt;
Korábbi házi feladat kiírások: [[Számítógépes_grafika_és_képfeldolgozás_házi_feladat_kiírások|Házi feladat kiírások]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Feladatbeadó rendszer: [http://cg.iit.bme.hu/grafhazi cg.iit.bme.hu/grafhazi]&lt;br /&gt;
&lt;br /&gt;
===Előkészületek===&lt;br /&gt;
Mielőtt elkezdenéd be kell lőni a fejlesztőkörnyezetet:&lt;br /&gt;
* [[SzgGrafIDEs]] &amp;lt;&amp;lt; Ez az ajánlott olvasmány&lt;br /&gt;
* [http://mockid.net/?p=5 xCode OSX] &amp;lt;&amp;lt; Illetve ez&lt;br /&gt;
* [[SzgGrafLinux|Linux]] &amp;lt;&amp;lt; Esetleg ez&lt;br /&gt;
* [http://www.astahost.com/info.php/installing-glut-dev-c_t14192.html Dev C++ (opensource) + GLUT]&lt;br /&gt;
* [http://www.ferdychristant.com/blog/articles/DOMM-72MPPE *LINUX*+Eclipse+GLUT]&lt;br /&gt;
* [http://paulsolt.com/GLUT/ Windows+Eclipse+GLUT]&lt;br /&gt;
* [http://www.sci.brooklyn.cuny.edu/~goetz/codeblocks/glut/ CodeBlocks+GLUT Win]&lt;br /&gt;
&lt;br /&gt;
=== Tippek a házikhoz ===&lt;br /&gt;
&lt;br /&gt;
Érdemes mind az 5 házit elfogadottra megcsinálni. &lt;br /&gt;
A házikat érdemes a kiadás napjától emészteni, és a leadás napján az a jó, ha már csak nagyon kicsi hibák vannak benne, mert a beadórendszer nagyon le tud lassulni. A határidő előtt 6 órával akárhogy áll töltsd fel, mert rossz azon elbukni 1-1 házit hogy bent maradt egy printf, csak már nem láttad az eredményt mert lejárt a határidő.&lt;br /&gt;
&lt;br /&gt;
Ha a határidő előtt 1-2 nappal akarod elkezdeni a munkát, és az anyagot még nem nagyon érted, akkor bele se kezdj egyedül.&lt;br /&gt;
&lt;br /&gt;
===Első házi===&lt;br /&gt;
Ez általában valamilyen 2D rajzolásos &amp;quot;játék&amp;quot;. Amit a házi megtanít, az az, hogy hogy kell a különböző koordinátarendszereket egymásnak megfeleltetni. Érdemes felfrissíteni a C++ tudást, mert Java után az emberek el szokták felejteni a nyelv sajátosságait.&lt;br /&gt;
&lt;br /&gt;
Kapcsolódó segédanyagok:&lt;br /&gt;
* [http://www.inf.u-szeged.hu/oktatas/jegyzetek/KubaAttila/opengl_html/szak.html 2D-s rajzolás kezdőknek]&lt;br /&gt;
&lt;br /&gt;
===Második házi===&lt;br /&gt;
Ez valamilyen görberajzolási feladat szokott lenni, érdemes a jegyzeteket, könyveket elővenni. Nem szabad mindig az internetre hagyatkozni, a feladatok többnyire úgy vannak megfogalmazva, hogy a neten található kódok nem húzhatóak rájuk.&lt;br /&gt;
&lt;br /&gt;
Kapcsolódó segédanyagok:&lt;br /&gt;
* [http://www.geometrictools.com/LibMathematics/CurvesSurfacesVolumes/CurvesSurfacesVolumes.html Görbék minden mennyiségben]&lt;br /&gt;
* [[Média:Grafika_jegyzet_catmull-rom.pdf‎|Catmull-Rom tutorial]]&lt;br /&gt;
* [http://www.rhino3d.com/nurbs.htm NURBS magyarázat]&lt;br /&gt;
&lt;br /&gt;
=== Harmadik házi ===&lt;br /&gt;
Sugárkövetés. Ez megy a legkevésbé az embereknek, pedig ezzel lehet a legszebb képeket előállítani. Erősen igényel térgeometriai ismereteket.&lt;br /&gt;
&lt;br /&gt;
Kapcsolódó segédanyagok:&lt;br /&gt;
&lt;br /&gt;
* Sugárkövetés alapok: [http://www.linuxvilag.hu/content/files/cikk/69/cikk_69_16_21.pdf 1. rész] [http://linuxvilag.hu/content/files/cikk/72/cikk_72_29_35.pdf 2. rész]&lt;br /&gt;
* [[Média:Grafika_tutorial_20110410_Raytracing_-_Farkas_Adam_Attila_-wolfee-_levlistarol_(rt).pdf|Sugárkövetés tutorial (by Wolfee, 2011.04.11)]] (A benne lévő kódokat semmiképp NE használjátok fel egy az egyben a házi feladatokban (ld. plágiumgyanú), az anyag csupán iránymutatás, a megértést segíti!!)&lt;br /&gt;
** a szerző (Farkas Ádám Attila) [https://lists.sch.bme.hu/wws/arc/grafika/2011-09/msg00052.html levlistán, 2011.09.09-én felhívta a figyelmet] Dr. Szirmay-Kalos László kóddal kapcsolatos aggályaira: &#039;&#039;&amp;quot;a pdf-fel tényleg óvatosan bánjatok, a legfőbb kifogások a Tanár Úr részéről: Kamerakezelés. én pont-szerű kamerával dolgoztam annó. na nem ez a matematikailag korrekt módja a dolognak, de a pdf-be megteszi. Színkezelés. én 0..255ös skálával dolgoztam (amikor számolni kellett vele, akkor normáltam persze), de T. Ú. azt mondta, hoyg végig 0..1 tartománnyal kéne számolni.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Negyedik házi ===&lt;br /&gt;
Az első 3D-s OpenGL feladat. Tipikusan a korábbi házikhoz kellő elméletre itt is visszaköszönhetnek, pl görbéket elég gyakran kell használni ebben a háziban is. Ezt a házit érdemes jól megcsinálni mert az 5. erre épül.&lt;br /&gt;
&lt;br /&gt;
Kapcsolódó segédletek (angolul):&lt;br /&gt;
* [http://www.falloutsoftware.com/tutorials/gl/gl8.htm Megvilágítás]&lt;br /&gt;
* [http://www.gamedev.net/reference/articles/article947.asp Textúrázás] &lt;br /&gt;
&lt;br /&gt;
=== Ötödik házi ===&lt;br /&gt;
A negyedik házi továbbfejlesztése, általában animációval, mozgással, fizikával. Itt általában új grafikai elemekre már nincs szükség.&lt;br /&gt;
&lt;br /&gt;
=== Védés ===&lt;br /&gt;
&lt;br /&gt;
A házikat nem elég megírni, meg is kell tudni védeni. A védésen nagyrészt azt kell bizonyítanod, hogy a házikat tényleg te írtad, de persze emelett az anyag többi részébe is belekérdezhetnek. A védés általában a pótlási héten van. Nem mindenkit hívnak be (csak kb minden harmadik embert). Ha nem hívtak be, az olyan, mint ha minden házidat megvédted volna. &lt;br /&gt;
&lt;br /&gt;
Tippek a védésre:&lt;br /&gt;
&lt;br /&gt;
Védésen örülnek neki amikor megkérdezik, hogy &amp;quot;na melyikből kérdezhetek?&amp;quot;, és mondod, hogy bármelyikből.&lt;br /&gt;
Védésre mindenképpen szedd össze az 5 házidat, és előtte legalább 1 órát tölts el a kódok felelevenítésével, mert bár akkor amikor írtad valószínű értetted, ez nem biztos hogy reflexből tudsz válaszolni 1-1 kérdésre, nem árt rákészülni picit, végülis ez egy szóbeli &amp;quot;vizsga&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Házi szépségverseny ===&lt;br /&gt;
Általában a sugárkövetéses (és néha az 5.) házira hirdetnek meg szépségversenyt, a helyezések plussz pontot érnek. A 2013 őszi félévben egy 3. helyezés 0.5, egy 2. helyezés 1, míg az első helyezettnek 1.5 elfogadott házi lett a jutalma. A versenyre egy a háziról készült youtube videóval lehet nevezni, az előadónak küldött e-mailel. A versenyeken jó helyezés eléréséhez általában a specifikáció teljeseítése még nem elég, valami pluszt is tegyél bele, ha nyerni akarsz. &lt;br /&gt;
&lt;br /&gt;
== Vizsga ==&lt;br /&gt;
* 2013 tavaszi félév&lt;br /&gt;
** [[Számítógépes grafika és képfeldolgozás - Vizsga, 2013.06.05.|2013-06-05]]&lt;br /&gt;
** [[Számítógépes grafika és képfeldolgozás - Vizsga, 2013.06.19.|2013-06-19]]&lt;br /&gt;
&lt;br /&gt;
* 2013 őszi félév&lt;br /&gt;
** [[Számítógépes grafika és képfeldolgozás - Vizsga, 2014.01.03.|2014-01-03]]&lt;br /&gt;
** [[Számítógépes grafika és képfeldolgozás - Vizsga, 2014.01.10.|2014-01-10]]&lt;br /&gt;
&lt;br /&gt;
=== Segédletek a vizsgához ===&lt;br /&gt;
&lt;br /&gt;
* [[SzgGrafVizsgaTanacsok|Tanácsok vizsgára]] (Németh Balázs)&lt;br /&gt;
* &#039;&#039;&#039;[[SzgGrafVizsga|Vizsgakérdések kidolgozása]]&#039;&#039;&#039;&lt;br /&gt;
* [[SzgGrafKerdesKidolg|Kérdések kidolgozása]]&lt;br /&gt;
* [http://www.renyi.hu/~endre/csoportok/9.szakasz.xhtml Projektív sík transzformációi] &lt;br /&gt;
* [[GrafShader|Shaderek]]&lt;br /&gt;
* [[Média:Grafika_jegyzet_2011_kvaternio.pdf|Kvaterniós feladat]]&lt;br /&gt;
* http://www.eet.bme.hu/~szekely/ (Dr. Székely Vladimír; [http://www.eet.bme.hu/~szekely/szg4.ppt Fourier-módszerek a képfeldolgozásban], [http://www.eet.bme.hu/~szekely/szg5.ppt Képfeldolgozási esettanulmányok, képfájlformátumok])&lt;br /&gt;
&lt;br /&gt;
== Kedvcsináló ==&lt;br /&gt;
&lt;br /&gt;
* A programozásnak talán ez a legélvezesebb része, hiszen amit csinálsz, annak látványos eredménye is van.&lt;br /&gt;
* A legtöbb programozóban felmerül, hogy milyen jó lenne parancssori programok helyett inkább játékot írni. Itt nem csak, hogy lehetőséged van rá, de durván erre kapod a jegyet.&lt;br /&gt;
&#039;&#039;&#039;Mottók:&#039;&#039;&#039; &lt;br /&gt;
* A terroristák manapság főleg OpenGL függvényeket lopnak. Abban van az igazi biznisz.&lt;br /&gt;
* Az Avatar című animációs film már állítólag majdnem megajánlott 4-est ért, de sajnos nem volt mellé kész a négy házi feladat.&lt;br /&gt;
* Bal kezünk a billentyűzeten, jobb kezünkben az egér, a lábunk között meg szorongatjuk a joystickot.&lt;br /&gt;
* &#039;&#039;&amp;quot;Ha azt kérdeznénk önöktől vizsgán, amit előadáson elmondunk, akkor önök nem a Műszaki Egyetemre járnának, hanem a Színművészeti Főiskolára.&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Egyéb információk==&lt;br /&gt;
&lt;br /&gt;
=== Angol nyelvű, többnyire nagyon részletes tutorialok érdeklődőknek ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.videotutorialsrock.com/ VideoTutorialsRock]. Hasznos kódok és tutorialok az abszolút kezdőknek. Sok képpel és magyarázattal.&lt;br /&gt;
* [http://nehe.gamedev.net/ NeHe]. Alapmű, viszont a WinAPI-s cuccokat érdemes belőle kihagyni. A példák végén általában van GLUT-os megvalósítás is.&lt;br /&gt;
* [http://www.lighthouse3d.com/tutorials/opengl-short-tutorials/ Lighthouse 3D]&lt;br /&gt;
&lt;br /&gt;
===Ajánlott olvasmányok===&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.sch.bme.hu/images/a/ae/Grafika_jegyzet_OpenGL.pdf Juhász Imre: OpenGL &amp;amp;mdash; mobiDIÁK könyvtár, 2005.12.30.]&lt;br /&gt;
* Dr. Szirmay-Kalos László, Antal György, Csonka Ferenc: Háromdimenziós grafika, animáció és játékfejlesztés &amp;amp;mdash; ComputerBooks, 2003 (Ez a &amp;quot;sünis könyv&amp;quot;, lásd könyvrendelés lentebb)&lt;br /&gt;
* Dr. Szirmay-Kalos László: Számítógépes grafika &amp;amp;mdash; ComputerBooks, 1999&lt;br /&gt;
* Az előző könyv 1999-es kiadása. A fraktálokról szóló fejezet csak ebben van benne. Egyébként az új kiadást érdemes elolvasni, mert sokkal részletesebben és érthetőbben magyarázza el a dolgokat. Ingyenesen letölthető [http://www.iit.bme.hu/~szirmay/grafika/graf.pdf innen].&lt;br /&gt;
* Székely Vladimír: Képfeldolgozás (55067) &amp;amp;mdash; Műegyetemi Kiadó, 2007&lt;br /&gt;
&lt;br /&gt;
=== Könyvrendelés (2013) ===&lt;br /&gt;
A kiadó szerint a könyv elfogyott, utánnyomás nem lesz!&lt;br /&gt;
[[Kategória:Infoalap]]&lt;/div&gt;</summary>
		<author><name>Gabesz852</name></author>
	</entry>
</feed>