I think at this time I am also still trying to figure out why

- this is an opensource project (KiCAD) and I have time to play with this ideas.
- user are requesting more render quality and functionalities to the renders (marketing proposes and technical analysis)
- they[ ref?] say that raytracing is the future!
One big issue that I will try to solve is the per-process time that our current implementation take to load and convert the board to polygons:
- On complex boards (like the one in the picture) there are a lots of holes (drills)...thousands.
- Also, a PCB board have lots of layers (copper layers, technical layers, text layers... and so on) (min ~12, max ~70 layers)
- The copper layers, have thousands of rounded tracks segments (you dont see it in the picture, they are ~10mils thickness but they are all converted to triangles)
- Some of the technical layers, are compositions (CSG) of other layers (subtraction) (adds tesselation complexity == +triangles)
So, for every possible layer, it must be tessellated to triangles and then, the holes (polygons and round holes tesselated) must be removed (subtraction) and everything must be re-triangulated/tessellated. (ie. what you see in the image in the board is not a texture.. all that pixels are rendered from the polygons..)
All this layers have thickness, to it must be duplicated and it must be added a contour to it( to it will at least duplicated the nr of triangles and the computation to remove the holes)
Then, all that holes, must be created (as cylinders and discs).
This process will take a lot of time (seconds.. to minutes.. depending on the board)
So every time you change something in your design and want to render again it will take a lot of time.
Also, in order to keep the computation low, the holes are "low detailed" with just a few triangles, it means that if you zoom to see a lot of detail and inspect your work, you will see a low polygon ugly image.
OK, you maybe be able to improve the creation of polygons and also maybe do something on GPU..etc
but the render technique I know best is raytracing

So I will try to use it in order to solve with one solution all this issues.
I guess do it properly, with good results with normal rasterization it will take the same effort and it will be tricky as well.
ps: the top rendering part of the picture was actually developed by myself using old openGL stlye approach.
Mario