Solaris 8 10/01: Guida alle piattaforme hardware Sun

OpenGL

Il software Sun OpenGL per Solaris è l'implementazione nativa di Sun della API OpenGL. L'API OpenGL è una libreria grafica standard e indipendente dal produttore. Fornisce un piccolo insieme di molte funzioni di rendering 3D di base e avanzate, come le trasformazioni di modellazione, l'ombreggiatura, l'illuminazione, l'antialiasing, il texture mapping, l'effetto "fog" e l'alpha blending.

Piattaforme supportate

Il software Sun OpenGL 1.2.2 per Solaris supporta i seguenti dispositivi:

Eliminazione dei vecchi package

Se sono installati i package di versioni precedenti del software Sun OpenGL per Solaris, è necessario rimuoverli con il comando pkgrm.

Per eliminare i vecchi package
  1. Usare il comando pkginfo per determinare se sul sistema siano installate versioni precedenti dei package di OpenGL.

    Il comando pkginfo | egrep -i "OpenGL" restituisce un elenco dei package di OpenGL installati sul sistema.


    % pkginfo | egrep -i "OpenGL"
    application SUNWffbgl     Creator Graphics (FFB) OpenGL Support
    application SUNWglrt      OpenGL Runtime Libraries
    application SUNWglrtu     OpenGL Platform Specific Runtime Libraries
    application SUNWglwrt     OpenGL Widget Library
    application SUNWafbgl     Loadable pipeline for UPA Bus Elite3D graphics
    application SUNWgldoc     Solaris OpenGL Documentation and Man Pages
    application SUNWglh       Solaris OpenGL Header Files
    application SUNWglut      Solaris OpenGL Utilities and Example Programs
    application SUNWglwh      Solaris OpenGL Widget Header Files

  2. Per rimuovere i package, diventare superutente:


    % su
    Password: password di superutente
    

  3. Eseguire pkgrm per rimuovere tutti i package di Sun OpenGL per Solaris preesistenti.


    # pkgrm SUNWglrt SUNWglh...
    

Package di OpenGL

La Tabella 3-6 elenca i package forniti con Sun OpenGL per Solaris.

Tabella 3-6 Package di OpenGL

Nome del package 

Descrizione 

Posizione di installazione predefinita 

SUNWglh

File di intestazione OpenGL 

/usr

SUNWglrt

Librerie runtime OpenGL lato client 

/usr/openwin/lib

SUNWglsr

Renderer software OpenGL generico per SPARC 

/usr/openwin/lib

SUNWglrtu

Librerie OpenGL specifiche per UltraSPARC(TM)- 

/usr/openwin/platform/sun4u/lib/GL

SUNWglsrz

Renderer software OpenGL per UltraSPARC 

/usr/openwin/platform/sun4u/lib/GL

SUNWafbgl

Pipeline di dispositivi per gli acceleratori grafici Elite3D 

/usr/openwin/lib/GL/devhandlers

SUNWffbgl

Pipeline di dispositivi OpenGL per gli acceleratori grafici Creator e Creator3D 

/usr/openwin/lib/GL/devhandlers

SUNWifbgl

Pipeline di dispositivi OpenGL per gli acceleratori grafici Expert3D 

/usr/openwin/lib/GL/devhandlers

SUNWglrtx

Librerie runtime Sun OpenGL a 64 bit 

/usr/openwin

SUNWglsrx

Renderer software OpenGL a 64 bit per UltraSPARC 

/usr/openwin/platform/sun4u/lib/sparcv9/GL

SUNWafbgx

Pipeline di dispositivi OpenGL a 64 bit per gli acceleratori grafici Elite3D 

/usr/openwin/lib/sparcv9/GL/devhandlers

SUNWffbgx

Pipeline di dispositivi OpenGL a 64 bit per gli acceleratori grafici Creator e Creator3D 

/usr/openwin/lib/sparcv9/GL/devhandlers

SUNWifbgx

Pipeline di dispositivi OpenGL a 64 bit per gli acceleratori grafici Expert3D 

/usr/openwin/lib/sparcv9/GL/devhandlers

Installazione di OpenGL

Vedere "Installazione del software del CD Supplement".

Dopo l'installazione dei package

Dopo avere installato i package, procedere come segue:

Per verificare l'installazione dei package

  1. Uscire dal sistema a finestre e riavviarlo, in modo che venga caricata l'estensione del server GLX appena installata.

  2. Per verificare che le librerie di OpenGL siano state installate correttamente, eseguire ogl_install_check.

    Il programma di test ogl_install_check restituisce la versione della libreria OpenGL e del renderer utilizzato, e visualizza una ruota in movimento. Se eseguito su un sistema UltraSPARC Creator3D, il programma restituisce questo output:


    OpenGL Vendor: 	Sun Microsystems, Inc
    OpenGL Version: 	1.2.2 Sun OpenGL 1.2.2 for Solaris

Per scopi diagnostici, se Solaris OpenGL presenta un problema, annotare i seguenti valori:


OpenGL Renderer: 	Creator 3D, VIS
OpenGL Extension Support:	GL_EXT_texture3D
 	GL_SGI_color_table
	GL_SUN_geometry_compression

	GL_EXT_abgr

	GL_EXT_rescale_normal
OpenGL GLX Server:	Detail Status Report
     	GLX: 	Context is direct.
     	GLX: 	OpenGL Rendering in use
     	GLX: 	Double Buffering in use
     	GLX: 	Color Buffer (GLX_BUFFER_SIZE) = 24 bits
     	GLX: 	Depth Buffer (GLX_DEPTH_SIZE) = 28 bits
     	GLX: 	Stencil Buffer (GLX_STENCIL_SIZE) = 4 bits
     	GLX: 	RGBA (True Color/Direct Color) Visual in use
OpenGL Library:	Detail Status Report
     	Number of color bits (R/G/B/A): 8/8/8/0
     	Frame Buffer Depth (GL_DEPTH_BITS):28

Rendering locale lento

Se possibile, Sun OpenGL per Solaris esegue il rendering direttamente sul frame buffer, bypassando il server X. Questo è consentito dal meccanismo DGA di Sun che blocca alcune porzioni dello schermo. Tuttavia, una funzione di sicurezza di Solaris permette solo all'utente che aveva eseguito originariamente il login nel sistema a finestre di usare DGA per bloccare lo schermo. Solo i proprietari del sistema a finestre hanno accesso al DGA.

Se le prestazioni del rendering locale appaiono lente, la causa potrebbe essere questa funzione di sicurezza di Solaris. Ad esempio, se si avvia il sistema a finestre e un altro utente della workstation si sposta nel proprio ambiente usando il comando su, l'applicazione non può essere eseguita via DGA, neppure se il secondo utente la utilizza localmente.

Se il rendering locale appare lento, eseguire il programma diagnostico ogl_install_check (situato in /usr/openwin/demo/GL) per determinare se l'applicazione venga eseguita via DGA. Se lo status report del programma ogl_install_check sul server OpenGL GLX indica che il contesto GLX è indiretto, per abilitare l'accesso al DGA per tutti gli utenti, modificare le autorizzazioni di login.

Per assegnare a tutti gli utenti locali l'accesso al DGA, procedere come segue:

Per assegnare a tutti gli utenti locali l'accesso al DGA

  1. Diventare superutente.


    % su
    Password: password di superutente
    

  2. Modificare le autorizzazioni per consentire a tutti gli utenti di accedere in lettura/scrittura ai seguenti dispositivi:


    % chmod 666 /dev/mouse /dev/kbd /dev/sound/* /dev/fbs/*
    

    Questo permette a tutti gli utenti di accedere al DGA per la durata della sessione corrente del sistema a finestre (in base alle autorizzazioni X, vedere xhost(1)).

  3. Aprire con un editor il file /etc/logindevperm e cambiare in 0666 le autorizzazioni predefinite di tutti i dispositivi elencati nel file per consentire l'accesso in lettura/scrittura a tutti gli utenti.

    Ad esempio, nelle righe seguenti di logindevperm, cambiare le autorizzazioni 0600 in 0666, in modo che al login successivo dopo il riavvio del sistema a finestre i dispositivi siano ancora accessibili per tutti gli utenti.


    /dev/console     0600     /dev/mouse:/dev/kbd
    /dev/console     0600     /dev/sound/*       # audio devices
    /dev/console     0600     /dev/fbs/*         #frame buffers

Si noti che, a questo punto, il sistema non sarà più sicuro.