In computergraphics verwijzen "venster" en "viewport" naar verschillende rechthoekige gebieden die betrokken zijn bij het weergeven van een scène. Ze hebben betrekking op de transformatie van de wereldcoördinaten van je scène naar de pixels op het scherm. Zie het alsof je door een raam naar een groter tafereel (de wereld) kijkt.
* Venster: Dit is een rechthoekig gebied in *wereldcoördinaten* dat het gedeelte van de scène definieert dat wordt weergegeven. Het wordt gespecificeerd in de eenheden van het coördinatensysteem van uw scène (bijvoorbeeld meters, pixels in een 2D-afbeelding). In wezen zeg je:"Ik wil de wereld alleen binnen dit kader laten zien."
* Kijkpoort: Dit is een rechthoekig gebied in *schermcoördinaten* (pixels) waar de inhoud van het venster wordt weergegeven. Het wordt gedefinieerd door de pixelcoördinaten op uw scherm of weergaveapparaat. Het specificeert het gebied *op het scherm* waar de afbeelding zal worden getekend. Je zegt:"Ik wil de afbeelding uit het venster in dit gedeelte van mijn scherm plaatsen."
Analogie:
Stel je voor dat je door een camera kijkt.
* Het venster is het gedeelte van de scène dat zichtbaar is door de cameralens. U kunt in- of uitzoomen (de venstergrootte wijzigen) om verschillende delen van de scène te zien.
* Het kijkvenster is de grootte en locatie van het beeld dat wordt weergegeven op het scherm van uw camera of in de zoeker. Dit kan het hele scherm zijn, of een kleiner deel ervan.
In code (conceptueel):
Laten we zeggen dat uw wereldcoördinaten variëren van (0,0) tot (100.100).
* U kunt een `venster` definiëren van (20, 20) tot (80, 80), wat betekent dat u alleen het centrale gedeelte van uw scène wilt weergeven.
* Uw `viewport` kan het volledige scherm beslaan (bijvoorbeeld 0 tot 800 pixels breed, 0 tot 600 pixels hoog). De afbeelding uit het venster (20,20) tot (80,80) in wereldcoördinaten wordt in kaart gebracht en geschaald zodat deze in deze viewport van 800x600 pixels past.
Transformatie:
Het weergaveproces omvat het transformeren van de coördinaten van objecten binnen het venster naar hun overeenkomstige pixellocaties binnen de kijkpoort. Dit omvat een transformatiematrix die de inhoud van het venster schaalt, vertaalt en mogelijk roteert zodat deze in de viewport past. Dit wordt in 3D-graphics vaak een *projectietransformatie* genoemd.
Kortom:het venster selecteert *welk* deel van de scène dat moet worden weergegeven, en de viewport bepaalt *waar* en *hoe groot* dat deel op het scherm wordt weergegeven. |