Domanda

Il mio team è attualmente limitato al disegno di immagini su una piattaforma 1.4 aperta, il che significa che non possiamo usare alcuna mappatura di trama elegante per disegnare un'immagine (sì, siamo limitati a usare la piattaforma grafica integrata Intel, è molto fastidioso). Finora, siamo in grado di disegnare, ridimensionare e capovolgere un'immagine, ma il ragazzo che fa la grafica afferma che la rotazione tramite glRotate non può essere eseguita durante l'utilizzo di glDrawPixels, che dovremmo andare alle trame e così via, che non funzionano sulla piattaforma Intel.

Lo scommetto a pranzo che esiste una funzione di rotazione, come glRotate, che funzionerà per bitmap dritte. Esiste una tale funzione? GlRotate funzionerebbe? Sono un po 'alle prime armi con questa cosa grafica, ma sembra ridicolo che la libreria non consentirebbe la rotazione delle bitmap se non tramite la rotazione delle trame.

Grazie.

È stato utile?

Soluzione

Non puoi usare glRotate con glDrawPixels.

glDrawPixels è il modo peggiore e meno performante per ottenere pixel sullo schermo di gran lunga. Otterrai anche prestazioni migliori mettendo i pixel sullo schermo usando un cattivo software rasterizzatore scritto.

In breve glDRawPixels copierà i dati dei pixel dalla memoria di processo alla memoria grafica e farà alcune trasformazioni molto banali come il capovolgimento e il ridimensionamento. Tutto ciò che è più avanzato (come la rotazione) richiede di utilizzare effettivamente le funzionalità del chipset grafico. Per esempio. Devi usare le trame.

E le trame funzionano. Funzionano bene anche con GL 1.4 e i chipset grafici Intel. Ho lavorato su un tale chipset per un bel po '. Non otterrai le prestazioni dei moderni chipset ATI o NVIDIA, ma non sono neanche così cattivi.

La mia scommessa migliore è che qualcuno abbia provato a creare trame di una non potenza di due dimensioni, non è riuscito a farlo e ha deciso che le trame in generale non funzionano sul chipset.

Non è vero. Funzionano. Devi solo sapere che OpenGL ti richiede di creare trame alla potenza di due dimensioni e che devi usare un sottosquadro della trama più grande o mettere più immagini in una trama molto grande (la successiva è chiamata atlante di trama).

Puoi compensare l'immagine più piccola all'interno di una trama più grande regolando le coordinate della trama.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top