Sistema de Diseño de Lentes Progresivas Asistido Por Ordenador
Sistema de Diseño de Lentes Progresivas Asistido Por Ordenador
Sistema de Diseño de Lentes Progresivas Asistido Por Ordenador
Tesis Doctoral
SISTEMA DE DISEÑO
DE LENTES PROGRESIVAS
ASISTIDO POR ORDENADOR
Presentada pon
Juan Carlos Dürsteler
Dirigida por:
Liuis Pérez Vidal
A mis padres, sin quienes esto no hubiera sido posible.
u
Agradecimientos
Sería difícil de concebir la realización del presente trabajo sin el concurso y
la ayuda de innumerables personas que han contribuido al mismo, bien con el
aporte de su experiencia personal o bien con el aporte del material de base sobre
el que se fundamenta el presente trabajo. Enumerar todas las contribuciones sería
arduo y, sin duda, olvidaríamos aportaciones importantes.
No obstante, deseo agradecer especial y sinceramente la colaboración de una
serie de personas que me han prestado un inestimable soporte, y sin las cuales
este trabajo no hubiera sido factible.
A Lluis Pérez Vidal, que aceptó ser el director de la presente tesis, agradezco
su constante apoyo y orientación, así como sus consejos, sugerencias y buen
humor.
A Pere Brunet le debo la inspiración inicial que hizo viable la conversión
de mi trabajo en una tesis y el agradecimiento del interés y ánimo que me ha
ofrecido durante el desarrollo de la misma.
Agradezco a Patrick Mills y Mark Powell, de Quintek Ltd. en Inglaterra, la
discusión y experto consejo de los aspectos más intrincados de la elaboración del
sistema de redirección de mensajes y la configuración de la red de procesadores
en paralelo que se ha utilizado como hardware.
Salvador Bosch, del Departamento de Óptica de la Universidad de Barcelona
y Alvar Vinacua del Departamento de L.S.I. han tenido la amabilidad de leer el
manuscrito y contribuir con su opinión a mejorar la claridad y comprensibilidad
del mismo.
Finalmente agradezco especialmente a Ramón Soliva, director del Departa-
mento de Investigación de Industrias de Óptica S.A. su comprensión y constante
impulso de esta tesis, así como sus valiosas contribuciones al desarrollo y con-
secución de la misma.
Este trabajo se ha gestado a caballo entre el Departament de Llenguatges i
Sistemes Informàtics de la U.P.C. (L.S.I.) y el Departamento de Investigación
iii
IV
FE DE ERRATAS
• Capítulo 2, página 14, ecuaciones 2.10 y 2.11, deben leerse
• Capítulo 3, página 23, línea 16, donde dice "Davis|Dav81j patenta* debe
decir *Davenport[Dav81) patenta".
• Capítulo 6, página 68, línea 1, donde dice "consistente" sustituir por "con-
siste".
• Capítulo 6, página 68, línea 5 empezando por el final, omitir GET_PSUM.
• Capítulo 6, página 73, línea 10, donde dice "se tarda la mismo" sustituir
por "se tarda lo mismo".
Contenido
1 Introducción l
1.1 El ordenador y el diseño de lentes l
1.2 Objetivos y motivación 2
1.3 Organización 2
2 Fundamentos 5
2.1 Introducción 5
2.2 La Presbicia 5
2.3 Acomodación y Convergencia 7
2.4 Las Lentes Progresivas 9
2.5 Zonas principales 10
2.5.1 El meridiano principal 10
2.5.2 Teorema de Minkwitz 13
2.5.3 Zonas marginales 17
2.5.4 Zona de visión lejana 17
2.5.5 Zona de visión cercana 18
4 El Diseño de la Superficie 27
4.1 Introducción 27
4.1.1 Interpolación 27
vi CONTENIDO
5 Metodología de Diseño 53
5.1 Introducción 53
5.1.1 Optimización y función de mérito 54
5.2 Especificaciones ópticas 55
5.2.1 Variación de potencia 55
5.2.2 Umbilicalidad de la progresión 57
5.3 Variables de optimización 57
5.3.1 Distribución de aberraciones y pesos 59
5.3.2 Tratamiento gráfico de datos 62
6 Implementation en Paralelo 65
6.1 El algoritmo de Optimización 66
6.1.1 El método Simplex 66
6.2 Paralelización 70
6.2.1 Paradigmas de paralelización 70
6.2.2 Identificación de código paralelizable 72
6.2.3 Selección del nivel 72
6.3 Implementación 75
6.3.1 Topología de la red 75
6.3.2 Parte secuencial (Master) 76
6.3.3 Parte paralela (Workers) 77
6.3.4 Subsistemas de redirección (Routers) 78
CONTENIDO vü
7 Comparación de Interpolaciones 83
7.1 Contenido de las pruebas 83
7.2 Variantes de Optímización 88
7.3 Función de mérito 88
7.4 Realización 89
7.5 Resultados 91
7.6 Conclusiones 103
ix
LISTA DE FIGURAS
7.1 Resultados 94
7.2 Tiempo de C.P.U 94
7.3 Conclusiones 103
xi
Capítulo 1
Introducción
1.3 Organización
La estructura del presente trabajo es, obviando el presente capítulo, la siguiente:
• El Capítulo 2 contiene una revisión de los conceptos básicos y funda-
mentos teóricos concernientes a las lentes progresivas y a la comprensión
de sus características.
• El Capítulo 3 se refiere a los antecedentes históricos y los desarrollos re-
cientes en este campo, constituyendo, en conjunto, una revisión del estado
del arte del mismo.
1.3. ORGANIZACIÓN 3
Fundamentos
2.1 Introducción
Es inevitable, a la hora de abordar la situación con respecto a las lentes pro-
gresivas, fijar unos elementos mínimos de óptica, que, aunque conocidos, son
de importancia central en este campo. El lector interesado en ampliar los rudi-
mentos que aquí se repasan encontrará en [Cas85,Ros78,BW86], bibliografía
abundante sobre la óptica en general.
En cuanto a la óptica fisiológica, cabe reseñar la obra de Legrand [Leg45],
[Leg46], Obstfeld [Obs78] y Duke—Eider [Dukol], entre otros. Por otra parte, la
bibliografía referente a lentes progresivas es relativamente escasa y muy dispersa,
no existiendo ningún libro dedicado en concreto al tema. Como introducción
a este campo, desde el punto de vista histórico, merece la pena mencionar los
artículos de Sullivan [SF88] y Bennet [Ben61].
2.2 La Presbicia
El factor responsable del mecanismo de enfoque, o acomodación, en el ojo
es el cristalino, pequeña lente deformable situada dentro del globo ocular (ver
apéndice A). Con el transcurso de los años, las propiedades características
del cristalino van degradándose. Aunque este fenómeno no está aún plena-
mente comprendido, parece que es debido principalmente [Leg45] a la progresiva
pérdida de flexibilidad del mismo.
El cristalino permite el enfoque del sistema óptico del ojo, variando la cur-
vatura de sus caras anterior y posterior según las necesidades de enfoque del
sistema. De esta manera modifica su potencia en función de la distancia a que
6 CAPÍTULO 2. FUNDAMENTOS
se halle del punto objeto (punto al que se está mirando y cuya imagen se quiere
hacer incidir en la retina). En visión lejana, mirando al infinito, el cristalino se
halla en su posición de reposo. En visión cercana, mirando a un objeto situado
en las proximidades, el cristalino se halla sometido a la tensión de los músculos
ciliares [Leg45] que le obligan a aumentar su curvatura en función de la relación
acomodación convergencia (ver sección 2.3).
Si consideramos un sistema óptico sobre el que incide un haz de rayos
proviniente del infinito, llamaremos foco al lugar donde se reúnen los rayos una
vez atravesado el sistema. Se llaman planos principales a dos planos conjugados
— uno imagen del otro — cuyo aumento lateral, o relación entre los tamaños del
objeto y su imagen por el sistema, es ß = 1. Denominamos punto principal al
punto de intersección de un plano principal con el eje del sistema. La distancia
focal es, entonces, la distancia entre el punto principal y el foco.
Se define la potencia de una lente como el inverso de la distancia focal. Es
corriente trabajar con longitudes reducidas, dividiendo la longitud por el índice
de refracción n del substrato. Así, si / es una distancia focal, la focal reducida
será £. Su inversa se denomina poder refractor, aunque algunos autores no
hacen distinción entre éste y la potencia, definiéndola en términos reducidos.
Para una superficie S que separa medios de índices n y n' la potencia es
[Cas85] . .
A=
J--J-
dpr dpp í2'2)
se llama amplitud de acomodación, siendo dpr la distancia del punto remoto
al ojo y dpp la distancia del punto próximo al ojo. Si dpr y dpp se expresan
en metros A queda expresada en dioptrías. Se toma como promedio [Cas85]
para el ojo normal de una persona adulta -250 mm. para la distancia de visión
próxima, a la que se denomina distancia mínima de visión distinta.
La consecuencia de la inevitable pérdida de flexibilidad del cristalino es la
reducción de la capacidad de enfoque del ojo y el subsiguiente alejamiento del
punto próximo. Por tanto, se experimenta una dificultad creciente, a partir de
alrededor de los 40 años, de enfocar los objetos a distancias próximas. Con
el tiempo, la lectura y los trabajos que requieren el uso de la visión de cerca,
resultan de difícil realización.
Este efecto, denominado pérdida de acomodación o presbicia, se puede
corregir mediante el uso, en visión de cerca, de una lente convergente monofocal
con la potencia necesaria para llevar el punto próximo a la distancia mínima de
visión distinta. Esta potencia se denomina adición. Con esta solución, el usuario
amétrope, necesitado de otra corrección en visión de lejos, requiere de dos pares
de gafas, unas para visión de cerca y otras para visión de lejos.
eje óptico
eje óptico
M Hi = MPi-HiPi = (2.5)
2sinß-HiPi
Sustituyendo H\P\ por su valor teórico (1.44 mm sin acomodación y 0.87 mm.
para una acomodaión de 7 D.) y dando valores a la acomodación podremos
encontrar que, para el ojo emétrope, así como para el amétrope corregido, la
relación acomodación convergencia vale aproximadamente 1, esto es, para el ojo
teórico, la acomodación es sensiblemente igual a la convergencia.
Para más información sobre el ojo véase el apéndice A.
2.4. LAS LENTES PROGRESIVAS
EEL
Lejos H L -
oo dpp
L
Cerca
oo dpr O
la cabeza inmóvil (véase [Leg45] [BZ46]). Dado que el ser humano es un animal
terrestre, existe una notable disimetría en cuanto a la utilización de la visión de
lejos y de la de cerca. La visión de lejos utiliza primordialmente el hemicampo
visual superior, mientras que el hemicampo inferior se utiliza primordialmente
en visión intermedia y próxima.
Esto supone que en la mitad superior de la superficie de la lente, usada
para visión de lejos, necesitamos una potencia estable igual a la prescripción de
lejos, que va aumentando progresivamente a medida que los ojos convergen y el
punto de fijación se acerca al observador. Una vez se ha conseguido la máxima
convergencia, la potencia ha de mantenerse en el valor de la adición. Puesto que
un paciente emétrope no necesita corrección en visión de lejos, en este caso la
potencia en la mitad superior será nula.
Denominaremos meridiano principa! al lugar geométrico de las intersec-
ciones sucesivas de la línea de visión con un plano imaginario situado en la
posición de uso de la lente (plano de la lente), cuando el ojo pasa de mirar
al infinito a mirar a un objeto situado a 30 cm. del individuo, en un plano
vertical ortogonal al anterior. La trayectoria del meridiano principal, de capital
importancia para las lentes progresivas, tiene la forma de la figura 2.3 adjunta,
en virtud de la convergencia de los ojos.
Podemos ver que los ojos, a la par que descienden, convergen en sentido
nasal. Los valores típicos para individuos normales indican que para un descenso
de 10 mm. a partir de la posición de reposo del ojo, la convergencia sobre el
plano de la lente es de 2.5 mm.
12 CAPÍTULO 2. FUNDAMENTOS
:tO—,
20—
10—
oo—
M /"(í) (2.7)
n-n
2.5. ZONAS PRINCIPALES 13
Idealmente habría que calcular todas las magnitudes desde el punto de vista
del trazado de rayos a través de la superficie, conociendo la aberración de onda,
esto es, lo que se deforma el frente de onda una vez refractado. Ello, sin
embargo, es notablemente costoso en tiempo de cálculo, por lo que se impone
una simplificación.
La simplificación que se hace a la hora de evaluar las lentes progresivas
consiste en trabajar con las curvaturas, no del frente de onda en cada punto, sino
de la propia superficie. Esto, que en principio no es evidente, queda refrendado
por el hecho de que los resultados de realizar una medición de las magnitudes
superficiales y de las ópticas en una lente progresiva son comparables cualita-
tiva y cuantitavamente dentro de las tolerancias de los instrumentos empleados
(menores de 0.1 D.).
Para ello consideremos lo siguiente. Sea « la línea de curvatura correspon-
diente a la sección meridiana (también llamada tangencial) y i; la correspondien-
te a su perpendicular, que llamaremos sección sagital. Los centros de curvatura
correspondientes a los radios de curvatura principales se denominan foco tan-
gencial y foco sagital, en razón a la línea de curvatura a la que pertenezcan.
Denominaremos ri y ra a los radios de curvatura tangencial y sagital respecti-
vamente y ki y fez a sus inversos (las curvaturas).
Sea /( la focal sagital y f% la focal tangencial. Sus poderes refractores serán
Para una superficie que separa medios de índices n y n' la potencias son [Cas85]
| = —= (2.9)
que, como vemos, no es más que la curvatura media afectada del índice de
refracción. Denominaremos astigmatismo superficial a la diferencia
As = \D{-D'2\ = \n-n'\\kl-k2\ (2.11)
Esta magnitud da cuenta de en que medida la imagen de un punto es otro punto,
condición indispensable, dentro de la tolerancia del ojo humano, para ver con
nitidez.
Para una superficie que separa medios de índices diferentes, sólo cuando
Jfei = fe, el astigmatismo AS es nulo y por tanto la imagen as absolutamente
2.5. ZONAS PRINCIPALES 15
x = x(í) (2.13)
Dado k = fc(s), siendo una curva plana, según las fórmulas de Frenet-Serret (ver
p.ej. [Pog87])
i = *(«)n y u = -*(í)t (2.15)
Puesto que la línea de progresión ha de ser umbilical podemos desarrollar
Î4 + ... (2.16)
16 CAPÍTULO 2. FUNDAMENTOS
Dado que
- K\ (2.17)
y desarrollando teniendo en cuenta las 2.15
H(',& = -* + [ * 3 - k - (2.18)
lim = ±2|n'-n||¿|
i ii i (2.22)
¿s«2|l)m(«)||É| (2.24)
El teorema de Minkwitz es de gran importancia en el diseño de lentes progresi-
vas, puesto que relaciona el gradiente de potencia en el meridiano principal con
el gradiente de astigmatismo en dirección ortogonal al mismo. Ello se traduce
en la aparición en la zona de progresión de un pasillo Ubre de astigmatismo,
rodeado por zonas de astigmatismo creciente.
La anchura del pasillo, entendida como la de la zona por debajo de un cierto
nivel de astigmatismo, es tanto menor cuanto mayor es el gradiente de potencia.
Esto reduce el campo de visión cuando se esta mirando a distancias intermedias.
Una consecuencia evidente de esta proposición es que resulta imposible con-
struir una lente progresiva totalmente libre de aberraciones fuera del meridiano
principal.
para lejos del paciente y cuyo valor máximo de error en astigmatismo está por
debajo del valor umbral (±0.5£>).
Esta zona puede ser esférica o asférica. Los diseños más recientes suelen ser
asféricos, en razón de que ello les permite utilizar superficies de mayor radio de
curvatura, más planas y más estéticas, sin comprometer las cualidades ópticas
(ver [SA83] y [Atc84]), aunque son de mayor complejidad de realización.
La extensión de la misma varía sensiblemente de unos diseños a otros. Es-
tudios recientes [Har88] establecen ±40° en ángulo visual como una amplitud
necesaria para el confort, con ±15° para la zona de progresión y ±20° para la
zona de cerca.
19
20 CAPÍTULO 3. ESTADO DEL ARTE
/ \
fóvea punto ciego
dzn(x,y)
(3.3)
dy dy
o(z) = (3.4)
Por ello mencionaremos aquí solamente aquellas que aportan información veri-
ficable o bien las que han dado lugar a productos que hemos podido medir en
el laboratorio.
k(y) es una función que modula la longitud de onda y tiene la siguiente forma
[Rod79]
60°
70°
100
El Diseño de la Superficie
4.1 Introducción
Las cualidades ópticas de la superficie a diseñar imponen ciertas restricciones al
formalismo matemático que la haya de representar. Concretamente:
1. Hay que evitar saltos de imagen. Estos son producidos por discon-
tinuidades en la potencia de la lente que, como vimos, está relacionada
con la curvatura local de la superficie. Así, pues, habremos de imponer
continuidad en las curvaturas y, por ende, en las segundas derivadas de
la superficie con las cuales se calculan las formas fundamentales que nos
proporcionan las curvaturas y ejes principales.
Esto impone que la superficie habrá de ser como mínimo de clase C2.
2. Suavidad. Una superficie ondulada, con cambios de potencia notables
entre puntos cercanos es muy molesta, puesto que obliga al ojo a acomodar
continuamente al pasar de un punto a otro. Ello, pues, desaconseja la
utilización de formulaciones que sean susceptibles de producir oscilaciones
indeseadas en la superficie a diseñar.
4.1.1 Interpolación
Para elegir un formalismo de superficie adecuado a nuestras necesidades, vale
la pena pasar brevemente revista a las posibilidades existentes. Por mor de la
claridad veremos primeramente los esquemas de interpolación para curvas y,
después, su extensión a superficies. Seguiremos, en cuanto a estructura, las
líneas maestras del excelente survey sobre curvas y superficies de Böhm, Farin
y Kahmann [BFK84].
27
28 CAPÍTULO 4. EL DISEÑO DE LA SUPERFICIE
U, U; U U, U« O t 1
Sea una curva \(u) interpretada como la imagen de una parte del eje tt (su
dominio) mediante una transformación en 2D ó 3D. Una segmentación [BFK84]
de una curva en trozos (patches) corresponde a una partición de su dominio
mediante nodos tto < u\ < ... < un, el conjunto de los cuales denominamos
vector de nodos U{iío...«n} (ver figura 4.1). Es usual la introducción de un
parámetro local t que en el intervalo [tij.uj+i] permite escribir [BFK84]
i (4.1)
de forma que este segmento es la imagen del intervalo [0, 1] del eje L
donde
T7?-i («-«,-)
p«(u) = ütli -ÍL (4.5)
U-Ui
x(t») = f (í)
más abreviadamente
(4.7)
«=o
que se pueden calcular, para grado n como
bo, b i,..., b„ son los llamados puntos de Bézier. Estos puntos no son puntos
por los que pasa la curva sino que, modificando su posición, se controla la forma
que ofrece la misma.
Propiedades:
4.1. INTRODUCCIÓN 31
badu4 bj,
u, u,
4.1.5 B-Splines
La interpolación mediante el esquema de Bézier tiene una característica impor-
tante consistente en que la modificación de un punto de Bézier influye en toda
la extensión a la curva interpolada. A esta propiedad se denomina comúnmente
control global.
Muchas situaciones aconsejan, sin embargo que la modificación de los pará-
metros de control de la curva tenga control local, esto es que su cambio afecte
sólo a un entorno limitado alrededor del mismo.
Dentro de esta categoría se incluyen los B-Splines, que podemos representar
como
iJVT(ti) (4.9)
3. N?(u) = O si u
4. N?(u) es (n - 1) veces continuamente diferenciable
JVf(t») = («-«,•);
a :
I/.3 2/3
Figura 4.4: (a) Base B-Spline cuadrático con vector de nodos {O, 0,0,1/3,2/3
1, 1, 1} (b) Base B-Spline cúbico sobre {O, O, O, O, 1/4, 1/2, 3/4/1,' 1, 1 i}'
(c) Polinomios de Bernstein cúbicos sobre {O, O, O, O, l, l, l,' l} ([PT87] )'
4.1. INTRODUCCIÓN 35
U,-U,-Uj U. u,-u,-u,0
A, u,
ß(t)
que podemos escribir como
La interpretación del impacto que tiene cambiar el valor del peso en un punto
de Bézier dado es eminentemente geométrica.
1. Dado que
lim B? (t) = l
0Í-.+00
y que
PÍ = (ßi*i,ßiyi,ßiZi,ßi) para ¿ = O, . . . , n
donde
Rf(«) =
que son las bases de los B-Splines racionales, también conocidos como
NURBS (Non Uniform Rational B-Splines).
Propiedades de los NURBS
1.
2.
3. Rf(w) = O si w 0 fa,«i+jn-i] lo que conduce al control local, al igual que
en el caso de los B-Splines no racionales.
4. En un nodo Rf (u) es p - k veces diferenciable siendo k la multiplicidad
del nodo.
5. Rf(w) = N?(w) si ßi = 1, V» Así pues, NURBS es una generalización
apropiada de B-Splines, a los que interpola cuando todos los pesos son 1,
e igualmente de Bézier.
4.2. SUPERFICIES POR PRODUCTO TENSORIAL 39
i -O
expresada en términos de unas bases Fj.
Si permitimos que cada ct- trace a su vez en el espacio una curva c,-(t>)
expresada en los mismos términos
(4.15)
(4.16)
¿-o k=o
Como ejemplos inmediatos podemos considerar las superficies producto ten-
sorial de la forma monomial y la de Lagrange
40 CAPÍTULO 4. EL DISEÑO DE LA SUPERFICIE
00 «,=l
Figura 4.7: B-Splines racionales con distintos valores de (ay a') w\ ,(b) w2 y
(b')tU3. (de [PT87]).
4.2. SUPERFICIES POR PRODUCTO TENSORIAL 41
• Forma monomial
«=0 M
<«, v) = £ E PI,*¿"(«woo
«=0
x(«, * ) = E E "»í,**?«*?«
«=0 *=0
(4
donde r y « son los parámetros locales, de forma que, para « e [uj,
y t; € [t>k, ffc+:] tenemos (ver ecuación 4.1)
» - M, (4.20)
V = Vk(l - « )
<-o *•«
es una representación única de la superficie, que llamaremos B-spline, en la
cual los puntos d,-^ son los llamados de de Boor o de control.
Propiedades (ver [BFK84], [PT87J):
JVfí«) > O
* N™M > O
42 CAPÍTULO 4. EL DISEÑO DE LA SUPERFICIE
N? (u) = O si u g [u<,
Figura 4.8: (a) Malla de ptos. de control para B-Spline, (b) Superficie B-Spline
de grado (2,3). Vectores de nodos U={0,0,0,l/3,2/3,l,l,l} y V={0,0,0,0,1,1,1,1}
(de [PT87]).
44 CAPÍTULO 4. EL DISEÑO DE LA SUPERFICIE
tO, 1] x [O,
il
JÇ/(«,tO = O s i ( "0[^+n+l1
rango 4& =2
x M M
\ ou »v
46 CAPÍTULO 4. EL DISEÑO DE LA SUPERFICIE
*=
(4.24)
tí Ini *ti
X y Y í* Y Y Y ^ 3!_ t/_ 2-.
T Kl „ tí '^U|í \'VUtl'"'tt'*tí / f «/" t?
k n = (kN)N (4.29)
(Véase [Pog87], etc. para una discusión sobre el vector curvatura y torsión). Al
número
kn = kN (4.30)
48 CAPÍTULO 4. EL DISEÑO DE LA SUPERFICIE
E=l+p2, F = pq, G = 1 + q2
x(«,t>). = [u3,u2,u,l]T[N][D][N]T[3v2,2v,l,0]
x(«,t».« « [6u,2,0,0]T[N][D](N}T(v\v2,V>l]
x(«,»)„ - [3u2,2u,l,Q}T(N}[n}[N}Tl3v2,2v,l,G]
«(«,«)„ = [u\u2,u,l]T[N][D](N]T[6v,2,0,0]
A partir de las derivadas parciales se pueden calcular los coeficientes de las
formas fundamentales y, con éstas, hallar las curvaturas y ejes principales, y, de
aquí, los valores de potencia media y astigmatismo.
Metodología de Diseño
5.1 Introducción
A la hora de diseñar interactivamente una lente progresiva, se plantean una serie
de requerimientos de orden óptico, que ésta ha de cumplir. Estos requerimientos
hacen referencia, en su mayoría, a la distribución de potencias y astigmatismos
sobre la lente, magnitudes relacionadas con las derivadas segundas de la super-
ficie.
La necesidad de especificar la distribución de potencias es evidente dada
la naturaleza multifocal de este tipo de lente. La importancia de especificar el
astigmatismo es debida a que, entre todas las características ópticas de una lente
ésta es, con mucho, la que más incide en la nitidez de visión. Ello no excluye la
consideración de otras características como pueden ser la orientación de los ejes
principales de curvatura o los desequilibrios prismáticos entre un ojo y otro.
Es importante destacar aquí que, a pesar de que en muchas ocasiones tiene
más sentido hablar de la agudeza visual, el índice de borrosidad, etc; la mayoría
de estas magnitudes son combinaciones del astigmatismo y la potencia, en oca-
siones junto con los ejes principales de las curvaturas. Por simplicidad, pues,
nos referiremos a las magnitudes básicas, en vez de a las compuestas.
Por otra parte, en todos los trabajos y patentes consultadas, se parte de la
hipótesis implícita o explícita de que lo que se pretende distribuir según unas
ciertas especificaciones no es la aberración de onda de la luz que atraviesa el
sistema, sino el astigmatismo y la potencia superficiales. Esto es, no se hace
trazado de rayos ( lo que resultaría prohibitivo en tiempo de cálculo), sino que se
supone que si se distribuyen de una cierta forma las aberraciones superficiales,
las aberraciones de onda se distribuirán de forma análoga.
53
54 CAPÍTULOS. METODOLOGÍA DE DISEÑO
50-^
v
\
-40» 1 1 1 1 1 1 1 I [ 1 1 1 1 1 1 1 1 1 1
100
;
;
|
Mii|ini|impTTi|iTn;iin[imTnii|[iiirnnjiiiiiiiiipiii|iiii[iiiiiiin|
4 )i) -JOO -¿00 -100 00 100 200 »10 400
Dado el carácter local de las superficies a emplear, podemos dejar fijos una
serie de nodos, las propiedades de cuyos trozos de superfice sean ya satisfactorias
al principio de la optimización. Esto es aplicable, por ejemplo, a las zonas de
visión lejana y cercana, así como al pasillo de progresión. Por otra parte los
nodos que gobiernan las zonas margínales constituyen los candidatos ideales a
parámetros de optimización.
Para permitir la selección flexible, interactiva y sencilla de los nodos que
intervendrán activamente en la optimización disponemos en el sistema de una
pantalla como la que muestra la figura 5.3. En ella aparecen todos los nodos de
la superficie representados como pequeños puntos.
Los puntos señalados mediante rombos representan puntos seleccionados
como nodos activos en la optimización. Con un cuadrado sobre el rombo figuran
los nodos que forman la frontera que engloba a todos los demás nodos activos.
Con asteriscos está señalada la frontera hasta donde llega el efecto de modificar
los puntos de control activos. Más allá de esta frontera, la superficie permanece
inalterada en virtud de las propiedades de control local del formalismo selec-
cionado.
La zona sombreada (puntos intercalados) corresponde a los puntos donde se
efectúa el cálculo de la función de mérito.
5.3. VARIABLES DE OPTIM1ZACIÓN 59
Procedimiento A
En esta opción, el peso de un punto de índice t se calcula mediante una función
bídimensional que se diseña interactivamente, con la misma operatoria que la
evolución de la potencia o la trayectoria del meridiano (ver figura 5.4). En
500-1
400-1
300-1
200-1
100-1
100 300
Esto es muy útil con los N.U.R.B.S., en los cuales, variaciones de los fac-
tores de peso asociados a sus vértices de control, hacen variar la relación entre
los parámetros del trozo y su expresión cartesiana, con lo que resulta más venta-
joso calcular los pesos de mérito a partir de los puntos del espacio paramétrico
mediante el algoritmo anterior que trabajar en el espacio cartesiano y buscar el
trozo bicúbico y los parámetros u y v a partir de la x y la y (ver sección 7.4).
62 CAPÍTULOS. METODOLOGÍA DE DISEÑO
Procedimiento B
Esta opción permite la especificación interactiva de los valores a obtener en la
función de mérito, mediante el dibujo de las curvas de nivel de una cierta altura
de la superficie de la aberración en cuestión.
Con la misma operatoria básica ya conocida (seleccionar puntos y mover-
los) se pueden representar una serie de curvas de nivel para cualquiera de las
aberraciones o características que se quieran incluir en la función de mérito.
Una vez seleccionadas éstas, mediante una triangulación de Delaunay de los
puntos [Slo87] y una interpolación mediante el método de Shepard (ver [She68])
se genera la superficie y una vez conocida ésta se pueden dar valores concretos
a los puntos de cálculo del fichero de función de mérito.
Este método es muy versátil, pues permite especificar a "mano alzada" las
curvas de nivel deseadas para cualquiera de los factores que intervienen en la
optimización. Sin embargo, esta versatilidad es su principal defecto también, ya
que se pueden generar condiciones a cumplir por las superficies de astigmatismos
y potencias que son claramente incompatibles con la geometría diferencial de la
superficie a optimizar, lo que conduce en la práctica a resultados muy alejados
de lo buscado.
En este sentido, el procedimiento A, aunque menos flexible, se comporta
mejor, ya que son sólo los pesos los que se varían y los valores de astigma-
tismos, etc tienden a los de una esfera. Esto hace que normalmente se consigan
resultados más suaves y mejor distribuidos desde el punto de vista de la óptica
fisiológica que con el procedimiento B, en el que todo se deja al criterio del
usuario. Éste último, potencialmente más flexible, requiere del usuario una
intuición y una práctica en obtener condiciones compatibles con la geometría
diferencial del problema, que es costosa de conseguir, en comparación con el
criterio A.
Implementation en Paralelo
La optimization de una superficie B-Splines o NURBS con una malla del orden
de 15x15 puntos o más, aunque gracias al control local se reduzca a un área
restringida de la lente, representa tener un sistema de optimization multidimen-
sional con una dimensión por nodo modificable, lo que supone generalmente
más de 100 dimensiones. Esta proliferación de grados de libertad confiere una
gran flexibilidad de diseño, pero sobrecarga notablemente la CPU, elevando los
tiempos de cálculo a cotas elevadas.
Por todo ello los algoritmos más ávidos de tiempo de CPU (los de opti-
mization), han sido implementados en paralelo, utilizando una versión para sis-
temas multiprocesador del lenguaje 'C', que contiene una librería de funciones
de comunicación entre procesadores, semáforos y threads o tareas concurrentes
en un mismo procesador.
65
66 CAPÍTULO 6. IMPLEMENTACIÓN EN PARALELO
FINMIENTRAS
FINACCION
Aquí p_mat es una matriz de ndim+l por ndim elementos que contiene
el punto de partida de la optimization, y ndim-fl variaciones de sus puntos de
control modificables. Está generada por Genera_partida. "y" es un vector
que contiene la evaluación de la función de mérito F_merito en cada una de
las ndim+1 configuraciones de p_mat. Reflex es la función encargada de
realizar la reflexión. Ello se realiza según un factor que, si es menor que 1 en
valor absoluto, la convierte en una contracción respecto de una dirección; si es
negativo produce una reflexión propiamente dicha y si es positivo la convierte
en una expansión, siempre sobre la dirección del punto considerado. Contrae
realiza una contracción omnidirectional hacia el punto más bajo.
Estas 2 funciones proporcionan los cuatro modos de transformación del sim-
plexo antes mencionados. Ambas realizan la evaluación de la función de mérito
F_merito en la configuración calculada, sea contracción o reflexión.
F_merito es una función que toma como argumento vector y que, te-
niendo en cuenta la matriz de magnitudes especificados para la función de mérito
leídas mediante Lee_f un__merit, devuelve un número equivalente al valor de
mérito, calculándolo de la siguiente forma:
FUNCIÓN F_merito(vector)
Reconstruye(superficie, vector)
PARA i=0 HASTA n_merito PASO 1 HACER
t_i = trozo_i(i)
t_j = trozo_j(i)
u = par_u(i)
v = par_v(i)
SI modo == bspline ENTONCES
astig=Calc_ast_BS(superficie, t_i, t_j, u, v)
SINOSI modo -= nurbs ENTONCES
astig=Calc_ast_NURBS(superficie, t_i, t_j, u, v)
FINSI
m_ast=m_ast+(astig-ast(i))A2*peso(i)
FINPARA
F_merito=m_ast
DEVUELVE F_merito
FINFUNCION
6.2 Paralelización
6.2.1 Paradigmas de paralelización
Se nos plantea ahora el problema de cómo dividir nuestro algoritmo en tareas
independientes realizables por separado. Esta división no es, en general, única
[Mat87] y la paralelización se puede acometer a distintos niveles dentro del
algoritmo.
Por otra parte, es fundamental [Atk87] desacoplar las comunicaciones del
cálculo, para evitar que éste dependa de aquellas. Aún más, si el tiempo re-
querido para enviar la información a cada procesador es comparable con el
tiempo que pasa éste calculando, puede ocurrir que la paralelización de un al-
goritmo sea más ineficiente que su contrapartida secuencia!.
Distintos trabajos ([Pri90], [MS87]) reseñan fundamentalmente tres cate-
gorías de tipos de algoritmos susceptibles de paralelización en la práctica. Hay
que notar que los algoritmos reales pueden perfectamente solapar característi-
cas de varias categorías a la vez; incluso [Pri90] propone una cuarta categoría,
denominada de métodos híbridos.
Tuberías
En una tubería el resultado de las operaciones realizadas en un procesador ali-
menta al siguiente y así sucesivamente para todos ellos, como en una línea de
producción en cadena. De esta forma, una vez está llena la tubería, a la intro-
ducción de nuevos datos por un extremo de la tubería, corresponde la extracción
de resultados por la otra, consumiendo en ello tan sólo un ciclo de operaciones.
En este caso existe una dependencia secuencial entre cada una de las eta-
pas de la tubería y su rendimiento total está limitado por el rendimiento de la
6.2. PARALELIZACIÓN 71
más lenta de sus partes. Obviamente, el mejor caso se dará cuando todos los
elementos de la tubería procesen datos al mismo ritmo ÏMS87].
En el caso de un algoritmo especificable de esta forma, se puede, mediante
una bufferización [Atk87] adecuada de la entrada y la salida, eliminar cuellos
de botella y mantener permanentemente ocupados al procesador y a las líneas
de comunicación.
El modelo geométrico
Este modelo se basa en el hecho de que los datos (de entrada, salida o ambos)
se pueden considerar distribuidos de forma geométrica La cantidad de cálculos
a realizar en cada elemento ha de ser básicamente constante. Ejemplos de ello
son procesado de imágenes, búsqueda en bases de datos y aritmética de vectores
y matrices.
La técnica a emplear en este caso consiste en dividir el trabajo en segmentos
que se distribuyen equitativamente entre los procesadores disponibles. Si el
tamaño de las tareas asignadas a los diversos procesadores es similar, todos
ellos terminarán aproximadamente al mismo tiempo.
Si los segmentos se iníerrelacionan entre sí, la topología de la red cobra
especial importancia [Pri90], pues de ella depende la minimización de las co-
municaciones entre procesadores.
El modelo farming
Este modelo es similar al geométrico, pero procede cuando la cantidad de cálculo
por elemento varía considerablemente de unos a otros. Ray-tracing y fotorrea-
lismo son buenos ejemplos de este tipo de procesos.
En este caso se distribuye la carga de trabajo en gran número de pequeñas
tareas que se distribuyen por la red, cada procesador con una tarea. Cuando
acaban con una, envían de vuelta el resultado y reciben otra tarea.
Con una elección adecuada del tamaño de las tareas se puede solapar casi
completamente la comunicación con el cálculo obteniendo incrementos lineales
de rendimiento respecto del número de procesadores involucrados en la red.
Este tipo de algoritmos se benefician al máximo del paralelismo cuando
la relación entre el tiempo de cómputo y el de transmisión de datos es muy
superior a 1, dado que entonces los procesadores pasan un tiempo muy pequeño
comparativamente comunicándose, mientras que la tarea de cálculo se reparte
entre ellos, llegando a producirse una multiplicación de las prestaciones por un
factor cercano al número de procesadores implicados.
72 CAPÍTULO 6. IMPLEMENTACIÖN EN PARALELO
(6.2)
(m
que para 8 procesadores (hay que descontar el master) y los tiempos antedichos
resulta n « 8. Por debajo de este orden será más lento el proceso en paralelo
que en un sólo procesador. Hay que notar, además que para este orden sólo
conseguiremos hacer las multiplicaciones en un sistema multiprocesador igual
de lentas que en un monoprocesador. Ganancias sustanciales requieren que las
matrices sean de mayor orden aún.
Nuestras matrices son de 4x4 en todos los casos y además, entre operaciones
queda bastante código secuencial. Esto abona el terreno a la elección de la
74 CAPÍTULO 6. IMPLEMENTACIÔN EN PARALELO
6.3 Implementation
La implementation del algoritmo la realizaremos mediante una técnica similar
a processor farming, pero con configuración estática (ver Apéndice B). Para
ello dispondremos una tarea maestra (Master) encargada de la parte secuencial,
de la entrada y salida desde y hacia el host, y de la distribución y recogida de
información de y hacia la red de procesadores.
Por otro lado, dispondremos de una tarea esclava (Worker), con copias en
cada uno de los procesadores de la red, que realizará la evaluación de la función
de mérito en un subconjunto del conjunto de puntos del fichero, de forma que
entre todos los workers se cubra el total de los puntos.
Finalmente utilizaremos unas rutinas para gestionar la transvase de infor-
mación entre los workers y el master (routers). Éstas, en nuestro caso, son
dependientes de la topología de la red.
ACCIÓN Master
Inicializa_com(in_ports, out_ports)
Lee_entrada(sup_fich, log_fich, merit_fich, modo)
Lee_superficie(sup_fich, superficie, limites)
Lee_f un_merit(merit_fich)
Codifica(buffer,superficie)
PARA i=l HASTA num_trans PASO 1 HACER
Envia_datos(i, buffer)
num=i-l
longitud»1
Envia_M<longitud, num, i)
FINPARA
vector=Genera_vector_optira(superficie, limites)
Optimiza(superficie, vector, ftol, ndim, F_merito())
Escribe_salida(log_fich, superficie)
FINACCION
FUNCIÓN F_merito(vector)
Reconstruye(superficie, vector)
PARA i=l HASTA num_trans PASO 1 HACER
longitud = n_dim+l
Envia_M(longitud,vector, i)
FINPARA
PARA i=l HASTA num_trans PASO 1 HACER
longitud = Recibe_m(merito_rec, no_j3rocesador)
mérito = merito+merito_rec
FINPARA
SI iter <> O y cont MODULO 100 == O ENTONCES
Escribe_salida(log_fich,superficie)
FINSI
cont=cont+l
F_merito=merito
DEVUELVE F_meritO
FINFUNCION
vector=buffer
merito=F_merito_t(vector, num)
longitud=l
Envia_W(longitud,mérito)
FINMIENTRAS
FINACCIÓN
Nótese que el bucle en que entra el worker es infinito. Siempre está esperando
recibir y procesar la información. No hace falta comunicarle la finalización del
proceso pues al acabar el master se finalizan todos los procesos pendientes en
la red.
master los mensajes del worker, Eí router lanza tres threads diferentes, uno para
comunicarse con la aplicación, otro para redirigir los mensajes línea "abajo" y
otro para redirigir los mensajes línea "arriba" (ver Figura 6.1). El código de
estos threads se puede representar esquemáticamente como sigue:
ACCIÓN Aplicación
valor=l
MIENTRAS valor <>0 HACER
Lee_mensaje(cab,mensaje, in_p(CANAL_APLIC))
fuente = procesador
destino = raiz
cab=construye(fuente,destino)
Espera_semaforo (arriba)
Manda_mensaje(cab, mensaje,out_p(CANAL_ARRIBA))
Cambia_semaforo (arriba)
FIN MIENTRAS
FINACCION
Aplicación acepta mensajes de la aplicación y añade información para su
redirección hacia el procesador raíz. El mensaje se pasa entonces línea arriba. El
uso del puerto CANAL_ARRIBA esta protegido por el semáforo arriba. Ello
es debido a que, en dirección al procesador raíz pueden emitirse simultáneamente
varios mensajes, lo que obliga a utilizar un semáforo a efectos de sincronización.
ACCIÓN Para_arriba
valor=l
MIENTRAS valor <>0 HACER
(* Lee cabecera y mensaje *)
Lee_mensaje(cab,mensaje,in_p(CANAL_ABAJO))
Espera_semaforo (arriba)
Manda_mensaje(cab, mensaje,out_p(CANAL_ARRIBA))
Cambia_semaforo (arriba)
FIN MIENTRAS
FINACCION
Para_arriba acepta mensajes del puerto de entrada CANAL_ABAJO
(línea abajo) y los pasa entonces línea arriba. El uso del puerto CANAL_ARRIBA
esta protegido por el semáforo arriba.
ACCIÓN Para_abajo
valor=l
MIENTRAS valor <>0 HACER
(* Lee cabecera y mensaje *)
80 CAPÍTULO 6. IMPLEMENTACIÔN EN PARALELO
Worker Router
Tn
Figura 6.1: Esquema de los enlaces físicos y del flujo de mensajes entre proce-
sadores. Éste está gobernado por los routers.
6.3. IMPLEMENTACIÓN 81
Lee__mensaje(cab,mensa je,in_p(CANAL_ARRIBA)
Descifra(cab,destino)
SI destino == procesador ENTONCES
Manda_mensaje(cab, mensaje,out_p(CANAL_APLIC))
SINO
Manda_mensaje(cab, mensaje,out_p(CANAL_ABAJO))
F INS I
FIN MIENTRAS
FINACCION
Comparación de
Interpolaciones
Una vez establecida una metodología y unos algoritmos de diseño, podemos
evaluar distintas formulaciones matemáticas en condiciones homogéneas. Dado
que hemos descartado en principio las formulaciones que no poseen control local
ni suficiente suavidad, nos proponemos evaluar B-Splines y NURBS comparati-
vamente.
Para ello es necesario diseñar una estrategia de evaluación y comparación
entre las distintas formulaciones para valores significativos de los parámetros de
diseño de las lentes.
83
84 CAPÍTULO 7. COMPARACIÓN DE INTERPOLACIONES
o o
o
— o
~ ce
rt a
E 2
5J
t l
à; d o
tr~oj
o
c ~
l l ! l l l I I
Figura 7.1: Diseño del pasillo en las adiciones de prueba. En la figura, pasillo
de una adición de 1 D. Los otros dos son proporcionales a éste.
7. 1. CONTENIDO DE LAS PRUEBAS 85
00-Ê
•100-i
*Q n -j '- *.' '.* '.' *.' '•' '.' ' . . . _ ' ' . * '.' '.' '.• *.' .'. L
-300-^
Qi
O
I
I
siendo
7.4 Realización
Inicialmente se realizó una tanda de pruebas optimizando la función de mérito
en el espacio paramétrieo, esto es, dados el trozo bicúbico definido por la fila i
y la columna j y los parámetros « y v, se calcula siempre en estos parámetros,
independientemente del punto cartesiano que definan en cada momento. En el
caso de B-Splines el punto cartesiano asociado siempre es el mismo, puesto que
sólo permitimos el movimiento de las componentes z de los puntos de control.
Así pues, optimizar en el espacio cartesiano o en el paramétrieo es equivalente,
con la única salvedad de que es más rápido hacerlo en el paramétrieo, puesto
que no hay que encontrar el trozo bicúbico y los parámetros « y v a partir de z
e y.
No ocurre lo mismo con los NURBS, en los cuales, la modificación del
valor del peso afecta a las coordenadas x, y, z. Por ello, en este caso no existe
equivalencia entre la optimización en el espacio paramétrieo y el cartesiano, a
menos que los pesos asociados a cada punto del espacio paramétrieo se calculen
en función del punto del espacio cartesiano correspondiente. Esto se consigue
utilizando una función que represente el valor de los distintos pesos de mérito
en todo el espacio cartesiano.
Para cotejar los resultados obtenidos se realizó una segunda tanda de pruebas
con NURBS, en los cuales se sustituyó la optimización en el espacio paramétrieo
90 CAPÍTULO?. COMPARACIÓN DE INTERPOLACIONES
por el espacio cartesiano. Esto obliga a buscar el trozo bicúbico y los parámetros
« y v a partir de las coordenadas cartesianas. Esto, que en el caso B-Spline con
distribución equiespaciada de los puntos es directo, se convierte en un problema
de minimización en el caso de los NURBS.
Ello es debido a que en un caso las «-líneas y las v-Iíneas son rectas or-
togonales y en el otro no son líneas rectas, sino que presentan ondulaciones,
dependiendo de los valores de los pesos correspondientes a los vértices de control
en cuestión.
Partiendo de el trozo bicúbico t_i, t_ j utilizamos el método de minimi-
zación de Polack-Ribiere [Pol71], implementado según [PFSV88]. Este método
hace uso del conocimiento del gradiente de la función a minimizar, que no es
otra que
/(* W) = (*'-*)' + (y' -y)2 (7.1)
donde z e y son las coordenadas cartesianas que queremos obtener y z' e y7
son las coordenadas correspondientes a los parámetros u y v actuales en el trozo
t_i, t_j.
El algoritmo de localización del trozo y los valores de los parámetros u y v,
partiendo de un trozo bicúbico t_i y t_j probable, tiene la forma siguiente:
ACCIÓN Localiza_x__y (x, y)
ftol=1.0e-4
fret=2*ftol
avisl=0
avis2=0
MIENTRAS fret > ftol Y avisl == O O avis2 == O
f ret=minimiza (u, v, ftol, función, gradiente)
SI conta MODULO 2 == O ENTONCES
conta=conta+l
SI u-0.0 < ftol y t_i > O ENTONCES
t_i=t_i-l
u=0.99
SINOSI 1.0-u < ftol y t_i < nvertexh-4 ENTONCES
u=0.01
SINO
avis l=avis 1+1
FINSI
SINOSI conta MODULO 2 == 1 ENTONCES
conta=conta+l
SI v-0.0 < ftol y t_j > O ENTONCES
7.5. RESULTADOS 91
_ _
v=0.99
SINOSI 1.0-v < f toi y t_j < nvertexv-4 ENTONCES
v=0.01
SINO
avis2=avis2+l
FINSI
FINSI
FINMIENTRAS
FINACCION
7.5 Resultados
Para evaluar comparativamente los resultados de las distintas optimizaciones
hemos realizado la representación gráfica de las mismas, para las distintas
variantes de optimización (ver sección 7.2). Además, para poder evaluar
numéricamente las diferencias entre unos resultados y otros, hemos creado una
92 CAPÍTULO?. COMPARACIÓN DE INTERPOLACIONES
rutina de evaluación que asigna unos valores a cada aberración en función del
criterio de mérito siguiente:
Ait =
i
Gráfico de Astigmatismo
INTO
Intervalo i - I Û O « 100
Puo . - O 50
= I I , . - \ \ i Fich b4t300dOKl
1011-1 l l i ' •• \ \ > Fecha 06/14/9]
/ / / V \ 1 Hort 09 4« 51
-¿«u - l l i \ \ \
l l i I I ' WFO
- W (1 -i I ' l t '
INFO
InUrvtlo: -50 1 SO
Paso = 060
índice = 1600
Potencia 5 00
Base = 500
Concaw= 000
idlCIOD = 300
Esp C = 000
Diámetro 60 00
Otros Datos
Dch b4a300dlecl
FKha 06/14/91
Hon 101225
INFO
Gráfico de Astigmatismo
índice : 1800
Poten««: 500
Base : SOD
Costara- 000
Adición = 300
Esp C = 000
Diàmetre 8000
Olios Datos
Fith MaMIdl Kl
Fecha 06/14/91
Hora II41M
WTO
lnlir»»Jo= - 9 0 a 90
Paw : OSO
INFO
Gráfico de Astigmatismo
1KFO
Intervalo = -50> 50
Paso = O 60
-400 -300 -200 -100 00 100 200 300 400
DÍFO
1 Indict ? 1600
400-1 Potencia 5 00
-| B»je = 500
300-¡ Conca?a= 000
•= Adicwa : 300
¿00—r
Esp C = 000
100-5 Dumetrr 80 00
-5 , , , , / v , , , ,
Otros Dato«
00-| I I X > I I . \
-| i • - - l 1 i rVh M«300d2«l
-100-1 / \ \ \ í . \ Feclu 06/14/91
-¡ 1 / \ \ - i / Nora 112530
-¿00-= 1 - l \ • '
l - , i INTO
JO 0-1
1 Unfitud de ejei propor-
-400-1 cíoDal al astiimatun»
""i""'""!""!""!""!"'!""!'"1!»"!»"!"»!»»!»"!»"!"»!»»!'»'!
-400 300 -200 -100 00 100 200 300 400
—„.
7.6 Conclusiones
De los resultados anteriormente vistos podemos elaborar una tabla cualitativa
referente al comportamiento de los dos tipos de interpolación estudiados. Esta
es la tabla 7.3. Si tenemos en cuenta las figuras de Astigmatismo, Potencia y Ejes
Conclusiones y Futuros
Trabajos
8.1 Aportaciones
Las aportaciones realizadas por este trabajo se pueden condensar como sigue:
• Se ha creado el dispositivo necesario para la edición interactiva de diseños
y especificaciones de lentes progresivas, dentro del marco de un sistema
de C.A.D, interactivo específico para Óptica Oftálmica (Capítulo 5).
• Se han utilizado B-Splines y NURBS como formalismo soporte de la rep-
resentación y tratamiento de la superficie óptica de una lente oftálmica.
Ello representa haber multiplicado por 20 el número de grados de liber-
tad de los formalismos conocidos utilizados hasta el momento en óptica
oftálmica para este tipo de lentes.
• Se ha establecido un procedimiento de evaluación de lentes progresivas y
se ha comparado los resultados de optimizar los mismos diseños mediante
ambos formalismos, a la luz del sistema de evaluación (Capítulo 7).
• Se ha puesto a punto un sistema de optimización de las superficies progre-
sivas, utilizando un sistema multiprocesador M1MD basado en transputers.
Se han creado las rutinas necesarias para la comunicación y tratamiento
de los datos objeto de la optimización. (Capítulo 6).
• Igualmente se evalúa el nivel más eficiente de paralelización , la topología
de la red de procesadores y el modelo de paralelismo más adecuado al
algoritmo de optimización, teniendo en cuenta el hardware para el que se
programa. (Secciones 6.2 y 6.3)
105
106 CAPÍTULO 8. CONCLUSIONES Y FUTUROS TRABAJOS
8.2 Conclusiones
Las conclusiones principales que se pueden extraer del trabajo realizado son las
siguientes
• B-Splines se muestra como un método de interpolación idóneo para el
diseño de lentes progresivas. Sus propiedades intrínsecas favorecen la
distribución suave de las aberraciones y la orientación crioscópica de los
ejes principales de curvatura, de una forma natural, aún cuando sólo se
optimiza el astigmatismo.
• Aún siendo NURBS un formalismo con mayor número de grados de liber-
tad que B-Splines, la intervención de los pesos en la optimización rebaja
el nivel de astigmatismo, a costa de la crioscopia y de la regularidad de
la distribución de astigmatismos y potencias medias, lo cual es negativo
desde el punto de vista fisiológico, ya que se percibe como irregularidades
en la visión dinámica y no favorece la visión estática.
• La implementación en paralelo del sistema de optimización está especial-
mente indicada en este caso, ya que, con más de 100 grados de libertad,
el tiempo de cálculo es muy extenso.
• Se ha conseguido una paralelización elevada del algoritmo de opti-
mización. Se ha ganado un factor 6.2, utilizando una tarjeta con 8 proce-
sadores dedicados a la parte paralela del algoritmo, respecto a la velocidad
de cálculo del mismo algoritmo secuencia! calculado en un solo proce-
sador. Ello representa un 77% de paralelismo conseguido.
El Ojo Humano
Para la comprensión de los fenómenos ligados a la visión es indispensable un
conocimiento funcional del ojo. El ser humano es un animal predominantemente
visual en lo que a proceso de la información del mundo exterior se refiere. Por
otra parte, no hay que olvidar que las lentes progresivas pretenden suplementar al
ojo présbita, aprovechando las cualidades fisiológicas de éste y las de adaptación
y tratamiento de datos del cerebro. Conjunto sin el cual una lente progresiva
deviene esencialmente inútil.
El ánimo de este apéndice no puede ser otro que el de dar unas nociones
muy resumidas de la anatomía del globo ocular y de la fisiología y función del
mismo.
109
110 APÉNDICE A. EL OJO HUMANO
Cámara anterior
Pupila
Córnea
Conjuntiva Iris
Cámara
Canal de posterior
Schlemm
Cuerpo
ciliar
Músculo
•recto
interno
Ora
serrata
Esclen tica
Macula lútea
\?r .j óptico
Arteria \ v e n a centrales
de la re*i"a
Figura A.2: Anatomía del Ojo. Corte horizontal del ojo situado en la órbita
izquierda.
112 APÉNDICE A. EL OJO HUMANO
Sistemas de Transputers
Debido al alto número de dimensiones en que se desarrolla la optimización,
resulta aconsejable realizar la misma utilizando el cálculo en paralelo. En nuestro
caso particular, dado que estábamos desarrollando sobre compatibles IBM AT
de altas prestacionas (iapx80386 a 25 MHz) se imponía la consideración de que
el hardware de proceso en paralelo fuese compatible con estas máquinas.
El hardware sobre el que se ha implementado este proyecto, en cuanto a
su programación en paralelo, ha sido un ordenador Compaq 386/25 con una
tarjeta Fast9 de Quintek Ltd. (UK). En el momento de su adquisición (Sept, de
1988),este hardware presentaba la mejor relación precio/MFLOP del mercado.
La tarjeta Fast9 de Quintek constituye [Qui88] un sistema MIMD (Múltiple
Instruction, Multiple Data) compuesto por:
• 9 Transputers INMOS T800-20 de 32 bits que proporcionan cada uno 1.5
MFLOPS (4000 Whetstones/s frente a 1083 de VAX 11/780 [ST87]) de
rendimiento teórico sostenido.
• Un megabyte de DRAM local por transputer.
• Una estructura de enlace reconfigurable electrónicamente mediante el chip
IMS C004, que permite cambiar la topología de la red que forman los
nueve transputers.
• Velocidad en las líneas de enlace configurable a 10 Af6¿í* • »~l o 20
Mbits • í-1
• Conectores de expansión que permiten conectar varias placas entre sí.
El Transputer INMOS T800, es un sistema VLSI [Inm88] que incorpora en un
solo chip 4Kbytes de memoria, CPU de 32 bits, FPU operando concurrentemente
115
116 APÉNDICE B. SISTEMAS DE TRANSPUTERS
PIPE9
TREE9
SKIP9 BOX9
GRI09
Router
Aplicación
• La granularidad de la paralelización.
• La relación entre el volumen de cálculo a realizar por cada procesador y
el volumen de información a recibir/enviar por el mismo.
• La posibilidad de incluir la parte más crítica o intensiva del cálculo en los
4Kbytes de RAM de cada procesador.
• Correr los procesos que utilizan los enlaces con alta prioridad, para evitar
tiempos muertos esperando la recepción de mensajes.
• Desacoplar la comunicación del cálculo.
Límite
teórico.
Rendimiento
inicial
Número de procesadores
Obtención de Vértices de
Control
C.l Introducción
La formulación mediante B-Splines proporciona un excelente sistema de repre-
sentación de superficies, salvo por el hecho de que los puntos especificados por
el usuario no están sobre la superficie. Incluso en los casos en que no se pretende
interpolar una superficie conocida, sino diseñarla, es muy conveniente [BG80]
poder encontrar los puntos de control que producen la superficie B-Spline que
interpola un conjunto completamente especificado de puntos de la superficie,
que llamaremos de paso.
En [WAG77] se desarrolla un algoritmo que permite hallar los puntos de
control que interpolan un conjunto de puntos de paso dados, para B-Splines uni-
formes. Estos se caracterizan porque el espacio paramétrico está uniformemente
subdividido. En este caso la resolución resulta particularmente eficiente. El
artículo de [WAG77] resuelve el problema de hallar los nodos de control para
curvas que son secciones de la superficie, e interpola la superficie según el otro
parámetro mediante Splines Cardinales, que tienen la propiedad de interpolar los
puntos de paso.
[BG80] resuelve también el problema, mediante la solución de un sistema
lineal de ecuaciones.
En [BAN83] se describe un algoritmo análogo, en el que se encuentran los
vértices de control a partir de los puntos de paso produciendo directamente los
puntos de deBoor de una superficie B-Spline, pero partiendo de un supuesto
121
122 APÉNDICE C. OBTENCIÓN DE VÉRTICES DE CONTROL
C.2 Un algoritmo
Seguiremos aquí la pauta establecida en el artículo de [BAN83], que es el que
ha dado lugar a la implementación actual de nuestro sistema de conversión de
puntos de paso a vértices de control.
Expresando la superficie en función de las bases de los Splines Cardinales,
podemos interpolar toda la superficie con una formulación que contiene a todos
los puntos de paso. No obstante perdemos el control local, ya que los Splines
Cardinales poseen control global.
La definición de los Splines Cardinales nos permite escribir para n por m
puntos
• Ci(u) es una cúbica en todo el intervalo tt» < tt < u^i para
1 < Jb < n
O si i 3 j
• C¿(u) satisfacen condiciones específicas de contorno para « = ttj y para
u = wn. En función de estas condiciones se obtienen distintos tipos de
splines.
= A71A2 (C.3)
donde
6 6 0 0
1 4 1 0
0 1 4 1
(C.4)
0 1 4 1
0 0 6 6
-13 15 -3 1
- 3 0 3 0
0 - 3 0 3
(C.5)
0 - 3 0 3
-1 3 -15 13
Por otra parte, la misma superficie interpolada por los Splines Cardinales se
puede construir mediante B-Splines, conociendo los (n + 2)x(m + 2) vértices de
control apropiados d,-,-. Podemos escribir:
n+2 m+2
,v = (C.6)
125
126 BIBLIOGRAFIA
[Dav78] J.K. Davis. Aspheric lenses: what's possible and what isn't. Review
ofOptometry, 115:68-74, 1978.
[InmSS] Inmos. Ims t800 architecture. Inmos Bristol Technical Note 6, Jan-
uary 1988.
[Jef57] J.H. Jeffree. Improvements in or relating to lenses. Patente Inglesa.
N° 775,007, 1957.
[KR81] G.A. Kitchen and WJ. Rupp. Lentille ophtalmique à puissance focale
variable progressivement Patente Francesa N° 2.476.333,1981.
[Leg45] Yves Legrand. Optique Physiologique. Volume 1, Editions de la
Revue d'Optique, 1945.
[Leg46] Yves Legrand. Optique Physiologique. Volume 2, Editions de la
Revue d'Optique, 1946.
[Leg61] Yves Legrand. Studies on the human cornea: aplication to the apha-
kic eye. Trans. Int Ophtalmie Congress, 1961.
[Lip85] Martin Lipschutz. Geometría Diferencial. Compendios Schaum,
McGraw-Hill, 1985.
[Mai62] B. Maitenaz. Recentes études relatives à l'utilisation de nouvelles
surfaces progressives comme moyen de correction. Conferencia,
1962.
[Mai66] B. Maitenaz. Four steps that led to varilux. American Journal of
Optometry, 43:413-450, 1966.
[Mai74] B. Maitenaz. Ophtalmie lenses with progressively varying focal
length. Patente estadounidense N" 3.785.724, 1974.
[Mat87] Philip Mallos. Program design for concurrent systems. Inmos Bristol
Technical Note 5, February 1987.
[Min63] G. Minkwitz. Über den Flächenastigmatismus bei gewissen sym-
metrischen Asphären. Óptica Acta, 10(3):223-227, Julio 1963.
[Mou88] Bernard MoucheL Les Verres Progressifs. Optic 2000, Paris, 1988.
[MS87] D, May and R. Shepherd. Communicating process computers. Inmos
Bristol Technical Note 22, February 1987.
[NM65] J.A. Neider and R. Mead. Computer Journal, 7:308, 1965.
[NR83] W. Newman and Sproull R. Principles of Interactive Computer
Graphics. McGraw-Hill, 1983.
[Obs78] Henri Obstfeld. Optics in vision. Butterworths, 1978.
128 BIBLIOGRAFIA