I have dealt with this problem years ago, i don’t want to influence in a
bad way , but i discarded this method and i explain why

First i voxelized the 3d space and then i performed a flood fill from
each cell to see which cell is visible from there.

Now, this sounds good on paper and the implementation isn’t difficult,
the problem is that light travels in a straight line and doesn’t flood
fills anything

in fact you may end to reach point which aren’t visible form the cell
you start to perform the flooding, further there were cases where the
entire 3d voxel grid was filled.

Another variation is the method you describe, plot points over a
surface of triangle and see which triangle are visible from there, again
this is good on paper but the complexity is O( n\^2 ) , where n is the
amount fo triangle beetween your source traingle and the target triangle
assuming you have produced an alogrithm to build a frustum from the
source triangle and having considered triangles included inside this
frustum itself

I have written almost every conceivable visibility algorithm and i have
discarded 99% of them because of the enormous amount of time involved in
preprocessing , i have other ideas but they are currenlty on hold

I’m trying to perform a 3d flood fill on a triangle soup so that I can set a 3d point and all triangles directly or indirectly visible from this point will be flagged. I think this is the same as performing radiosity calculations with an infinently bright light source?

The way i’m planning on doing it is by constructing a grid of points along each triangle and performing a brute force ray cast to see what triangles are visible from one another, the basic steps are:

If I could accurately determine which triangles are visible from which would this algorithm ever fail in any case?

and how can I accuratly determine which triangles are visible from each other?