Post

Visualizzazione dei post con l'etichetta Rendering

VTK Textured Map Plane + Image Data

Ref: https://vtk.org/Wiki/VTK/Examples/Cxx/Visualization/TextureMapPlane   Ref: https://vtk.org/Wiki/VTK/Examples/Cxx/Visualization/TextureMapImageData  ...    vtkImageCanvasSource2D *imageSource; vtkNEW(imageSource);     imageSource->SetScalarTypeToUnsignedChar();     imageSource->SetExtent(0, 10, 0, 10, 0, 0);     imageSource->SetNumberOfScalarComponents(3);     imageSource->SetDrawColor(127, 255, 100);     imageSource->FillBox(0, 10, 0, 10);     imageSource->SetDrawColor(20, 20, 20);     imageSource->DrawSegment(0, 0, 9, 9);     imageSource->DrawSegment(9, 0, 0, 9);     imageSource->Update();         texture->SetInput(imageSource->GetOutput());     // Create a plane     vtkPlaneSource *plane; vtkNEW(plane);     plane...

vtk textured polygon

Ref: https://vtk.org/Wiki/VTK/Examples/Cxx/Visualization/TextureMapQuad // Read the image which will be the texture vtkSmartPointer < vtkJPEGReader > jPEGReader = vtkSmartPointer < vtkJPEGReader >:: New (); jPEGReader -> SetFileName ( inputFilename . c_str () ); // Create a plane vtkSmartPointer < vtkPoints > points = vtkSmartPointer < vtkPoints >:: New (); points -> InsertNextPoint ( 0.0 , 0.0 , 0.0 ); points -> InsertNextPoint ( 1.0 , 0.0 , 0.0 ); points -> InsertNextPoint ( 1.0 , 1.0 , 0.0 ); points -> InsertNextPoint ( 0.0 , 2.0 , 0.0 ); vtkSmartPointer < vtkCellArray > polygons = vtkSmartPointer < vtkCellArray >:: New (); vtkSmartPointer < vtkPolygon > polygon = vtkSmartPointer < vtkPolygon >:: New (); polygon -> GetPointIds () -> SetNumberOfIds ( 4 ); //make a quad polygon -> GetPointIds () -> SetId ( 0 , 0 ); polygon -...

Hello world - Rimozione delle superfici nascoste - Appunti

Rasterization -  HSR descrivere il problema ed elencare le strategie e quindi gli algoritmi La computazione avviene in aritmetica intera, e le operazioni sono “per pixel” (pixel bound). Non tutti i poligoni sopravvissuti, però, devono essere disegnati. Alcuni possono non essere visibili dall’osservatore perché nascosti (totalmente o parzialmente) da altri poligoni. • Problema: dati un insieme di poligoni in 3D ed un punto di vista, si vogliono disegnare solo i poligoni visibili (o porzioni di essi). Ogni poligono si assume essere piatto ed opaco. • Vi sono essenzialmente due approcci: – object-precision: l’algoritmo lavora sui poligoni stabilendo relazioni di occlusione reciproca. Il costo `e quadratico nel numero dei poligoni. Però la precisione `e elevata (precisione macchina). – image-precision: l’algoritmo stabilisce occlusioni a livello del pixel. `E più veloce ma la precisione `e limitata. • La rimozione delle superfici nascoste (Hidden Surface Removal, HSR) vien...

Hello world - Cornici ASCII

Immagine
┌───┬───┐ ╔═══╦═══╗ │      │      │ ║      ║      ║ ├───┼───┤ ╠═══╬═══╣ │      │      │ ║      ║      ║ └───┴───┘ ╚═══╩═══╝ Ecco la tabella di riferimento con i codici più usati per realizzare le cornici

Hello world - Rogue - Prototipo1

Immagine
Ecco una prima schermata del prototipo. Si può vedere la struttura della mappa, l'eroe, 3 oggetti e un nemico.  In sovrimpressione l'interfaccia dell’Input, info HP e messaggi di gioco.

Hello world - La struttura classica di un videogame

Senza addentrasi nello specifico di singoli progetti, per i quali potrebbero essere necessarie strutture alternative se non completamente personalizzate, vorrei descrivere in breve quelle che sono le componenti frequenti che si possono trovare in un videogame. Nota. I post successivi che tratteranno questo argomento avranno come parola chiave “Struttura”, detto ciò: Benvenuti in struttura! Supponiamo di avere una classe principale che gestisca la logica del gioco, chiamiamola MainGame. Questa avrà i metodi: Initialize() {         Crea, Carica, Istanzia e Configura tutti gli elementi del gioco (Personaggi, Grafica, Audio, Stato di Gioco)         Può essere strutturato come un insieme di chiamate a metodi Initialize() o Load() degli elementi detti sopra.         Quando tutto è pronto lo notifica o avvia direttamente il fase di gioco. } La fase di gioco si p...

Hello world - Rogue - Le Mappe

Immagine
Come descritto nella pagina di Wikipedia , in un roguelike: - Deve esserci una generazione casuale dei livelli,sebbene possano essere inclusi anche livelli predefiniti. In genere i livelli sono stanze interconnesse da corridoi, ma possono esserci anche zone all'aperto. La mia idea è proprio questa. Generare mappe casuali ad ogni livello, ma non escludo di realizzarne anche qualcuna predefinita, tipo la mappa introduttiva per un probabile tutorial ed una conclusiva un eventuale boss o altro, ancora da decidere. Come accennato nel post precedente , la piattaforma sarà inizialmente Windows Phone 7, tale scelta è dettata fondamentalmente da 2 motivi: - È  un sistema che conosco bene, dato che ho già sviluppato e pubblicato applicazioni per tale piattaforma. - Silverlight se pur limitato e dal punto di vista di prestazioni discutibile, è indubbiamente uno strumento che permette di sviluppare velocemente applicazioni ed inoltre con poche modifiche è possibile farle girare anche ...