2012-12-02 2 views
0

J'utilise le moteur de recherche de rayons OptiX de NVIDIA. Je veux savoir comment je peux traduire la position d'un GeometryGroup (ou de ses instances) pendant le rendu. A partir des échantillons, je vois comment je peux traduire la scène entière (en utilisant le bouton du milieu). Mais je veux traduire un seul modèle/groupe de géométrie.Traduire un GeometryGroup en OptiX

Répondre

3

Je fini par faire ce code, il traduit le premier modèle géométrique:

void updateObjectPos(float dX, float dY, float dZ) 
{ 
    // we have only one group - the main group whose childs are instances of Transform 
    // mainGroup is an instance of Group 
    Transform t = mainGroup->getChild<Transform>(0); 
    float m[16]; 
    t->getMatrix(false, m, NULL); 
    m[3] += dX; 
    m[7] += dY; 
    m[11]+= dZ; 
    t->setMatrix(false, m, NULL); 

    // mark dirty so that the acceleration structure gets rebuilt 
    mainGroup->getAcceleration()->markDirty(); 
} 
+0

version Optix utilisez-vous? J'ai essayé ceci avec optix 3.8, mais cela n'a pas fonctionné. Savez-vous comment transformer les objets en utilisant le nouvel optix? – mmostajab

+0

@mmostajab désolé, je ne sais pas. Si je me souviens bien, c'était OptiX 2.x –