*   >> Læs Uddannelse artikler >> science >> programming

Papervision 3D Programmering Tutorial - quadtree Renderer

SE DEMODOWNLOAD KODEN

Et almindeligt problem med en software 3D-gengivelse er at beslutte den rækkefølge, som trekanter er tegnet. Hvorfor er dette vigtigt? Det er vigtigt, fordi disse trekanter længst væk fra kameraet skal trækkes først, så dem tættere på kameraet kan trække over toppen af ​​dem.

Forestil dig var at male et hus stående alene i et felt mod et bjerg kulisse . Den første ting du ville male er himlen, og derefter bjergene. Dette vil give dig en kulisse. Til denne scene ville du male på området, og de træer bag huset.

Så du ville male huset, efterfulgt af træerne i foran huset. Det er bare almindelig sund fornuft: disse objekter tættest på beskueren skal males sidste, og derfor malet over de fjernere objekter. Tænk, hvis du malede huset først og bjergene sidste - du ville male bjergene lige over huset og ikke se huset overhovedet

Rendering en 3D-scene er meget lig maleri.. På samme måde, som de fjernere bjerge er malet først og derefter huset er malet over toppen af ​​dette billede, bør de fjerneste polygoner, der udgør scenen gøres før dem tættere på kameraet.


Det virker som et simpelt koncept ret? Men hvad med polygoner, der skærer hinanden? Kig på det markerede område på billedet nedenfor.


Her har vi et vertikalt plan skærer et vandret plan. Hvem står bag hvem? Svaret er, at flyene er både foran og bagved hinanden på samme tid. Og som du kan se, er standard Papervision renderer ikke håndtere denne situation meget godt. Dette skyldes, Papervision tildeler en enkelt værdi til hver polygon som repræsenterer det dybde i den scene.

Naturligvis er dette enkelt værdi kan ikke repræsentere det faktum, at en polygon kan være både bag og foran en anden på samme tid, hvilket fører til situationen i skærmbillede: ene polygon er beregnet til at være bag (eller foran), og gengives som sådan.

Nu tager et kig på denne screenshot.


Læg mærke forskellen? Det vandrette plan skærer nu det lodrette plan, som du ville forvente. Dette er takket være QuadrantRenderEngine: en ny renderer i Papervision, der vil splitte krydsende polygoner, så de er formelt korrekt.

Du vil også bemærke, at ud over de polygoner skærende korrekt, at det lodrette plan også er blevet delt op i flere mindre polygoner. Dette er nødvendigt for rendering processen, men disse ekstra polygoner har den ulempe, at pådrage en performance omkostninger.

I demo programmet kan du skifte mellem de basale og

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.