Surface에 정의된 Rays

1. 질 면에서 Rays가 생성될 경우 :

Ray가 object의 surface와 동일한 위치에서 생성될 때 ASAP에서는 문제가 발생하게 되는데, Rays의 위치가 surface와 동일하다면 광선을 면과 반응시킬 것인지 아니면 반응시키지 않을 것인지 판단하지 못하게 된다. ASAP도 어떻게보면 계산기라는 것을 잊지말자. 예를 들어서 SINGLET 렌즈를 하나 만들고 GRID를 이용해서 rays를 생성시켜 보자. GRIDLENS의 첫번째 면보다 앞쪽에 위치하도록 -1만큼 이동 시켰다.

SYSTEM NEW
RESET

LENS
  SINGLET Z
0  2.4 3 SCHOTT_BK7 RD 0
OBJECT ‘SINGLET_LENS’  

GRID RECTANGLE Z 0 4@3 1 5
SOURCE DIRECTION 0 0 1
MOVE TO Z 1

WINDOW Y 3 3 Z 3 15
PROFILES OVERLAY
TRACE PLOT
RETURN

아래 그림 10.8 처럼 Lens의 앞쪽에서 rays가 시작되었고, 당연히 우리가 생각했던 결과를 얻을 수 있다.

Surface_01
그림 10.8 공기층에서 Rays 생성

그러나 Lens의 면과 동일한 위치에서 rays를 생성시키면 어떻게 될까? MOVE TO Z -1 을 주석처리(!!) 하거나 삭제해서 rays가 렌즈의 첫번째 면과 같은 위치에 오게 만들어 보자. 그러면 아래 그림 10.9와 같이 예상했던 것과는 전혀 다른 결과를 얻게 된다.

Surface_02
그림 10.9 매질 경계면에서 Rays 생성

이와 같은 현상은 단순히 계산 오류의 문제가 아니다. ASAP은 rays가 어디에서(위치) 시작되는 지도 중요하지만, 어떤 매질(Air or Glass 내부)에서 생성되는지도 매우 중요하다. 위의 error는 rays가 생성되는 매질의 정의 부분을 프로그램은 우리가 생각한 것과 전혀 다르게 인식하기 때문 이다. 앞으로 rays를 생성 할 때는 그 생성 위치를 잘 고려해야 한다. 그리고 이 생각의 연장선에서 LED Package를 한번 생각해 보자.

LED Package는 굴절률이 1.0 인 공기(ASAP의 기본 설정)에서 rays가 생성되지 않고 다른 값의 굴절률을 가지는 매질 안에서 생성된다. 굴절률이 1.0이 아닌 다른 값의 굴절률을 가지는 매질 내에서 rays가 생성 된다면 이것 을 ASAP에게 알려주어야 한다. 기본 설정값인 굴절률 1.0이 아닌 다른 굴절률에서 rays가 생성되 니 이것을 고려해서 Ray tracing을 해 달라고 하는 것이다. 이 명령어가 뒤에서 알아볼 IMMERSE 명령어다.

Note…
Ray가 어디서(어떤 매질에서) 생성되는지는 ASAP에서 상당히 중요한 개념이다. 대부분의 3차원 프로그램들은 입체를 만들었을때 속이 꽉찬 입체를 만들지만 ASAP은 면(겉표면) 만을 고려하지, 부피(속이 찬 내부)를 고려하지는 않는다. 그래서, Ray가 어떤 면을 만날때만 광경로를 계산하지 입체 내부에서는 계산을 하지 않는다. 속이 꽉찬 내부에서 ray가 만들어지더라도 따로 알려주기 않으면 공기층으로 인식하고 계산한다. 즉, 속이 비어있고 밖이 어떤 매질로 꽉찬 정반대의 매질 구성을 가지게 된다.  


2. 매질 내부에서 Rays가 생성될 경우
:

그림 10.9를 다시 한번 보자. 우리가 IMMERSE를 사용하지 않았기 때문에 ASAP은 당연히 기본 설정값인 굴절률 1.0에서 Rays를 생성시켰다. 그런데, 애석하게도 rays가 생성된 위치는 렌즈  안쪽이다. 즉, 렌즈안 이 공기층이고, 렌즈 밖이 SCHOTT_BK7 이 되어버려 결국 Rays는 오목렌즈를 만나 확산되는 광경로를 보여 주고 있다.

IMMERSE 명령어는 GRID 이전(Rays가 생성되기 전)에 다음과 같이 입력해 주면 된다.

IMMERSE SCHOTT_BK7

IMMERSE가 적용되었을때는 그림 10.8과 같은 결과를 그림 10.10에서 확인할 수 있게 된다.

Surface_03
그림 10.10 IMMERSE가 적용된 Rays 생성

IMMERSE (ASAP Command)
Creates rays in MEDIA in other than zero.Syntax
IMMERSE [ m ]

Option Description
m media name or number (default=0)

 

여기서 한가지 확인하고 넘어가야 할 것이 있다. 그러면 SCHOTT_BK7은 어디서 왔고, 이때 적용되는 Wavelength는 얼마인가? ASAP은 MEDIA(매질의 굴절률)를 만나면 사용자가 작성한 프로그램 안에서 매질의 굴절률을 찾아 적용한다. 그런데 사용하려는 굴절률을 프로그래머가 정의해 놓지 않았다면 ASAP은 Library에 미리 정의되어 있는 Glass catalogs에서 이름을 찾아서 적용하게 된다. 이것도 없다면 error 메시지와 함께 Run이 종료된다.

Glass catalogs는 메뉴바의 View > Quick start bar 를 선택하면 ASAP 윈도우의 오른쪽에 Quick Start라는 윈도우가 생성된다. Quick Start 윈도우에서 Glass Catalog 버튼을 선택해 보자. Quick Start 왼쪽 윈도우에 서 Glass 회사들 이름 중 schott를 선택해서 BK7을 찾아보자. BK7을 더블클릭하면 Glass Editor 윈도우가 생성된다.

Quick Start_menu
그림 10.11 Quick Start 윈도우 생성

Glass Editor 윈도우에서 보면 매질에 대한 파장대별 굴절률을 확인할 수 있고 이렇게 찾아진 SCHOTT_BK7의 굴절률이 프로그램에 적용된다.

BK7
그림 10.12 Glass Editor 윈도우에서 파장대별 굴절률 확인

그럼 여기서 어느 파장을 사용할까? Glass Editor의 굴절률을 적용할때 사용자가 따로 파장을 지정해 주지 않으면 ASAP은 기본적으로 587.56nm의 파장을 사용한다. 587.56nm는 Code-V와 같은 일반적인 렌즈설계 프로그램에서도 기준파장으로 사용된다.

Command Input Window에 PRINT MEDIA 라고 입력하고 엔터를 해보자. 그러면 BK7의 굴절률이 1.516800으로 되어있는 것을 확인 할 수 있다.

— PRINT MEDIA
MEDIA Index/Absorb  FUNC:  exponent   steplength  maxnum
0     1.000000             0  1.00000        0.100000E+16     1000  VACUUM|AIR
1     1.516800             0  1.00000        0.100000E+16     1000  schott_BK7

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: