|
|
Hello all,
for a simulation project of an optical system I would like to use POV-ray as a
standard in ray-tracing applications.
POV-ray already covers most of the necessary features but three things are
missing I think. I would like to ask here as extensive googling didn't lead to
any answer.
a) is it possible to export text of the individual ray collision and
diffraction?
For example
output.txt:
From To Source Destination DestinationType FromX FromY ToX ToY DeltaX DeltaY
Magnitude BeamAngle SurfaceNormalAngle WavelengthNM
Beam Origin Refraction Origin Ray 1 Dbeam 1 Crown lens Lens -5,0000 0,0000e+00
-5,0000e-04 -0,2700 4,9995 -0,2700 5,0068 -3,0910 180,0000 650,0000
Refraction Refraction Crown lens Crown lens Lens -5,0000e-04 -0,2700 0,7497
-0,2966 0,7502 -0,0267 0,7507 -2,0357 174,3253 650,0000
....
+ another 500,000 lines like this
(this output is 2D and is a normal export of
https://arachnoid.com/OpticalRayTracer/ )
I am interested in this text output as I will simulate my light-sensor as a
sphere, the rays that collide with this sphere are "detected".
b) Is it possible to apply the attribute "wavelength" to an individual ray?
In my setup, the wavelength of the light is very important, but most ray-tracers
do not include that info afaik.
The response to this question is important for question c)
c) Is it possible to simulate a reflective refraction grating?
Example
https://www.thorlabs.com/images/TabImages/Littrow_Configuration_D1-780.gif
The main issue that I see is that it is not a particle effect, but rather an
interference effect, using a ray-model of light is not the best way I guess.
But anyways, with a simplified model of a diffraction grating, it should be
possible to deliver reasonable results.
I imagine that the rays need to be refracted on a surface based on the angle
between ray and surface normal as well as wavelength-attribute of the ray (see
question b).
If some of this features already exist please point me into that direction. For
the missing feature, I'd like to include that feature myself in the code and
publish that on github, I'd like to request ideas how to implement that if
possible.
Thank you very much for your time and feedback
Alex
Post a reply to this message
|
|