böngésző alapú optikai szimuláció
for english version, click here
A SynthRays története
Egy a fényképezőgépekben alkalmazott optikai rendszerek iránt érdeklődő amatőr fotós vagyok.
Néhány éve írtam egy cikksorozatot a digitális fényképezőgépek és az objektívek működéséről, amelyet nagy számú animáció illusztrált.
Az animációk képkockáinak előállítása érdekében egy nagyon egyszerű optikai szimulációs keretrendszert hoztam létre.
Később elkezdtem az animációk interaktív/3D változatait is kidolgozni, de félbeszakítottam a projektet.
A SynthRays alapvetően ennek kísérleti folytatása.
A SynthRays nem tervező program. A mai optikai tervező szoftverek összehasonlíthatatlanul összetettebbek, mint az én alkalmazásom,
amelynek kizárólag oktatási, hobbi céljai vannak. Ennek ellenére nem használ túlzottan egyszerűsítő képleteket, ezért az alapvető
optikai jelenségek ábrázolása meglepően jól közelíti a valóságot, hiszen az optikai határfelületeknél a tényleges fénytöréssel számol minden egyes fénysugár esetében.
Az alapvető célom, hogy az amatőr fotósok a programom segítségével autodidakta módon találjanak választ gyakran felmerülő kérdéseikre:
- miért olyan összetettek a mai objektívek
- hogyan működik az élesreállítás és a zoom
- milyen jelenség a szférikus aberráció és a kóma
- miért hat a fényrekesz beállítása a képminőségre
- miért rosszabb a képminőség a kép szélein általában
- mit jelent ténylegesen a teleobjektív tervezés
- mi a különbség a távmérős és a tükörreflexes fényképezőgépekhez készült nagyképszögű objekívek között
- hogyan működnek az előtétlencsék
A SynthRays jelenlegi verziója nem egy tényleges kiadás, csak egy technológiai demonstráció az érdeklődés felmérésére.
Nem vagyok képzett programozó, de felületesen több programozási nyelvet és platformot ismerek.
Elkötelezett vagyok a böngészőben futó alkalmazások iránt, ezért a programot úgy írtam meg, hogy az elterjedt Adobe Flash beépülő modullal ellátott számítógépeken fusson.
A lehetséges hibákért előre is elnézést, felfedezésük után igyekszem a lehető leghamarabb kijavítani őket.
Az optikai szimuláció alapjai a SynthRays alkalmazásban
Minden lencsének két hasznos felülete van, egyenként három fontos adattal: a felület görbületének sugara (radius), a vertex, és a felület hasznos átmérője (diameter).
A vertex az a pont, ahol az optikai tengely a felületet metszi.
A vertexek helyzete a lencsék legkönnyebben mérhető mechanikai paramétere, ezért az adatok megadásánál nagyon fontos szerepet tölt be a gyakorlati optikában.
Természetesen minden lencsének két vertexe van, és a konkáv lencsék miatt az átmérő is külön-külön kerül megadásra a két felület esetén. A vertexek helyzetét megadhatjuk azok Z ordinátájával, vagy relatív módszerrel a lencse vastagságának (thickness) és a tőle balra elhelyezkedő lencsétől számított távolság (space) segítségével is
Geometria, lencsék
- az optikai tengely a koordináta-rendszer Z tengelyének felel meg
- a fény balról érkezik (a negatív Z értékek felől) és jobbra tart
- az 1. számú lencse balról az első
- minden pozíció és távolság adat mm-ben értendő
- ebben a verzióban legfeljebb 15 lencse használható
- a felület minimális sugara az átmérő fele, az átmérő maximuma a sugár kétszerese
- a felületet a megadott átmérőn kívül elérő fény elvész
- a vertex, thickness és space mezők közötti újraszámolás folyamatos és automatikus
- a vertex, thickness és space mezőkbe beírható adat korlátozott, hogy a lencsék ne ütközzenek szomszédaikkal
- a ragasztás (cementing) iránya jobbról balra történik, így az első lencse soha nem lehet ragasztott
- a ragasztás az előző lencse jobb vertexét és görbületét átmásolja a kiválasztott lencse bal felületére
- a ragasztás letiltja mindkét érintett felület beviteli mezőit
- sík felület egy rendkívül nagy sugár megadásával érhető el, pl. tízmillió mm
Szerkesztés, fájlkezelés
- a gombok feliratai mindig azt mutatják, mit fog tenni megnyomása esetén, nem a jelenlegi állapotot
- a grafikus ablakban az egér segítségével megragadható az ábra és szabadon mozgatható, a görgővel pedig nagyítható
- a beszúró (Insert) gombok egy próbalencsét illesztenek a rendszerbe, amelynek adatai tetszőlegesen módosíthatóak
- a két memória beállító gomb (MS1,MS2) eltárolja az aktuális nézőpontot és a kurzorok helyzetét
- a két memória visszahívó gomb (MR1,MR2) visszaállítja a nézőpontot és a kurzorokat
- a beviteli mezők az egér segítségével választhatóak ki, kis piros pötty jelzi ezt az állapotukat
- az Esc billentyű törli a beviteli mező tartalmát, az Enter végrehajtja a változást
- a fel/le billentyűk növelik és csökkentik a mező értékét, a jobbra/balra nyilak ezt tízszeres mértékben teszik meg
- a szimuláció (Simulation) gomb megnyomása ellenőrzi a rendszert, bármilyen ellentmondás letiltja a szimulációt
- a 3D üzemmód jelenleg csak megtekintés céljából érhető el, az egér segítségével forgatható és nagyítható az objektív
- az Open & Add gomb optikai rendszerek összefűzésére használható, pl. így vizsgálhatóak az előtétlencsék
- elég szabad helynek és elég lencsepozíciónak kell rendelkezésre állnia az Open & Add használatához
- a leírófájlok formátumát nem szabad megváltoztatni, ellenkező esetben a betöltés sikertelen lesz
- a leírófájloknak nincs alapértelmezés szerinti kiterjesztésük, bárhogyan elnevezhetőek
- a leírófájlok bármilyen egyszerű szövegszerkesztővel módosíthatóak, pl.: notepad, gedit
Szimuláció
- a fényrekesz nyílásának maximális átmérőjét a program automatikusan meghatározza
- a képérzékelő méretének megadása mindig az átlóra vonatkozik
- az érzékelő mögötti kis háromszögek a vízszintes és függőleges képméreteket jelzik
- szimulációs módban a ragasztott lencsék nem választhatóak ki egymástól függetlenül
- a tárgyak helyzetének meghatározására két üzemmód létezik: szög (angle) és tárgynagyság (height) megadása
- szög megadása üzemmódban a tárgytávolság megváltoztatása nincs hatással a szögre (pl. képszög elemzése)
- tárgynagyság üzemmódban a tárgytávolság megváltoztatása nincs hatással a tárgynagyságra (pl. nagyítás elemzése)
- ha a második tárgy engedélyezve van (2nd object), a "Move" gombbal választható ki, melyik tárgy mozogjon
- a program többsugaras üzemmódban az objektívet elhagyó fénynyaláb két legkülső sugara alapján jelöli meg a fókuszt
- mivel a mérés a megjelenített fénysugarak alapján történik, minden változtatás kihat a mért gyújtótávolságra és a nagyításra
- a gyújtótávolság csak az első tárgyon kerül mérésre
- a gyújtótávolság csak 0 fokos szög és maximális tárgytávolság esetén jelenik meg
- a nagyítás csak a második tárgy bekapcsolása esetén mérhető
- a szimulációs opciók (Options) részben a fényrekesz és az érzékelő eltávolítható az optikai rendszerből
Bízom benne, hogy minden egyéb felirat egyértelmű. Javaslom egy példaobjektív betöltését és a funkciók kipróbálását.
Példák
Itt érhetőek el az első példafájlok, amelyek letöltés után megnyithatóak a SynthRays alkalmazásban. A csomag a következőket tartalmazza:
- normálobjektív távmérős fényképezőgépekhez (50mm 1:2 - 6 lencse 3 csoportban)
- kettős-gauss normálobjektív távmérős fényképezőgépekhez (50mm 1:2 - 6 lencse 4 csoportban)
- teleobjektív (100mm 1:2.8 - 4 lencse 4 csoportban)
- teleobjektív (170mm 1:3.5 - 9 lencse 8 csoportban)
- nagyképszögű objektív távmérős fényképezőgépekhez (20mm 1:4 - 9 lencse 4 csoportban)
- nagyképszögű objektív távmérős fényképezőgépekhez (35mm 1:2.8 - 7 lencse 4 csoportban)
- nagyképszögű objektív tükörreflexes fényképezőgépekhez (28.5mm 1:2.8 - 7 lencse 6 csoportban)
- előtétlencsék: 1D, 2D és 3D
A példák a következő könyvből származnak:
szerző: | Michael J. Kidger |
cím: |
Intermediate Optical Design |
év: |
2004 |
kiadó: | SPIE |
azonosító: |
PM134 |
A SYNTHRAYS INDÍTÁSA
VISSZA A FŐOLDALRA
2011 Nagy Krisztián