Renderer Class Reference
#include <Renderer.h>
List of all members.
Detailed Description
Razred Renderer predstavlja apstrakciju sustava za iscrtavanje. Sama implementacija parsiranja grafa scene, primjene odgovarajućih transformacija te konačnog prijenosa podataka za iscrtavanje je ostvarena ugrađenom OSG-ovom funkcionalnošću.
Međutim, postupak je proširen vlastitim shader programima. Na taj način, omogućeno je kvalitetno per-pixel osvjetljenje (klasičnim Blinn-Phong modelom), te dodatni efekti poput prozirnosti i highlight-a objekata.
Također, za implementaciju nightvision mode-a, potreban je dodatan postprocessing prolaz, koji obrađuje već iscrtanu sliku, primjenjujući odgovarajući filtar. Ovo je ostvareno proširivanjem početnog grafa scene dvijema dodatnim kamerama. Prva kamera iscrtava početni graf scene, i to u teksturu jednakih dimenzija kao prozor za iscrtavanje. Druga kamera iscrtava teksturirani pravokutnik preko cijelog ekrana. Naravno, tekstura tog pravokutnika je dobivena obradom teksture koju generira prva kamera, a što je sve implementirano shader programima.
Opisana proširenja su implementirana pomoćnim razredima ForwardPass i PostEffectPass, koji enkapsuliraju detalje kao što su generiranje i prijenos tekstura između prolaza, itd.
Constructor & Destructor Documentation
Member Function Documentation
osg::Camera * Renderer::getActiveCamera |
( |
|
) |
|
double Renderer::getFramesPerSecond |
( |
|
) |
|
osg::Camera * Renderer::getMasterCamera |
( |
|
) |
|
bool Renderer::getNightVision |
( |
|
) |
|
osgViewer::Viewer * Renderer::getViewer |
( |
|
) |
|
void Renderer::notify |
( |
Observable * |
observable |
) |
[virtual] |
void Renderer::renderScene |
( |
|
) |
|
void Renderer::resizeView |
( |
|
) |
|
void Renderer::setNightVision |
( |
bool |
status |
) |
|
Member Data Documentation
The documentation for this class was generated from the following files:
- C:/Users/Robert/Documents/Visual Studio 2008/Projects/ferprojekt/TerrainEditor/TerrainEditor/Renderer.h
- C:/Users/Robert/Documents/Visual Studio 2008/Projects/ferprojekt/TerrainEditor/TerrainEditor/Renderer.cpp