Visualizzazione dei risultati da 1 a 10 su 10

Discussione: OpenGL vs Direct3D?

  1. #1

    OpenGL vs Direct3D?

    Salve a tutti.
    Sono molto pratico di C, ho una buona conoscenza dell'uso delle classi, e da un bel po' di tempo programmo con le Win32 API.
    Queste ultime, però, non permettono il rendering o l'accelerazione hardware, quindi ho deciso di cominciare a studiare qualche Framework che permette ciò.
    I due framework che mi sono sembrati più adatti sono le Direct3D (versione 9, successivamente la 11), e le OpenGL.
    Se è vero che le OpenGL sono multipiattaforma, è anche vero che le Direct3D sono più utilizzate e (a quanto si dice in giro) più performanti.
    Quindi, cosa scegliere? Quali sono le più facili e/o convenienti da usare?
    Grazie mille in anticipo

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Ma poi cosa pensi di farci? Ti interessa solo creare un'interfaccia grafica normale con i soliti componenti (es. bottone, campi di testo...)
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    Per fare interfacce grafice accelerate, buttati su WPF senza pensarci nemmeno.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  4. #4
    Originariamente inviato da Scara95
    Ma poi cosa pensi di farci? Ti interessa solo creare un'interfaccia grafica normale con i soliti componenti (es. bottone, campi di testo...)
    La mia intenzione era creare dei giochini... li avevo realizzati pure in Win32 API, ma, ovviamente, andavano a scatti per la mancanza dell'accelerazione hw

    Originariamente inviato da XWolverineX
    buttati su WPF
    A quanto ne so WPF si appoggia su Direct3D, perché dovrei preferirle a quest'ultime?

  5. #5
    Originariamente inviato da hiphop-master
    La mia intenzione era creare dei giochini... li avevo realizzati pure in Win32 API, ma, ovviamente, andavano a scatti per la mancanza dell'accelerazione hw
    In realtà non vuol dire... per giochini 2D si possono fare cose che non vanno a scatti anche senza accelerazione hardware; anche adesso con le Qt sto lavorando con roba che si muove in una QGraphicView, e anche senza abilitare OpenGL (quindi tutto in rendering software senza alcuna accelerazione) le animazioni sono perfettamente fluide.
    A quanto ne so WPF si appoggia su Direct3D, perché dovrei preferirle a quest'ultime?
    Sono due cose diverse.
    Direct3D ti consente di disegnare/animare/... quel che ti pare, ma si occupa solo di "primitivi grafici"; WPF, invece, fornisce controlli standard (textbox, pulsanti, ...) disegnati tramite DirectX. Ovvero, se lavori direttamente con DirectX tutte queste cose te le devi reinventare da capo, WPF te le fornisce già pronte.

    Tra parentesi, in alternativa a WPF c'è sempre QtQuick, multipiattaforma, basato sulle librerie Qt e con accelerazione hardware OpenGL.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da MItaly
    Tra parentesi, in alternativa a WPF c'è sempre QtQuick, multipiattaforma, basato sulle librerie Qt e con accelerazione hardware OpenGL.
    Questo interessa molto anche a me...

    sto creando un gioco con le OpenGL (sto cercando di utilizzare solo OpenGL 2.1 e GLSL 120 per ora, ma se c'e' molta convenienza a saltare alle versioni successive non mi faccio problemi), dici che posso usare queste librerie per costruirci sopra una GUI decente e performante?

    Perche' fare tutta la gui partendo dalle primitive e' appunto davvero noioso.

  7. #7
    Originariamente inviato da MItaly
    per giochini 2D si possono fare cose che non vanno a scatti anche senza accelerazione hardware
    Verissimo, infatti avevo programmato un giochino simil-Space Invaders con le Win32 API, ma il problema si è presentato quando ho deciso di programmare un giochino con lo scrolling del background (alla Super Mario, per intenderci). Lo sfondo è risultato troppo "pesante" per essere renderizzato soltanto con il lato software.
    Originariamente inviato da MItaly
    c'è sempre QtQuick, multipiattaforma, basato sulle librerie Qt e con accelerazione hardware OpenGL.
    Esistono manuali per lavorare con questo Framework? Come avviene l'integrazione delle OpenGL?

  8. #8
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Per aggiungere un po di carne al fuoco, ho trovato questa CEGUI http://www.cegui.org.uk, che dovrebbe essere pensata apposta per creare GUI per videogiochi. Funziona sia con OpenGL che con Directx.

    Io da poco ho iniziato a programmare con le OpenGL con l'obiettivo di creare un gioco. Le ho preferite alle Directx perche' sono multi-piattaforma e la documentazione mi pare buona. Inoltre leggendo qua e la ho trovato pareri contrastanti circa il fatto che performino meglio o peggio delle DirectX.

  9. #9
    Originariamente inviato da mamo139 leggendo qua e la ho trovato pareri contrastanti circa il fatto che performino meglio o peggio delle DirectX.
    Anch'io ho trovato alcuni pareri contrastanti (anche se la maggior parte vota per DirectX più performante): mi chiedo allora perché quasi tutte le case produttrici di giochi preferiscano le DirectX alle OpenGL

  10. #10
    Originariamente inviato da mamo139
    sto creando un gioco con le OpenGL (sto cercando di utilizzare solo OpenGL 2.1 e GLSL 120 per ora, ma se c'e' molta convenienza a saltare alle versioni successive non mi faccio problemi), dici che posso usare queste librerie per costruirci sopra una GUI decente e performante?
    Onestamente non ci ho mai lavorato, per quello che sto facendo adesso ho preferito usare i QtWidgets "classici" (non accelerati ma molto più matura come libreria); da quello che leggo dovrebbe essere abbondantemente possibile, oltre alle funzionalità grafiche già fornite di suo da QtQuick e dalle librerie Qt3D puoi sempre creare un oggetto custom in cui puoi poi disegnare come ti pare con OpenGL. La cosa divertente è che, facendo le cose a modino, dalle Qt 5.1 puoi compilare il tuo programma anche per Android, e dalle 5.2 (che dovrebbero uscire prima della fine dell'anno) probabilmente anche per iOS.
    In ogni caso, puoi vedere delle guide introduttive a QtQuick 2 qui (occhio che non hanno ancora sistemato i link, al posto di releases.qt-project.org devi mettere download.qt-project.org).
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.