Utilisation avancée des processeurs graphiques avec Qt
Utilisation avancée des processeurs graphiques avec Qt
Utilisation avancée des processeurs graphiques avec Qt
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/