Je travaille sur un Roguelike, et pour cela j'ai créé un algorithme de champ de vision (FoV) de lancer de rayons / lancer qui consiste à tracer des lignes de Bresenham à chaque point d'un cercle plein. Il est sans artefact (et raisonnablement efficace), mais il manque une exigence importante à moi: la symétrie (si vous pouvez voir un monstre, il doit également être capable de vous voir).
Voici un exemple du comportement non symétrique de mon code. Dans l'image de gauche, je me tiens dans un coin (blocs rouges «X» = mur). Je peux voir les tuiles en haut à droite. Cependant, si je passe à l'une de ces tuiles (image de droite), je ne peux plus voir la tuile d'où je viens.
Je pense que je pourrais être après une forme de champ de vision permissif , mais seulement parce que l'article de Roguebasin a suggéré qu'il permettait la symétrie. Existe-t-il d'autres moyens d'obtenir la symétrie?