Question about plotter algorithm

Just curious about how openmc plotter draw the image.

Does the plotter fill the pixel one by one via locating the current cell?
Or drawing like transporting (calculating the distance to the next surface and fill all the pixels along with the current cell)?

Does plotter utilize tricks like neighbor list in transporting?

Good question @kingyue. The plotter relies on the OpenMC C/C++ API and fundamentally uses the same method as when you call openmc --plot: Each pixel in the image corresponds to a physical point for which a “find cell/material” call is made (rasterization). No ray tracing is done and thus, the plotter does not take advantage of neighbor lists.