5
$\begingroup$

I'm a researcher interested into radio channel modeling and I'm currently working with a custom-built ray-tracer for such purpose. I would like, though, to have better performance, e.g., using GPU accelerated ray-tracing, which is not trivial to program from scratch.

I was wondering whether I could do this with pre-existing open source (optical) ray-tracing software such as Blender. For this to work, I would need to

  1. Define transmitters (TXs) and receivers (RXs) nodes. I guess TXs are equivalent to light sources and RXs to cameras, but I would need 360° cameras. Also, TXs and RXs should be points with no size
  2. Obtain output files containing information about every single received ray, such as traveled distance/delay, received power, angles of departure and arrival
  3. Possibly, access to the render engine programmatically based on a pre-built Blender CAD scene
  4. Ideally, create an interface (an add-on?) specifically for RF ray-tracing and make it available to the community which allows the complete workflow to stay on Blender, i.e., (i) scene creation, (ii) material settings, (iii) RX/TX positioning (possibly moving), (iv) ray-tracing computation, (v) ray visualization.

I have no idea whether this is even possible, I'm asking the Blender community for a feedback on whether these few points could be more or less easily obtained.

If not directly from Blender's render engine, maybe some other open engine one such as Lux Core Render, POV-Ray, etc.

Your opinion will be greatly appreciated

$\endgroup$
8
  • 5
    $\begingroup$ I'm not familiar with your area of research, but I think there's misunderstanding between what physicists call ray tracing and what the computer graphics community calls ray tracing. The ray tracing and path tracing engines for computer graphics (most likely) don't simulate the physical properties you would be after. Many render engines don't simulate light as electromagnetic waves. $\endgroup$
    – Robert Gützkow
    Apr 1, 2020 at 9:29
  • 4
    $\begingroup$ Those that do are called spectral render engines. However, they are usually limited to the visible spectrum of light. Most of them will not simulate all physical properties either, if they don't impact the visual output. $\endgroup$
    – Robert Gützkow
    Apr 1, 2020 at 9:35
  • $\begingroup$ Hi, thank you for posting your opinions. It is true that physics and graphics RT are different, but I am working in high frequency RF, where propagation is not that much different from the optical frequencies. This is why I thought of using a graphics RT, given their much widespread use and support, and their extreme optimizations. If I can get the exact path of the ray (and thus distance traveled and surfaces hit at which angle) I can adjust the output with well known equations. I'm here because I'm only interested in getting those rays quickly and in fairly complex scenarios. $\endgroup$
    – Mattia
    Apr 2, 2020 at 7:27
  • 1
    $\begingroup$ I would've assumed that diffraction and interference are very important to get accurate results for your use case. Even if the calculations performed by the render engine are good enough approximations, I think you would have to modify the render engine because such low level information are not accessible from the API. $\endgroup$
    – Robert Gützkow
    Apr 2, 2020 at 11:28
  • $\begingroup$ Diffraction becomes less prominent the higher the frequency. Interference, on the other hand, is extremely important but could be computed considering running multiple times the same simulation considering nodes as either cameras or light sources, that's my plan at least. Thank you for your opinions! $\endgroup$
    – Mattia
    Apr 3, 2020 at 8:35

1 Answer 1

1
$\begingroup$

The POV-ray newsgroups are quite responsive to such scientific visualization demands. and Blender is cleaner to script. You could use both except for the most accurate results, where LuxCoreRender might end up slightly better since spectral based. :-)

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .