OpenGL in iOS

di il
3 risposte

OpenGL in iOS

Ciao a tutti,
apro questo thread perche sono rimasto colpito dalla semplicità con cui si crea una applicazione OpenGL in iOS, in pratica quando si crea un nuovo progetto viene proposto un template OpenGL che prepara una scena in cui ci sono due cubi che ruotano. A questo punto è facile individuare il metodo Update dove la scena viene ridisegnata e i vari metodi dove vengono create le luci ecc.

Avevo studiato le OpenGL anni addietro ma poi di fatto ho usato solo le DirectX, per cui ho poca pratica, l' argomento mi ha sempre affascinato, se qualcuno vuole scambiare qualche opinione è il benvenuto.

3 Risposte

  • Re: OpenGL in iOS

    Ecco la procedura per creare una applicazione OpenGL, è solo un demo ma è perfetta per cominciare.
    Dopo essere entrati in Xcode crea un nuovo progetto e seleziona OpenGL Game:



    Alla fine del wizard verrà crato lo scheletro di una applicazione OpenGL funzionante, verrà scritta anche una discreta quantità di codice, ecco ad esempio il metodo Update che si occupa del ridisegno della scena:
    
    - (void)update
    {
        float aspect = fabsf(self.view.bounds.size.width / self.view.bounds.size.height);
        GLKMatrix4 projectionMatrix = GLKMatrix4MakePerspective(GLKMathDegreesToRadians(65.0f), aspect, 0.1f, 100.0f);
        
        self.effect.transform.projectionMatrix = projectionMatrix;
        
        GLKMatrix4 baseModelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -4.0f);
        baseModelViewMatrix = GLKMatrix4Rotate(baseModelViewMatrix, _rotation, 0.0f, 1.0f, 0.0f);
        
        // Compute the model view matrix for the object rendered with GLKit
        GLKMatrix4 modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, -1.5f);
        modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, _rotation, 1.0f, 1.0f, 1.0f);
        modelViewMatrix = GLKMatrix4Multiply(baseModelViewMatrix, modelViewMatrix);
        
        self.effect.transform.modelviewMatrix = modelViewMatrix;
        
        // Compute the model view matrix for the object rendered with ES2
        modelViewMatrix = GLKMatrix4MakeTranslation(0.0f, 0.0f, 1.5f);
        modelViewMatrix = GLKMatrix4Rotate(modelViewMatrix, _rotation, 1.0f, 1.0f, 1.0f);
        modelViewMatrix = GLKMatrix4Multiply(baseModelViewMatrix, modelViewMatrix);
        
        _normalMatrix = GLKMatrix3InvertAndTranspose(GLKMatrix4GetMatrix3(modelViewMatrix), NULL);
        
        _modelViewProjectionMatrix = GLKMatrix4Multiply(projectionMatrix, modelViewMatrix);
        
        _rotation += self.timeSinceLastUpdate * 0.5f;
    }
    
    Immagino che per uno che conosce le OpenGL sia tutto ovvio, per me un po' meno, comunque è un bel punto di partenza.

    Se si manda in esecuzione l' applicazione verranno mostrari due cubi in rotazione uno attorno all' altro:

  • Re: OpenGL in iOS

    Ma anche per le OpenGl si usa Obj-C o si usa il C++ ?
  • Re: OpenGL in iOS

    In iOS si usa l' objective-c.
Devi accedere o registrarti per scrivere nel forum
3 risposte