Bonjour tout le monde !!!
Je vous explique rapidement ce que je fais : J'ai donc pour l'instant un kernel qui s'occupe d'un rayon, qui le fait avancer, lorsqu'il coupe un voxel, il accumule la couleur pas à pas à travers le voxel, lorsqu'il arrive à la fin du voxel le kernel s'arrête et je lance ce kernel de manière parallèle autant que je peux en lancer (donc beaucoup de rayon en même temps).
Mais il existe d'autre voxel derrière le premier voxel parcouru par un kernel et donc d'autre couleur a accumuler.
Donc mon idée était de faire un lancer de kernel de manière "itérative", le premier kernel fait ce que je viens de décrire mais à la fin de son parcours il sauvegarde la position du rayon et la couleur accumulé jusque là puis un nouveau kernel est lancé en prenant la position du rayon et la couleur accumulé par le précédent kernel et refait la même chose etc...
Mais je ne sais pas trop comment faire pour lancer des kernels de manière "itérative" et permettre le partage d'information entre ceux ci.
Je mets un petit schéma pour mieux expliquer. Donc le but est de pouvoir lancer une multitude de kernel en parallèle (comme je le fais déjà) mais qui eux même lorsqu'il s'arrête lance un autre kernel en lui transmettant deux valeurs : position du rayon (pour reprendre où l'ancien kernel c'est arrêté) et la couleur jusque là accumulé.
Un bloc de kernel "itératif" s'arrêtera lorsqu'il n'y a plus de voxel à parcourir ou alors que l'opacité est égale ou supérieur à 1.
Voilà j'espère être assez clair si non vous n'hésitez pas a me poser des questions.
Merci d'avance
Partager