Table of Contents

Laboratorul 3

Redarea directă folosind texturi 2D

Redarea directă folosește o geometrie proxy (ajutătoare): 3 seturi de “poligoane-felie”, fiecare set fiind paralel cu unul din planele principale

Figura 1

Concepte teoretice

Figura 2

Implementare

Atribute

În plus față de elementele din laboratoarele anterioare, se folosesc 3 stive de texturi:

unsigned int* textures_idX;
unsigned int* textures_idY;
unsigned int* textures_idZ; 

Metode

Generare stive texturi

load2DTexturesRAW_X() generează stiva de texturi de-a lungul axei Ox, citind datele din volumeData

Creare poligoane în planele principale

createPoligX() creează un poligon care este în planul yOz, pentru afișarea poligoanelor de-a lungul axei Ox:

Determinare stivă de poligoane redate

detMostPerpendicularAxis() determină cea mai perpendiculară axă (Ox / Oy / Oz) pe planul de vizualizare, și partea (pozitivă / negativă) de care se află observatorul

Desenare stivă poligoane

DesenStivaAxaXNegativa() desenează poligoanele de-a lungul axei Ox, de la cel mai îndepărtat de observator (care are coordonata xPos = -1) până la cel mai apropiat (care are coordonata xPos = 1)

Demo