
-----------------------------------
valy
11 Iul 2025 01:42

RayCassT - Simulator telescop
-----------------------------------
Am reusit sa finalizez o versiune pre-alfa de simulator 3D a unui sistem optic - telescop. Principiul de functionare se bazeaza pe reflexia razelor pe suprafata oglinzilor, pe modelul ray-tracing + diferente finite. Un numar oarecare de raze incidente, o reprezentare poligonala a suprafetei oglinzilor (colectie de triunghiuri), detectie coliziune (raza in interiorul triunghiului), calcul reflexii raza-triunghi (generare raza reflectata)&#8230;si cam atat.

Ideea de baza este sa pot obtine diagrama spot in planul focal prin colectarea razelor incidente pe el. Ar suporta doua scenarii:
-	Obiect punctiform (stea) plasat pe axa optica astfel incat sa obtin spot-ul in centrul campului, sau oblic, pentru spot in afara centrului planului focal, deci diagrama spot oriunde in planul focal (de ex. oriunde pe suprafata unui senzor)
-	Obiect tip planeta (cu detalii), aici la fel ca la stead oar ca am defapt o multime de surse tip &#8220;stea&#8221; dar colorate (ex. plecand de la imaginea unei planete), se genereaza diagrama multispot in planul focal

Simulatorul trebuie sa poata ajusta orice parametru, de la dimensiuni, distante, focale, backfocus, si pana la forma/parametrii suprafetelor oglinzilor. Cireasa de pe tort: sa faca asta real-time/interactiv, cu generarea rapida a imaginii.

Pe viitor ar fi utila si introducerea de elemente refractive, definite prin curbele suprafetelor, material (indice de refractie), si cu implementare de refractie (care principial este identica cu reflexia, doar ca intervine si lungimea de unda a razei, desigur cu raze definite pt. diverse lungimi de unda). In cazul sistemului pur reflectiv simularea este in lumina alba.

La o evaluare ochiometrica se pare ca lucrurile merg bine. Urmeaza adaugarea unui grad mai mare de interactivitate, optimizari, corectii/validari formule, etc

Iar in final ar fi util sa poata explora automat spatiul de parametrii si sa propuna formule/designuri diverse in functie de diagrama spot dorita in planul de focus, adica design si/sau optimizare.

Deocamdata este implementat sa functioneze in configuratie cu doua oglinzi sferice.
Ca si cifre, avem asa:
Număr triunghiuri oglinda 1: 486
Număr triunghiuri oglinda 2: 638
Număr raze initiale: 486
Număr raze reflectate 1: 278
Număr raze reflectate 2: 260

-----------------------------------
romh
11 Iul 2025 18:47


-----------------------------------
Bravo valy

-----------------------------------
zoth
12 Iul 2025 09:58


-----------------------------------
Bravo, astept continuarea  :)

-----------------------------------
valy
13 Iul 2025 02:45


-----------------------------------
Multumesc.

 astept continuarea  :)Desigur. Deci, desi razele se aduna frumos "pe senzor", o imagine care sa acumuleze razele la nivel de pixel ar fi mult mai sugestiva. Pot defini in planul focal un "senzor", in cazul de fata 35x35mm, si un pixel, in cazul de fata 0.1 mm. Imaginea de pe senzor numara la nivel de pixel cate raze au cazut pe el, la final normez totul la pixelul cel mai luminos.

-----------------------------------
valy
22 Iul 2025 01:50


-----------------------------------
Uitandu-ma la ultima poza de mai sus mi s-a parut ca vad diagrama PSF, mai multe simulari pe diversi parametrii generau niste patternuri specifice. Dar cred ca a fost doar hazardul erorilor/aproximarilor, in versiunile ulterioare nu imi mai apare asa.

-----------------------------------
valy
22 Iul 2025 02:43


-----------------------------------
Utilitatea unui astfel de simulator este data de posibilitatea de a rula diverse combinatii de parametrii si sa poti masura rezultatul, deci sa ai o masura (sau mai multe) a comportamentului modelului simulat. Nu m-a dus mintea la o masura specifica lumii telescoapelor asa ca am implementat cateva care mi-au trecut prin cap, ca de exemplu dispersia, excentricitatea (abaterea de la cerc). Deocamdata spotul este fix in centru deci forma este aproape circulara, dar pe viitor o sa il pot muta oriunde in planul senzorului si excentricitatea/elongatia (abaterea de la cerc) o sa isi spuna cuvantul.
Pe un astfel de scenariu am rulat 15 configuratii, in cazul de fata 15 variatii ale razei secundarei. Pe grafic se vede dispersia minima undeva la jumatatea intervalului. Odata gasit &#8222;optimul&#8221; poti seta vizualizarea pe acea configuratie si poti zabovi nitel asupra vizualizarii 3D a configuratiei respective:
Număr triunghiuri oglinda 1: 7044 (in 0.02s)
Număr triunghiuri oglinda 2: 1056 (in 0.00s)
Număr raze initiale: 4700 (in 2.23s)
Număr raze reflectate 1: 4700 (in 2.23s)
Număr raze reflectate 2: 4695 (in 185.70s)
Dispersie (media pătratică a distan&#539;elor): 4.379
Excentricitate: 0.076 (0-cerc, 1-alungit)
Axa mare / axa mică): 3.0 / 3.0
Elongatie (axa mare / axa mică): 1.003
Număr raze pe senzor: 4695 (in 0.17s)
Bounding box-ul: 8.9 x 9.1 mm

-----------------------------------
valy
26 Iul 2025 19:02


-----------------------------------
Am splitat o dubla, de 0.4 grade separatie..
