*   >> Lezen Onderwijs artikelen >> science >> programming

Papervision 3D Programming Tutorial - Quadtree Renderer

Bekijk de DEMODOWNLOAD DE CODE

Een veelvoorkomend probleem met een software-3D-weergave is het bepalen van de volgorde waarin de driehoeken worden getekend. Waarom is dit belangrijk? Het is belangrijk omdat die driehoeken die het verst van de camera moet eerst worden getrokken, dus die dichter bij de camera kan trekken over de top van hen.

Stel je voor dat je het schilderen van een huis staan ​​in een veld tegen een berg achtergrond . Het eerste wat je zou schilderen is de hemel, en dan de bergen. Dit zou een achtergrond geven.

Om deze scène zou je het veld en die bomen achter het huis te schilderen. Dan zou je het huis, gevolgd door de bomen aan de voorkant van het huis te schilderen. Dit is gewoon gezond verstand: de objecten die het dichtst bij de kijker moet laatst geschilderd worden, en dus schilderde over de verder weg gelegen objecten. Stel je voor dat je het huis eerst geschilderd en de bergen laatste - zou je de bergen schilderen rechts over het huis en het huis niet zien op alle

Het teruggeven van een 3D-scène is zeer vergelijkbaar met de schilderkunst..

Op dezelfde manier dat de meer afgelegen bergen en vervolgens het huis is geschilderd over de bovenkant van die afbeelding zijn geschilderd, zou de meest afgelegen polygonen die deel uitmaken van de scène voor die dichter bij de camera worden weergegeven.

Het lijkt een eenvoudig concept toch? Maar hoe zit het met polygonen die elkaar kruisen? Kijk naar het gemarkeerde gebied in de afbeelding hieronder.

Hier hebben we een verticaal vlak snijdt een horizontaal vlak. Wie zit er achter wie? Het antwoord is dat de vlakken zowel voor als achter elkaar tegelijk.

En zoals je kunt zien, is de standaard Papervision renderer niet omgaan met deze situatie heel goed. Dit komt omdat Papervision wijst een enkele waarde voor elke veelhoek overeenkomende met het diepte in de scene. Uiteraard enkele waarde kan vertegenwoordigen dat een veelhoek kan zowel achter en voor een andere op hetzelfde moment, waardoor de toestand in het screenshot: een veelhoek berekend achter (of voor) en wordt teruggegeven als zodanig.

Neem nu een kijkje op deze screenshot.

Let op het verschil? Het horizontale vlak snijdt nu het verticale vlak zoals je zou verwachten.

Dit is te danken aan de QuadrantRenderEngine: een nieuwe renderer in Papervision dat zal splitsen kruisende polygonen, zodat ze correct worden opgesteld. U zult ook zien dat, naast de veelhoeken goed kruisende, dat het verticale vla

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.