26.06.2013 Views

Utilisation avancée des processeurs graphiques avec Qt

Utilisation avancée des processeurs graphiques avec Qt

Utilisation avancée des processeurs graphiques avec Qt

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

cpp<br />

<strong>Utilisation</strong> <strong>avancée</strong> <strong>des</strong> <strong>processeurs</strong> <strong>graphiques</strong> <strong>avec</strong> <strong>Qt</strong> par Rémi Achard Guillaume Belz<br />

GPUContextGL.acquire(gpu_in_vector);<br />

GPUContextGL.acquire(gpu_out_vector);<br />

Le kernel est ensuite executé (même code que la partie précedente).<br />

cpp<br />

// Kernel launch<br />

UpdateNormalsKernel.setGlobalWorkSize(num_vertices);<br />

UpdateNormalsKernel(gpu_in_vector, gpu_out_vector, num_vertices, vertices_by_x);<br />

Et les buffers OpenGL sont libérés.<br />

cpp<br />

// Release buffers<br />

GPUContextGL.release(gpu_in_vector);<br />

GPUContextGL.release(gpu_out_vector);<br />

Il n'y a bien entendu plus de raisons de lire le contenu du buffer de résultat d'OpenCL car il s'agit du VBO utilisé<br />

pour le rendu.<br />

Le code de la fonction de rendu est modifié pour supprimer la mise à jour du VBO dans le cas ou les normales sont<br />

calculées coté GPU.<br />

cpp<br />

// Update normals<br />

if(normal_on_gpu)<br />

makeNormalsGPU();<br />

else {<br />

}<br />

- 77 -<br />

http://gbelz.developpez.com/remi-achard/gpu-avance-<strong>avec</strong>-qt/modified/

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!