Texturarea în opengl - diavolul bibliotecii (openil)

Dezvoltarea programului începe cu crearea cochiliei

Creați o fereastră de program și plasați elementul openglsimplecontrol pe el. așa cum se arată în figura 1, și apoi setați dimensiunea sa la 500x500. Redenumiți acest obiect, dându-i numele AnT.

Texturarea în opengl - diavolul bibliotecii (openil)
Figura 1. Fereastra programului care se creează.
De asemenea, nu uitați să setați referințe la bibliotecile Tao folosite (Figura 2). Fiți atenți la link-ul către Tao.DevIL - această bibliotecă este necesară pentru a încărca texturile (și nu uitați să utilizați Tao.DevIl; altfel nu veți putea lucra cu această bibliotecă).
Texturarea în opengl - diavolul bibliotecii (openil)
Figura 2. Conectarea bibliotecilor Tao.
Pentru a implementa vizualizarea, se va folosi un cronometru - după inițializarea ferestrei va genera un eveniment numit un cronometru bifând la fiecare 30 de milisecunde. Adăugați elementul cronometru, redenumiți instanța în RenderTimer și setați ora de marcare la 30 de milisecunde (după cum se arată în Figura 3) și adăugați un eveniment pentru a gestiona bifarea.

Texturarea în opengl - diavolul bibliotecii (openil)
Figura 3. Setarea cronometrului.
De asemenea, trebuie să adăugați un meniu pentru selectarea fișierelor. Pentru aceasta, adăugați un nou meniu la formular, obiectul openFileDialog. În proprietățile obiectului openFileDialog, setați parametrul Filter la "JPG files | * .jpg | All files | *. *".
Texturarea în opengl - diavolul bibliotecii (openil)
Figura 4. Crearea unui meniu.
Inițializarea OpenGl are loc ca de obicei, ar trebui notată doar inițializarea suplimentară a bibliotecii openIL. Trebuie să declarăm o serie de variabile pentru activitatea viitoare a programului:


Acum, ia în considerare procesul de încărcare a texturii. Pentru aceasta, implementăm două funcții - prima este realizată ca procesare a evenimentului de activare a meniului plasat pe formularul nostru. După primirea numelui texturii, vom efectua pregătirea inițială pentru încărcarea texturii în memoria adaptorului grafic. În viitor, vom efectua setări suplimentare de textură, după care vedem imediat rezultatul.


Acum rămâne să se ocupe de evenimentul de răspuns al temporizatorului și să se pună în aplicare funcția de vizualizare a scenei. Atunci când facem textura, trebuie să pornim modul de textură și, de asemenea, atunci când extragem nodurile obiectelor pe care le asociem coordonatele texturii cu ele, conform cărora textura se va suprapune.

Rezultatul programului este un plan rotativ cu o imagine a texturii.

Texturarea în opengl - diavolul bibliotecii (openil)
Figura 5. Rezultatul programului.

notițe

În caz de eroare: Imposibil de găsit un punct de intrare numit 'ilInit' în DLL 'DevIL.dll'. sau altele asemănătoare:
  • Accesați: Computerul meu -> Proprietăți -> Setări avansate de sistem -> Variabile de mediu.
  • În lista de variabile de sistem, selectați Cale. faceți clic pe Schimbare. "
  • Puneți-vă la sfârșit; (punct și virgulă) și apoi adăugați calea spre TaoFramework \ bin. de exemplu, C: \ Program Files (x86) \ TaoFramework \ bin ;. și, de asemenea, la TaoFramework \ lib (calea este complet).

Îți place publicația? Salvați-l pentru a reveni la învățarea materialului!

Fișiere atașate pentru descărcare:

În detrimentul altor funcții Il - Nu am încercat. Indicați ce să faceți?
Il este inițializat ca normal.

Bună ziua! Aceeași eroare - o excepție nefolosită a tipului "System.AccessViolationException" a avut loc în Textures.exe
ation: A încercat să citească sau să scrie în memoria protejată. Acest lucru indică adesea că cealaltă memorie este deteriorată.
Toate bibliotecile sunt înregistrate:

folosind Tao.OpenGl;
folosind Tao.FreeGlut;
folosind Tao.Platform.Windows;
folosind Tao.DevIl;
și DevIL.dll este copiat în dosarul Debug al proiectului. în ce poate fi problema?