• No se han encontrado resultados

Modelo de radio propagación basado en trazado de rayos - captura de una escena en 3D y uso de las técnicas BFC y AZB

N/A
N/A
Protected

Academic year: 2020

Share "Modelo de radio propagación basado en trazado de rayos - captura de una escena en 3D y uso de las técnicas BFC y AZB"

Copied!
98
0
0

Texto completo

(1)Modelo de radio propagación basado en trazado de rayos: captura de una escena en 3D y uso de las técnicas BFC y AZB. Felipe Agustín Rodríguez Sarria. Proyecto de Grado para optar por el título de Ingeniero Electrónico. Asesor Ing. Fernando de la Rosa Co-Asesor Ing. Roberto Bustamante. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA ELÉCTRICA Y ELECTRÓNICA BOGOTÁ D.C 2002.

(2) IEL2-2002-II-20. Tabla de Contenido Prólogo.............................................................................................................................vi. 1. Marco teórico................................................................................................................1 1.1. Metodología técnica de trazado de rayos (ray tracing) ..............................................1 1.1.1. Introducción: problema de comunicaciones .......................................................1 1.1.2. Introducción: Simplificación de una escena .......................................................1 1.2. Modelos de Trazado de rayos ...................................................................................3 1.3. Trazado de rayos: el método de las imágenes ...........................................................4 1.3.1. Árbol de imágenes.............................................................................................7 1.4. Clasificación de las técnicas de aceleración trazado de rayos.................................10 1.5. Técnica de aceleración AZB (Angular Z Buffer) ....................................................11 1.6. Uso de la técnica AZB para distintos fenómenos ópticos........................................13 1.7. Técnicas de aceleración trazado de rayos................................................................15 1.7.1 Interacción entre la técnica de aceleración AZB y el método de propagación basado en imágenes:..................................................................................................15 1.7.2. Creación/Interrogación del árbol:.....................................................................18 1.7.3. Algoritmos de intersección rayo-cara...............................................................19 1.7.3.1. Algoritmos de intersección con caras particulares en 3D..........................22 2. Diseño modelo de Radio Propagación....................................................................24 2. 1. Levantamiento de requerimientos.........................................................................24 2.1.1. Identificación y restricción del problema .........................................................24 2.1.2. Requerimientos modelo de propagación ..........................................................25 2.1.3. Requerimientos desarrollo software.................................................................26 2.2. Etapas desarrollo del modelo .................................................................................29 2.2.1. Preprocesamiento: ...........................................................................................30 2.2.2. Construcción árbol de imágenes: .....................................................................30 2.2.3. Evaluación fenómeno óptico reflexión:............................................................31 2.2.4. Presentación de resultados: .............................................................................31. 3. Implementación del modelo......................................................................................32 3.1. Consideraciones de diseño construcción de software..............................................32 3.2. Metodología construcción del modelo ....................................................................34 3.3 Primera etapa: Preprocesamiento.............................................................................35 3.3.1 Experimento 1: Caracterización de figuras geométricas en el espacio utilizando VRML. .....................................................................................................................36 3.3.2 Experimento 2: Creación y validación de la base de datos construida a partir de la información vectorial de una escena, utilizando VRML.........................................42 3.3.2.1 Nivel 1: Representación de la primitiva vértice en la escena 3D ................45 3.3.2.2 Nivel 2: Representación de la primitiva cara en la escena 3D....................47 3.3.2.3 Método y presentación de los resultados....................................................52 ii.

(3) IEL2-2002-II-20. 3.4 Segunda etapa: uso técnicas de para la aceleración de trazado de rayos Back Face Culling (BFC) y Angular Z-Buffer (AZB).....................................................................57 3.4.1 Experimento 1: Implementación y validación de la técnica BFC para distintos puntos de observación en distintas escenas 3D simuladas en VRML. ........................59 3.4.2 Experimento 2: Creación del "plano AZB", para distintos puntos de observación en distintas escenas 3D simuladas en VRML.............................................................69 3.4.3 Experimento 3: Creación y validación de un anxel: ubicación de las caras en el anxel .........................................................................................................................79 4. Continuación del Modelo ..........................................................................................89 Conclusión ......................................................................................................................90 Bibliografía:.....................................................................................................................91. iii.

(4) IEL2-2002-II-20. Tabla de Figuras Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura. 1: Datos de entrada al modelo ......................................................................................................... 2 2: Información que debe tener el modelo geométrico de la escena .................................................... 3 3: Fenómeno óptico una reflexión .................................................................................................... 5 4: Fenómeno Óptico dos reflexiones................................................................................................. 6 5: Generación del árbol de imágenes ............................................................................................... 8 6: Ejemplo árbol de imágenes [1] .................................................................................................... 9 7: Interrogación árbol de imágenes.................................................................................................. 9 8: Definición Anxel ........................................................................................................................ 11 9: Construcción Plano AZB [1]...................................................................................................... 12 10: Espacio de reflexión de una cara en el plano AZB .................................................................... 14 11: Esquema técnica AZB .............................................................................................................. 15 12: Matriz AZB .............................................................................................................................. 16 13: Interrogación del árbol............................................................................................................ 18 14: Intersección rayo-cara [1] ....................................................................................................... 19 15: Determinación del plano de la cara [1].................................................................................... 20 16: Algoritmo intersección rayo-plano [1]. .................................................................................... 20 17: Puntos adentro y afuera de una cara........................................................................................ 21 18: Intersección rayo-segmento sobre un plano.............................................................................. 22 19: Intersección de dos segmentos en un plano............................................................................... 23 20: Etapas Desarrollo del modelo.................................................................................................. 29 21: Construcción TAD [4] ............................................................................................................. 34 22: Etapa preprocesamiento .......................................................................................................... 35 23: Parámetros definición figura geométrica "caja"....................................................................... 37 24: Esquema "Crescena"; creación de una escena.......................................................................... 38 25: escena.txt: archivo texto escena 3D simulada........................................................................... 40 26: Numeración de caras y vértices para la figura tipo caja. .......................................................... 41 27: Escena 3D simulada en VRML , "escena.wrl"........................................................................... 42 28: Representaciones de una escena en 3D..................................................................................... 42 29: Niveles de representación de una escena en 3D........................................................................ 44 30: TAD vértices............................................................................................................................ 46 31: Caja Negra "pruebv.cpp"......................................................................................................... 47 32: TAD Lvertices.......................................................................................................................... 48 33: TAD Lesquinas ........................................................................................................................ 48 34: Prueba TAD "Lesquinas" en "pruebesq.cpp"............................................................................ 49 35: TAD "Lcaras".......................................................................................................................... 50 36: Estructuras y funciones TAD "Lcaras". .................................................................................... 50 37: Prueba TAD "Lcaras" en pruebac.cpp...................................................................................... 51 38: Experimento validación captura y validación archivo descriptivo escena 3D. ........................... 52 39: EJEMPLO 1 Escena 3D simulada; Escena.wrl con exp0BFC.txt............................................... 53 40: EJEMPLO 1 Escena 3D simulada; EscenaV.wrl con exp0BFC.txt ............................................ 53 41: EJEMPLO 1 Escena 3D simulada; EscenaC.wrl con exp0BFC.txt............................................ 54 42: EJEMPLO 1 Escena 3D simulada; EscenaCVwrl con exp0BFC.txt........................................... 54 43: EJEMPLO 2 Escena 3D simulada; Escena.wrl con exp2BFC.txt............................................... 55 44: EJEMPLO 2 Escena 3D simulada; EscenaV.wrl con exp2BFC.txt ............................................ 55 45: EJEMPLO 2 Escena 3D simulada; EscenaC.wrl con exp2BFC.txt............................................ 56 46: EJEMPLO 2 Escena 3D simulada; EscenaCV.wrl con exp2BFC.txt.......................................... 56 47: Caja negra técnicas de aceleración BFC y AZB........................................................................ 57 48: Relación entre la técnica BFC y AZB ....................................................................................... 58 49: Técnica Backface culling ......................................................................................................... 59 50: Esquema "PruebaBF.cpp": validación técnica BFC ................................................................. 60 51: Pseudo-código técnica BFC ..................................................................................................... 60 52: Representación abstracta TAD BFC......................................................................................... 61 53: Estructuras TAD BFC.............................................................................................................. 62 54: EJEMPLO 3; Uso Bakfaceculling con Exp0BFC.txt O=(10,0,0) ............................................... 64. iv.

(5) IEL2-2002-II-20 Figura 55: EJEMPLO 3; Uso Bakfaceculling con Exp0BFC.txt O=(12,12,12) .......................................... 65 Figura 56: EJEMPLO 4; Uso Bakfaceculling con Exp2BFC.txt O=(45,54,32) .......................................... 66 Figura 57: EJEMPLO 4; Punto de observación y escena ........................................................................... 66 Figura 58: EJEMPLO 4; Punto de observación y escena ........................................................................... 67 Figura 59: EJEMPLO 4; Punto de observación y escena ........................................................................... 67 Figura 60: EJEMPLO 5; Uso Bakfaceculling con Exp2BFC.txt O=(-10,10,-10)........................................ 68 Figura 61: EJEMPLO 5; Vista desde abajo .............................................................................................. 68 Figura 62: Definición Anxel ...................................................................................................................... 69 Figura 63: Definición plano AZB............................................................................................................... 70 Figura 64: Matriz AZB .............................................................................................................................. 71 Figura 65: Espacio AZB ............................................................................................................................ 71 Figura 66: Esquema validación creación plano AZB.................................................................................. 72 Figura 67: Representación en archivo texto plano AZB.............................................................................. 73 Figura 68: Escena exp0BFC.txt y punto de observación............................................................................. 74 Figura 69: EJEMPLO 7 Plano AZB con las caras trazadas por esferas...................................................... 75 Figura 70: EJEMPLO 7; Plano AZB con IndexedLineSet........................................................................... 75 Figura 71: EJEMPLO 8; Plano AZB Exp0BFC.txt con S={5,6,7} ............................................................. 76 Figura 72: EJEMPLO 8; Plano AZB con IndexedLineSet.......................................................................... 77 Figura 73: EJEMPLO 8; Plano AZB con las caras trazadas por esferas ................................................... 77 Figura 74: EJEMPLO 9; Exp2BFC con S={45,54,32} ............................................................................... 78 Figura 75: EJEMPLO 9 Plano AZB con IndexedLineSet............................................................................ 78 Figura 76: EJEMPLO 9; Plano AZB con las caras trazadas por esferas .................................................... 79 Figura 77: Casos cara dentro de un Anxel ................................................................................................. 80 Figura 78: Esquema experimento 3: Caras dentro de un Anxel .................................................................. 81 Figura 79: Figura TAD Anxel (2) .............................................................................................................. 82 Figura 80: Prueba Bounding-Box.............................................................................................................. 82 Figura 81: Prueba Cohen-Sutherland........................................................................................................ 83 Figura 82: EJEMPLO 10 Anxel Ubicado en plano AZB con expo0BFC.txt, S={-10,0,0}Anxel= {80,110,100,110} ....................................................................................................................................... 83 Figura 83: EJEMPLO 10 Caras que están dentro del anxel ....................................................................... 84 Figura 84: EJEMPLO 11 Anxel Ubicado en plano AZB con expo0BFC.txt , S= {-10,0,0}Anxel= {128,140,110,135}} .................................................................................................................................... 84 Figura 85: EJEMPLO 11 Caras que están dentro del anxel ....................................................................... 85 Figura 86: EJEMPLO 12 Anxel Ubicado en plano AZB con expo2BFC.txt , S= {12,12,12}Anxel= {203,207,107,120}...................................................................................................................................... 85 Figura 87: EJEMPLO 12 Caras que están dentro del anxel ....................................................................... 86 Figura 88: EJEMPLO 13 Anxel Ubicado en plano AZB con expo2BFC.txt , S= {45,54,32}Anxel= {190,210,100,120}...................................................................................................................................... 86 Figura 89: EJEMPLO 13 Caras que están dentro del anxel ....................................................................... 87 Figura 90: EJEMPLO 14 Anxel Ubicado en plano AZB con expo2BFC.txt , S= {12,12,12}Anxel= {180,210,60,110} ....................................................................................................................................... 87 Figura 91: EJEMPLO 14 Caras que están dentro del anxel ....................................................................... 88. v.

(6) IEL2-2002-II-20. Prólogo. A lo largo del desarrollo de este proyecto en este semestre he realizado una serie de avances de lo que viene a ser la construcción del modelo de radio propagación basado en trazado de rayos, utilizando la técnica de aceleración BFC (Back Face Culling) y AZB (Angular Z-Buffer). Éste documento es en buena parte un compendio de los informes realizados. Espero que el lector al finalizar de leer este documento pueda ser capaz comprender el significado del proyecto realizado.. El aporte de este proyecto es que se diseño una metodología para el desarrollo del modelo de radio propagación basado en trazado de rayos, y además se implementó y validó las primeras dos partes que son la captura y simplificación de una escena en 3D con cara planas, y el uso de las técnicas BFC y AZB.. Hasta ahora las partes realizadas del modelo, se hicieron en el lenguaje de programación C y además se validaron en VRML. El objetivo con cada parte era el de lograr justificar y demostrar el funcionamiento de cada módulo. El resultado, es una serie de librerías que servirán de ayuda para la persona que continúe el proyecto.. El proyecto recopila una variedad de disciplinas, entre las que puedo identificar:. 1. Computación gráfica: las técnicas de trazado de rayos, la solución al problema de las sombras, y los algoritmos de intersección entre un rayo y cara, y el formato del archivo texto que representa la escena son ideas tomadas a partir de esta rama del conocimiento.. 2. Estructuras de datos: se creo una estructura de datos propia para modelar la escena compuesta por caras planas. Se tuvo especial cuidado en el diseño de éstas para garantizar la eficacia del modelo. El concepto de uso de varios TAD (Tipos Abstractos de Datos), se utiliza a lo largo del modelo.. 3. Teoría Electromagnética: brinda el fundamento teórico sobre el cual se soporta el modelo, específicamente en las ramas de la "General Theory of Diffraction" (GTD) y la "Uniform Theory of Diffraction" (UTD).. vi.

(7) IEL2-2002-II-20. vii.

(8) IEL2-2002-II-20. 1. Marco teórico 1.1. Metodología técnica de trazado de rayos (ray tracing) 1.1.1. Introducción: problema de comunicaciones. El problema de comunicación que se intenta resolver es el de tratar de predecir las características que va a obedecer un punto de observación en el espacio, dado la presencia de un punto de transmisión o fuente de ondas RF.. El comportamiento de las ondas RF básicamente se puede ver afectado por características propias de la fuente de transmisión, los obstáculos inherentes al ambiente que se quiera estudiar, y otras variables no determinísticas.. El modelo de radio propagación que se presenta, es un modelo determinístico, que considera que una fuente de ondas RF, se puede modelar como un punto generador de rayos donde cada uno puede sufrir los eventos ópticos característicos: reflexiones, difracciones y transmisiones. Es así que si se quisiera estimar las propiedades de RF de un punto de observación, sería necesario evaluar la contribución que pueda tener cada rayo de llegada en la amplitud del campo total. La razón por la que esta aproximación es válida se fundamenta en la teoría GTD (General Theory of Diffraction), que no sé explica en este documento.. Existen dos aspectos importantes que debe tratar un modelo como el que se mencionó anteriormente. El primero, que es necesario realizar una simplificación de la escena que se quiera tratar, y el segundo, que se debe poder hallar el camino trazado por cada rayo teniendo en cuenta los fenómenos ópticos. Cada uno de ellos se presenta en detalle a continuación.. 1.1.2. Introducción: Simplificación de una escena. ¿Cuál es la información que se debe considerar en una escena?, se puede clasificar en 2 tipos: geométrica y morfológica. La primera, se refiere a la forma geométrica de algún elemento en la. 1.

(9) IEL2-2002-II-20. escena (sea edificio, terreno o cualquier otro obstáculo) y a la ubicación espacial de éste. Por otra parte, la información morfológica es necesaria para evaluar las propiedades electromagnéticas de cada frontera, a veces con saber que tipo de material es, se puede estimar su permisividad, permeabilidad y conductancia.. Los datos de la escena se deben recibir idealmente en forma vectorial, ya que así se puede asociar a cada entidad que pertenezca a la escena una forma geométrica, tipo cubo, o piramidal, por ejemplo. Esto para que dada la ubicación en el espacio de esta figura se pueda extrapolar el conjunto de caras planas y coordenadas de los vértices que la componen. Es así que se hace necesario crear una base de datos con la información geométrica y morfológica, que permita tener una interacción rápida con el modelo en cuestión.. Para poder recibir la información en forma vectorial, es necesario simplificar la escena a una representación basada en caras planas. Es decir, donde todos los objetos que se vayan a tener en cuenta para el modelo, se puedan caracterizar por figuras compuestas por caras planas delimitadas por polígonos, que son modelos poliédricos. Luego, el modelo geométrico de una escena debe tener la siguiente información:. Datos propios de la Escena. Datos útiles para el modelo Geométricos:. Mínimos: 1.. Número de vértices. 1.. Vector perpendicular a cada cara. 2.. Número de vértices en cada cara. 2.. Topología cara: conexión con otras caras.. 3.. Coordenadas cartesianas de los vértices. 4.. Cuñas y bordes:. de cada cara. 1.. Puntos fin. Tipo de material, puede ser un atributo de. 2.. Par de caras que forman la cuña. la cara misma.. 3.. Ángulo de cada cara. Figura 1: Datos de entrada al modelo. 2.

(10) IEL2-2002-II-20. Por ejemplo si se tiene la siguiente escena, se debe tener el siguiente modelo:. Figura 2: Información que debe tener el modelo geométrico de la escena. 1.2. Modelos de Trazado de rayos. Como se mencionó anteriormente, el problema de comunicaciones móviles que pretende resolver el modelo es el de computar la amplitud del campo en una gran cantidad de puntos a lo largo de una calle, malla, u otras trayectorias, cuando pueden haber un punto o varios de transmisión en una escena. Este problema se puede volver sumamente complejo cuando la escena consta de muchas fronteras que son: caras que influyen en el fenómeno óptico de la reflexión y la transmisión, los bordes de cada figura, que influyen en la difracción, y los puntos de observación que son aquellos vértices en el espacio en el que van a llegar los rayos transmitidos. La razón de esto, es que si se quiere estimar el camino que va seguir un rayo (onda) es necesario realizar una serie de pruebas de intersección de éste con los elementos anteriores, para evaluar los fenómenos ópticos de difracción, reflexión y transmisión.. Si se quiere tener una idea, de lo complejo que se puede volver la evaluación de estos caminos, si se tienen “Nf” caras,”Ne” bordes y “No” puntos de observación, habría que realizar:. 3.

(11) IEL2-2002-II-20. •. No*Nf *(Nf+Ne) cálculos de interferencia, para efectos de primer orden. Es decir,. considerando un evento óptico no más, rayos directos, rayos difractados una vez y rayos reflejados una vez. •. No*Nf *(Nf+Ne)^2 para efectos de segundo orden. (2 reflexiones, 2 difracciones, reflexiónreflexión, reflexión-difracción o difracción-reflexión). Luego, dado que en una escena picocelular normal se tienen cientos de caras, bordes, y puntos de observación, utilizando la “fuerza bruta” habría que realizar millones de cálculos para efectos de tercer orden en adelante.. Existen 2 modelos de trazado de rayos, el SBR (Shoot and Bouncing Ray), que consiste en seguir la trayectoria de un rayo según los obstáculos que encuentre, y el modelo de las imágenes, que es el que se explica en detalle en este documento. Ambos, tienen el problema de tener que realizar una gran cantidad de pruebas de intersección, sin embargo, existen técnicas de aceleración para disminuir la cantidad de estas pruebas: la BSP (Binary Space Partition Algorithm), la SVP (Space Volumetric Partitioning) y la AZB (Angular Z-Buffer).. En este documento se explica en detalle el método de las imágenes y la técnica de aceleración AZB.. 1.3. Trazado de rayos: el método de las imágenes. Este método se basa en la teoría de las imágenes, que es una técnica eficiente para computar las reflexiones en ambientes modelados con caras planas.. Todo problema de radio propagación se reduce a 2 puntos, uno de transmisión y uno de recepción, cada evento óptico se puede considerar en sí como una fuente de rayos, luego cualquiera de estos 2 puntos puede ser denominados puntos de reflexión, difracción, o transmisión, según sea el caso.. Teniendo esto en mente, se puede tener la siguiente situación para el caso de una reflexión:. 4.

(12) IEL2-2002-II-20. Figura 3: Fenómeno óptico una reflexión. El espacio de reflexión, conocido como RS, es una propiedad de una cara, se refiere a la región en el espacio donde es posible que exista un rayo reflejado por ésta.. 5.

(13) IEL2-2002-II-20. En el caso de 2 reflexiones, habría que seguir los siguientes pasos:. Figura 4: Fenómeno Óptico dos reflexiones. 6.

(14) IEL2-2002-II-20. Como se puede apreciar en el caso de que en una escena hallan N caras, un punto de transmisión “S”, tendrá N imágenes, y cada una de estás tendrá N-1 imágenes, así si se quisiera evaluar K reflexiones se tendrían que evaluar N(N-1)k-1 imágenes. Sin embargo, no todas las caras pueden ser puntos de reflexión válidos porque como se explico en las figuras anteriores, hay que verificar que:. 1.. Cada punto de observación (O), que puede ser un punto de reflexión, transmisión o. difracción este en el espacio de reflexión (RS) de la imagen previa. 2.. Que no hallan obstáculos en la trayectoria RO, SR. (ver primera figura del método de. imágenes). Luego se puede restringir el número de imágenes posibles teniendo en cuenta los aspectos anteriores. 1.3.1. Árbol de imágenes. Una de las ventajas del método de imágenes, es que tiene en cuenta solo los rayos que pueden efectivamente llegar al punto de observación desde una fuente de transmisión. Para cumplir con esto, se construye un árbol de imágenes que identifica cuales son las imágenes factibles, según los criterios anteriores, que participan en la generación de un camino desde el punto fuente.. Es importante notar que un árbol de imágenes es independiente del punto de observación, solo depende del punto “S” y del escenario que se quiera tratar. En la siguiente figura se explica como se genera un árbol de imágenes:. 7.

(15) IEL2-2002-II-20. Figura 5: Generación del árbol de imágenes. Por ejemplo, si se tiene la siguiente escena en 2D y se ha generado el siguiente árbol (tal como se explico anteriormente):. 8.

(16) IEL2-2002-II-20. Figura 6: Ejemplo árbol de imágenes [1]. Si se tiene el punto de observación “O”, y se esta interesado en los rayos reflejados 3 veces, se interroga el árbol ubicando un nodo en el nivel 3, siguiendo a grandes rasgos esta rutina:. Figura 7: Interrogación árbol de imágenes. 9.

(17) IEL2-2002-II-20. Como se podrá apreciar, el número de pruebas de sombras aumenta en la medida que hallan más caras en la escena que se quiera tratar. Éstas se pueden disminuir utilizando técnicas de aceleración para el trazado de rayos, en este caso la técnica AZB. La técnica presentada es iterativa, sin embargo se sugiere que para trabajos posteriores, se implemente una solución recursiva.. 1.4. Clasificación de las técnicas de aceleración trazado de rayos. Las técnicas de aceleración para el trazado de rayos se pueden clasificar según el objetivo que quieran optimizar: 1 .Las que reducen el costo de interceptar un rayo con las primitivas utilizadas en el modelo: Esta se aplica ya al simplificar el escenario a uno compuesto por caras planas (primitivas), ya que los algoritmos de intersección son mucho más sencillos. Estos se explicaran más adelante. 2. Las que reducen el número total de pruebas de intersección entre un rayo y una cara: En los modelos de propagación, SBR y el de las imágenes, que fue el que se presentó, se necesitan realizar varias veces pruebas de intersección entre un rayo y una cara. Este procedimiento no es costoso computacionalmente, ya que cuando se realiza muchas veces puede consumir la mayoría del tiempo de simulación en el modelo de radio propagación. Las técnicas de aceleración que pertenecen a esta clase, buscan disminuir esta cantidad de pruebas al descartar caras, que no merecen ser consideradas para estas pruebas. En esta clase se pueden ubicar las técnicas AZB, la SVP y la BSP. Más adelante se explicara en detalle la primera. 3. Reduciendo el número total de rayos que se interceptan con el ambiente: A veces es posible durante el proceso de trazado de rayos, estimar la contribución que va a tener un rayo en el resultado final. Si la contribución es menor a cierto umbral, se puede descartar el rayo. Esta técnica es útil en los modelos SBR. 4. Reemplazando los rayos individuales por una entidad más general: Esta categoría pertenece a una serie de técnicas que reemplazan el concepto de un rayo, por una entidad más general, que tiene como caso particular un rayo. Por ejemplo, se pueden utilizar conos con cortes poligonales o circulares en vez de rayos. Esta técnica es útil para modelos de propagación de la luz, pero no es compatible con la GTD.. 10.

(18) IEL2-2002-II-20. 1.5. Técnica de aceleración AZB (Angular Z Buffer). Esta técnica es ideal para el problema de propagación de ondas UHF, y especialmente lo es para tratar el fenómeno de la difracción [1]. Consiste en los siguientes pasos:. 1- Partir el espacio visto desde una fuente S en una serie de “anxels”, que son regiones angulares definidas por un sistema de coordenadas esféricas. y Ö, centradas en el punto S, tal como se. aprecia en la figura:. Figura 8: Definición Anxel. El espacio se puede partir en la cantidad de anxels que se quiera, según los valores de delta Ö y delta que se quieran tomar.. 2- En el plano AZB formado por las coordenadas Ö y , cada celda es una representación de un anxel. Se ubican todas las caras en cada celda y se organizan de menor a mayor distancia desde el punto S, y se guarda esta información en la matriz AZB:. 11.

(19) IEL2-2002-II-20. Figura 9: Construcción Plano AZB [1]. 3- Con la matriz AZB simplificada, ésta se puede utilizar para realizar la prueba de sombras cada vez que sea necesario. Por ejemplo, si se tiene un punto de observación O y un punto S, con esta matriz se puede saber si existe un obstáculo en la trayectoria SO. Se deben seguir los siguientes pasos:. 12.

(20) IEL2-2002-II-20. a. Se ubica el punto O en el anxel respectivo. Es decir se hallan sus coordenadas esféricas, y se ubica el punto en alguna celda del plano AZB. Las caras que pertenezcan a este anxel son las posibles obstrucciones. b. Solo las caras con una distancia desde S menor a la distancia del vector SO, pueden. ser. obstáculos de esta trayectoria. c. Entonces, ahora se realizan las pruebas de intersección para el conjunto de caras que cumplan con las dos primeras condiciones. Si se encuentra una, no es necesario continuar con las pruebas de intersección.. Se reduce el número de caras a probar para las pruebas de intersección, según el tamaño del anxel que se escoja. Esto depende de la capacidad de memoria que se tenga para almacenar una escena.. La precisión se reduce en la medida que el tamaño de la escena sea más grande, luego esta técnica es útil solo en ambientes picocelulares.. 1.6. Uso de la técnica AZB para distintos fenómenos ópticos. Rayos directos: Cuando se tienen rayos directos desde el punto de transmisión S original, hasta el punto de observación O que se quiera tratar. Solo hay que utilizar la matriz AZB creada desde el punto S, para evaluar así si es posible que hayan rayos que lleguen directamente al punto O. Rayos reflejados una vez: En este caso la fuente es la imagen del punto de transmisión S. Como se explicó anteriormente, hay que verificar tres cosas:. 1- Que el punto O este en el espacio de reflexión de la cara en cuestión. 2-Que la trayectoria RO, no tenga obstáculos. 3-Que el punto de reflexión R este en la cara en cuestión.. Los dos primeros pasos se pueden realizar con la técnica AZB, si las pruebas son positivas se procede al paso 3, que consiste en verificar que el punto de reflexión sea factible, esta prueba se conoce como prueba de intersección.. 13.

(21) IEL2-2002-II-20. Se construye una nueva matriz AZB, teniendo como origen la imagen generadora del rayo reflejado, y se restringe el análisis a las caras que estén dentro del espacio de reflexión de la cara en cuestión. Es decir en el plano AZB se trazan los vértices de la cara, y se toman en cuenta las caras que estén dentro del rango (Èmin, Èmax) y (Ömin, Ömax ) .. Figura 10: Espacio de reflexión de una cara en el plano AZB. El análisis del rayo incidente (desde la fuente hasta el punto de reflexión R), se realiza de igual forma pero, tomando el punto de reflexión como O y la fuente como el punto S. Rayos reflejados dos o más veces: Con la primera imagen, se evalúan cuales caras están dentro del espacio de reflexión de la cara respectiva, tal como se explico anteriormente. Las que estén dentro de este espacio, son candidatas a experimentar la segunda reflexión, luego para cada una de ellas se halla su imagen respectiva, y se repite el mismo ciclo otra vez.. Las pruebas de sombras para un rayo reflejado dos veces se realizan así: •. Para el rayo incidente (SR1), se utiliza la matriz AZB del campo directo, utilizando el punto R1 como el observador.. •. Para el rayo reflejado la primera vez R1-R2,se utiliza la matriz AZB de I1, tomando como el punto O a R2.. •. Para el rayo reflejado la segunda vez R2-O, se utiliza la matriz AZB de I2, tomando como el punto O a O.. Rayos difractados por los bordes: En el modelo no se van a considerar estos efectos. Sin embargo se puede construir sobre él para agregar este nuevo fenómeno óptico.. 14.

(22) IEL2-2002-II-20. 1.7. Técnicas de aceleración trazado de rayos. A continuación se ilustra la secuencia de acciones que debería seguir la interacción entre la técnica AZB y el método de propagación basado en imágenes. 1.7.1 Interacción entre la técnica de aceleración AZB y el método de propagación basado en imágenes:. Figura 11: Esquema técnica AZB. 1. Cambiar sistema de coordenadas a vectS: Este paso consiste en tomar un elemento del vector de posibles puntos fuente, vectS, y tomarlo como punto origen del sistema de coordenadas, para llenar la matriz AZB. Básicamente, lo que habría que hacer es tomar todo elemento del escenario que se tiene (cara polígonal , bordes, y puntos de observación), y hallar sus nuevas coordenadas esféricas.. 15.

(23) IEL2-2002-II-20. 2. Hallar Matriz AZB: Este paso ya se menciono anteriormente. Esta compuesto de las siguientes partes: a. Utilizar algoritmo de “Back-face Culling”, para descartar caras que no estén de frente al punto S. b. Ubicar caras que pertenezcan a cada anxel y organizarlas según: •. Sombras: descartar las que estén completamente cubiertas por otra cara.. •. Distancia desde el punto origen S.. Al final se debe tener una matriz AZB de la siguiente forma:. Figura 12: Matriz AZB. 3 ¿Cual evento?: Este paso consiste en determinar si se llamo a la función AZB por un caso de reflexión, transmisión, rayos directos o difracción. Reflexión: Se realizan estos pasos: 1. Una reflexión, ubicar punto O en casilla (cuadrángulo) respectivo: El punto de observación O, se puede ubicar en el anxel respectivo, o en el cuadrángulo del plano AZB, que es lo mismo. Con el objetivo de restringir el número de caras que pueden ser consideradas como puntos de reflexión válidos. 2. Pruebas validez de reflexión: Como se sabe son 3 que se realizan en este orden 1. Verificar que punto de observación O este en el espacio de reflexión de la cara. 2. Verificar que no hayan obstáculos entre el punto de reflexión y O. (RO). 16.

(24) IEL2-2002-II-20. 3. Verificar que el rayo trazado intersecte el plano en cuestión: este paso se explicará en detalle más adelante.. Al final, la función retorna un punto “R” de reflexión válido. Rayos directos: Se realizan los dos pasos comunes: 1. Ubicar punto O en cuadrángulo respectivo. 2 .Realizar prueba de sombras: verificar que no hallan obstáculos entre el punto S y el punto O. Retorna un Si o un No, en caso de puedan o no haber rayos directos.. En caso de que se reciba un vector de puntos S y puntos O (vectS y vectO), se retorna un vector de puntos válidos de reflexión R. Cuando este conjunto es vacío significa que no pueden haber puntos de reflexión válidos.. 17.

(25) IEL2-2002-II-20. 1.7.2. Creación/Interrogación del árbol: La interrogación del árbol se puede hacer como se aprecia en la siguiente figura.. Figura 13: Interrogación del árbol. 18.

(26) IEL2-2002-II-20. 1.7.3. Algoritmos de intersección rayo-cara. Estos algoritmos son los que más se realizan en el modelo de trazado de rayos, razón por la que se debe tener una técnica eficiente.. Geométricamente, los rayos pueden ser considerados como segmentos orientados en 3 dimensiones: Las fuentes y puntos de observación pueden ser puntos de reflexión, difracción o antenas de transmisión.. El algoritmo para caras que tengan una forma arbitraria, se puede dividir en los siguientes dos pasos: 1. Computación de la intersección rayo-plano: Primero se determina el plano que contiene la cara. Después, se determina el punto de intersección rayo-plano. (Si el rayo y el plano son paralelos, no existe un punto de intersección.) 2. Prueba para determinar si e l punto se encuentra adentro o afuera del polígono en el plano: Conociendo el punto de intersección rayo-plano, se puede determinar si el punto esta adentro o afuera del polígono. Si el punto esta adentro, existe una intersección rayocara.. Figura 14: Intersección rayo-cara [1]. 19.

(27) IEL2-2002-II-20. 1. Computación de intersección rayo-cara Determinación del plano de la cara:. Figura 15: Determinación del plano de la cara [1]. Intersección Plano-rayo: Se sigue este esquema:. Figura 16: Algoritmo intersección rayo-plano [1].. 20.

(28) IEL2-2002-II-20. 2. Punto adentro o afuera de un polígono. Existen una variedad de métodos para resolver este problema. Ahora que se tiene un punto ri sobre el plano, se dispara un rayo sobre este plano en una dirección cualquiera. Contando el. número de. lados que cruce el rayo por el polígono, se puede determinar si el punto esta adentro o afuera, siguiendo esta regla: si es impar, el punto esta adentro, de lo contrario esta afuera.. Figura 17: Puntos adentro y afuera de una cara. El máximo número de cruces es N (N es el número de vértices de la cara), luego se deben realizar N pruebas de intersección para el segmento de rayo que va desde "ri".. ¿Cómo saber si hubo una intersección en el plano?. En este momento, se tiene un plano y un polígono que reside sobre este plano. El rayo arbitrario que comienza en el punto ri, puede tomar cualquier dirección. Para que el algoritmo sea más rápido, este rayo toma la dirección paralela al sistema de coordenadas.. Si se toma un segmento compuesto por dos vértices de la cara, por ejemplo, se tiene la siguiente situación:. 21.

(29) IEL2-2002-II-20. Figura 18: Intersección rayo-segmento sobre un plano. 1.7.3.1. Algoritmos de intersección con caras particulares en 3D. En escenas urbanas y de interiores, es usual tener caras que estén orientadas verticalmente: caras que pertenezcan a paredes, puertas, o ventanas, por ejemplo. Esta propiedad geométrica puede servir para acelerar el algoritmo de intersección rayo-cara.. Se debe escoger un sistema de coordenadas tal que el eje Z este paralelo al plano formado por la cara, luego, el plano X-Y estará perpendicular a la cara. En el plano horizontal esta cara se vera como un segmento de línea, así el análisis de intersección rayo-cara consta de dos pasos:. 22.

(30) IEL2-2002-II-20. 1. Se proyecta el rayo en el plano XY, de tal forma que el problema se reduce a uno de intersección en 2D, entre este rayo y el segmento de línea formado por la cara. En este caso, es necesario hallar la intersección entre dos segmentos:. Figura 19: Intersección de dos segmentos en un plano. 2. Si se encuentra un punto de intersección, se debe calcular el componente Z, con el propósito de comparar este componente con las coordenadas Z de los vértices de la cara, para saber si el punto de intersección esta sobre la cara o no.. 23.

(31) IEL2-2002-II-20. 2. Diseño modelo de Radio Propagación 2. 1. Levantamiento de requerimientos. Objetivo •. Identificar el problema de trazado de rayos y su importancia en el modelo de radio propagación.. •. Presentar los requerimientos que debe obedecer el modelo de radio propagación y el desarrollo software.. 2.1.1. Identificación y restricción del problema. Problema de trazado de rayos: Se tienen dos puntos de observación en un espacio. El primero puede considerarse como una fuente de rayos, que son segmentos de línea que cambian de trayectoria según los eventos a los que se sometan, como por ejemplo reflexiones en fronteras que obstruyan su trayectoria previa. El segundo es el punto final de recepción de estos rayos, se puede llamar punto de observación.. El problema de trazado de rayos consiste en saber cuales de estos rayos trazados desde el punto fuente que obedezcan las leyes de reflexión pueden llegar al segundo punto.. Para caracterizar un rayo es necesario saber las coordenadas en el espacio donde sufrió los eventos de reflexión1, y la longitud total de su trayectoria. Como se podrá apreciar, el número de eventos va a estar en función de dos aspectos: el primero la cantidad de obstáculos que se vayan a tratar en el espacio (complejidad del escenario) y el segundo, la ubicación de los puntos de transmisión y observación.. 1. Para este proyecto en particular, ya que no se consideran los efectos de transmisión ni de difracción.. 24.

(32) IEL2-2002-II-20. Problema de comunicaciones:. El problema de comunicación que se intenta resolver es el de tratar de predecir las características que va a obedecer un punto de observación en el espacio2, dado la presencia de un punto de transmisión, o fuente de ondas RF en un ambiente cerrado o de edificios de tamaño picocelular.. Como herramienta de simulación se va construir un modelo de radio propagación determinístico que utiliza la técnica del método de las imágenes para el trazado de rayos y la técnica AZB como herramienta de aceleración en el trazado. Lo que busca cumplir el modelo es ser capaz de determinar los caminos que puedan seguir los rayos desde el punto fuente hasta al punto de observación.. En particular, se van a considerar solo los efectos ópticos de reflexión y transmisión directa desde el punto de transmisión hasta el punto de observación.. 2.1.2. Requerimientos modelo de propagación. Fenómenos ópticos En particular, se van a considerar solo los efectos ópticos de reflexión y transmisión directa desde el punto de transmisión hasta el punto de observación. Captura del Escenario El escenario donde se van a ubicar las fronteras u obstáculos y los dos puntos de observación, será de mediana complejidad. Esta complejidad se puede estimar según el número de caras (obstáculos) que vaya a tener el escenario en cuestión. Por ejemplo, si se tuviera un edificio de un piso, que tuviera además de las 6 caras respectivas3 , 4 obstáculos que se puedan modelar como figuras geométricas con 4 caras poligonales, la complejidad sería de 4*4+6 = 22 caras.. Los escenarios a tratar pueden ser los siguientes: 1. Pisos de distintos tipos de edificio, por ejemplo un centro comercial o un edificio comercial. 2. Por ejemplo determinar la amplitud del campo electromagnético, e información sobre el ángulo de llegada en ese punto por parte de distintos rayos, para evaluar el efecto multicaminos. 3 Que corresponden al techo, suelo, y los 4 bordes, en caso de que sea una superficie cerrada. Por ejemplo un cubo.. 25.

(33) IEL2-2002-II-20. 2. Un ambiente de edificios, es decir un espacio de un radio menor a 1km, y considerando solo la apariencia externa de estos. Escalabilidad: El modelo debe ser escalable a la creación de rayos que sufran otros fenómenos ópticos, y además a la captura de otros escenarios de mayor complejidad. 2.1.3. Requerimientos desarrollo software. Datos de entrada. El desarrollo software debe ser lo más portable posible, permitiendo cargar escenarios que estén definidos en distintos formatos gráficos. Con el objetivo de crear una descripción/archivo de entrada vectorial con la información de la escena, es decir que se puedan identificar las caras (primitivas) y su ubicación en el espacio.. En esta base descripción/archivo, de manera gráfica se debe poder incorporar una serie de puntos de transmisión y recepción de rayos en el escenario que se vaya a tratar, ya que van a ser de interés para uso práctico del modelo.. El número máximo de reflexiones deseadas por cada rayo que se vaya a trazar es un parámetro de entrada del modelo. Procesamiento el modelo. Se debe buscar la mayor eficiencia en el uso de los recursos computacionales, buscando que el modelo haga uso eficiente de técnicas para manejo de la descripción, manejo de memoria y manejo del procesador. Datos de salida Debe crearse una descripción de salida que permita realizar gráficos pertinentes a la evaluación y validación del modelo, para verificar la precisión de este en casos reales.. 26.

(34) IEL2-2002-II-20. Interfaz Gráfica Debe existir una interfaz con el usuario, idealmente CAD, que permita al usuario introducir un escenario y visualizar los resultados de forma tal que pueda caracterizar los rayos trazados por su intensidad en cualquier punto de su trayectoria.. 27.

(35) IEL2-2002-II-20. 28.

(36) IEL2-2002-II-20. 2.2. Etapas desarrollo del modelo Objetivo •. Presentar el plan de trabajo a seguir para el desarrollo del modelo de trazado de rayos. Etapas desarrollo del modelo En el siguiente esquema se aprecian los pasos a seguir para la realización del modelo:. Figura 20: Etapas Desarrollo del modelo. 29.

(37) IEL2-2002-II-20. A continuación se explica más en detalle que es lo que se espera realizar en cada etapa de construcción del modelo. En este proyecto de grado, se realizaron la primera etapa, y la primera parte de la segunda etapa.. 2.2.1. Preprocesamiento:. Se compone de las siguientes tareas: a. Traducción escenario: Se encarga de la adecuada traducción del formato gráfico que vaya a tener el modelo a uno compuesto por caras planas. b. Generación Información adicional para el modelo: Se encarga de crear la información vectorial que el modelo necesita, por ejemplo la ubicación de las normales de cada cara, y la topología, es decir la forma como están conectadas y la ubicación de los bordes de cada esquina. c. Resultados preprocesamiento: El final de esta parte se debe tener representado toda la información vectorial de la escena, en una estructura de datos, con la cual va a interactuar el modelo. 2.2.2. Construcción árbol de imágenes:. Se compone de las siguientes tareas. a. Uso técnica acelerado de rayos, Validación AZB, y compresión técnica AZB: Esta tarea se compone de dos partes, la primera es la creación y validación de la técnica BFC (Backface Culling), que descarta las caras que no estén de frente a un punto de observación. La segunda es la implementación y validación de la construcción de la matriz AZB. b. Creación del árbol con uso de la técnica AZB.: Esta tarea se encarga de la implementación del algoritmo que se debe seguir para la construcción del árbol de imágenes, que como se mencionó anteriormente, construye una serie de caminos factibles desde el punto de observación hasta. el. punto fuente que originan los rayos. c. Resultado Árbol de imágenes: Al final de este bloque se debe tener implementada una rutina que permita generar un árbol de imágenes a partir de un punto fuente.. 30.

(38) IEL2-2002-II-20. 2.2.3. Evaluación fenómeno óptico reflexión:. Se compone de las siguientes tareas: a. Interrogación árbol de imágenes: Tal como se mencionó anteriormente, esta parte se encarga de interrogar el árbol de imágenes para saber hasta que punto, se pueden encontrar trayectorias de rayos que no sufran ninguna obstrucción. Esta interrogación interactúa con la técnica AZB constantemente. b. Trazado de rayos: En esta parte se trazan los rayos que hayan logrado demostrar tanto la existencia de un camino entre el punto fuente y el punto de observación, como la existencia de una trayectoria con los fenómenos ópticos introducidos como parámetros para el descarte de rayos. Estos son por ejemplo, el número de reflexiones deseadas y la intensidad de un rayo, entre otros. c. Resultados modelo trazado de rayos: Base de datos de trayectorias seguidas por rayos, Base de datos e.m (electromagnética): Al final de este bloque se debe tener estructurada una base de datos con toda la información pertinente del modelo, como lo son las trayectorias seguidas por los rayos y las propiedades e.m del punto de observación considerado.. 2.2.4. Presentación de resultados:. Se compone de las siguientes tareas: a. Presentación de gráficos de mediciones: Por lo general los gráficos que se desean obtener para este tipo de modelos, y más específicamente para un punto de observación, son los del grado de la Intensidad (amplitud del campo e.m) recibida en este punto, retraso en el tiempo (desfase de la señal), ángulo de arribo de la señal, entre otros. b. Visualización de la escena: Para verificar la adecuada forma como se trazaron los rayos, se debería ser capaz de visualizar la escena con los rayos trazados.. 31.

(39) IEL2-2002-II-20. 3. Implementación del modelo 3.1. Consideraciones de diseño construcción de software. Dos de los requerimientos de diseño del modelo que son los de portabilidad y escalabilidad (posible reutilización de las librerías creadas), hicieron que se tomaran dos decisiones:. 1. El lenguaje de programación debía ser C, ya que esto garantiza la portabilidad del modelo casi en cualquier plataforma. 2. Hay que seguir una metodología adecuada para el desarrollo software del modelo, con muy buenas prácticas de documentación y pensando en la fácil depuración del modelo.. Teniendo esto en mente, hasta ahora se han seguido las prácticas de uso de TADs (Tipo Abstracto de Datos), introducidas en el libro "Diseño y manejo de estructuras de datos en C" por el profesor Jorge A. Villalobos, más específicamente presentadas en el capítulo 1 "Diseño de software y tipos abstractos".. No se pretende introducir los conceptos utilizados en el libro, para esto se puede referir el lector. Uso TAD`s para la construcción del modelo [4]. Un TAD es un tipo de dato que se agrega al lenguaje de programación, para representar un tipo de elemento involucrado en el problema que se quiera resolver. Desde un punto de vista más formal , se define un TAD como una estructura algebraica compuesta por un conjunto de objetos abstractos, que modelan elementos de mundo, y un conjunto de operaciones para su manipulación, las cuales simulan el comportamiento que el elemento modelado tiene en el mundo del problema .. Es así que un programa ya no sería la ecuación:. Programa = datos + Algoritmos. 32.

(40) IEL2-2002-II-20. Sino más bien, se podría tener algo por el estilo:. Programa = {TAD}+Interfaz. Toda representación de un objeto abstracto realizada por un TAD, tiene los siguientes componentes:. 1. Representación: Es el concepto abstracto que define las partes y el comportamiento del objeto a modelar. Puede ser un dibujo de lo que se quiere formalizar en una base de datos. Sin embargo, se hace de forma tal que no implica que se vaya a utilizar una tipo de base de datos en especial.. 2. Invariante de un TAD: Son las condiciones de validez que debe tener el TAD en términos de condiciones. sobre. su estructura interna y sus componentes.. 3. Operaciones del TAD: Se clasifican en tres grupos según su función sobre el objeto abstracto: Constructoras, que se encargan de crear los elementos del TAD. Modificadoras, son las operaciones que modifican el estado de un elemento del TAD y las Analizadoras que son operaciones que no cambian el estado del objeto sino que tienen como misión consultar el estado del objeto y retornar algún tipo de información.. 33.

(41) IEL2-2002-II-20. Así la metodología de diseño para un TAD, podría estar compuesta por los siguientes pasos:. Figura 21: Construcción TAD [4]. A lo largo de la construcción del modelo, se realizaron varios TAD, y se construyeron sobre ellos para crear nuevos TAD. 3.2. Metodología construcción del modelo. Cada etapa se conformó por una serie de experimentos, cuyos logros sirven para el cumplimiento de los objetivos trazados en cada parte. Se puede construir sobre estos experimentos, ya que son utilizados en el desarrollo del modelo final.. La plantilla que se siguió en cada experimento es la siguiente: 1. Antecedentes experimento: Ubicación e importancia en el desarrollo del modelo, y herramientas utilizadas. 2. Objetivos 3. Metodología/Esquema solución/Esquema validación 4. Resultados y Análisis de resultados 5. Conclusiones.. 34.

(42) IEL2-2002-II-20. 3.3 Primera etapa: Preprocesamiento.. Objetivos: 1. A partir de la captura de un escenario ya simplificado, crear la información vectorial necesaria, de forma tal que pueda ser validada. 2. Crear un archivo, acorde con las especificaciones del modelo, que pueda ser validado con el escenario. Marco de aplicación de los experimentos: El problema de la captura de la escena se puede desglosar en tres pasos: 1. Importación del escenario que esta en un formato gráfico propio de diseños arquitectónicos. 2. Simplificación del escenario a uno compuesto por figuras geométricas con caras planas. 3. Captura y estructuración en un TAD y archivo, de la información vectorial que se puede encontrar en la escena ya simplificada. De acuerdo a los objetivos trazados en este proyecto de grado el modelo comienza desde el segundo y tercer paso.. Figura 22: Etapa preprocesamiento. Para cumplir con esta etapa se realizaron dos experimentos:. 35.

(43) IEL2-2002-II-20. Experimento 1: Caracterización de figuras geométricas en el espacio utilizando VRML. Obtención y validación de la información vectorial de una escena, utilizando archivos tipo texto y VRML. Experimento 2 : Creación y validación de la base de datos a partir de la información vectorial de una escena, utilizando VRML. Supuestos con los que se va a trabajar en estos experimentos: 1. Creación de la realidad en 3D simulada: Se utilizo un lenguaje descriptivo de figuras geométricas en tres dimensiones llamado VRML4. Un mundo en VRML tiene: 1. Punto origen, para poder utilizar el WCS (World Coordinate System) en VRML. 2. Para cada figura geométrica que haga parte de la escena se debe conocer: -Tipo de figura: para estos experimentos solo se van a trabajar con cajas, pero se puede trabajar con pirámides, conos, etc… - Rotación: inclinación que va a tener la figura con respecto a un eje del WCS. -Traslación: seguramente la figura no va a estar ubicada en el centro del WCS, sino va a estar en alguna coordenada en el espacio.. El desarrollo de estos experimentos se hizo en el lenguaje de programación "C". 3.3.1 Experimento 1: Caracterización de figuras geométricas en el espacio utilizando VRML.. 1. Antecedentes: Para este experimento, se creo un programa que recibe por parte del usuario, la forma de caracterizar una escena utilizando figuras geométricas tipo “caja”. Cada una de estas figuras tiene los siguientes atributos, que son los que se le preguntan al usuario cuando se ejecuta el programa:. 4. De hecho se utilizo VRML para la validación de todas las etapas implementadas hasta ahora del modelo.. 36.

(44) IEL2-2002-II-20. Figura 23: Parámetros definición figura geométrica "caja". La importancia de este experimento para el desarrollo del modelo, radica en que una vez se tiene un escenario simplificado por caras planas (que es el que se puede generar con VRML), es necesario obtener la información vectorial acorde a la descripción de la escena en un espacio en 3D simulado. 2. Objetivos: 1. Crear un programa, que permita: -La generación de una escena 3D con figuras tipo “caja” a partir del los atributos introducidos por el usuario, dimensiones, eje rotación, punto de traslado. -A partir de esta información, generar la información vectorial de la escena 3D y presentarla de forma adecuada en un archivo tipo texto.. 37.

(45) IEL2-2002-II-20. -Validar esta información vectorial al cotejar los vértices dibujándolos como esferas en la escena creada. 2. Crear un banco de escenarios de prueba, que se puedan cargar en el programa, para verificar el buen funcionamiento de éste. 3. Esquema de la solución:. Se creo el programa CRESCENA. CPP que básicamente sigue este esquema:. Figura 24: Esquema "Crescena"; creación de una escena. Precondición: Se introducen las figuras a medida que el usuario las introduzca, o utilizando un archivo de texto plano, por ejemplo “ambiente.txt”. 38.

(46) IEL2-2002-II-20. La lectura la hará el programa por líneas, así: Línea 1: FIGURA Las siguientes líneas van según el tipo de figura geométrica que se trabaje, para la “caja” sería ésta: Línea caja i: a, h, p Línea caja i: xo,yo,zo Línea caja i: ejex,ejey,ejez, alpha grados.. Por ejemplo, un archivo “figuras.txt” válido con 2 cajas puede ser el siguiente: -----------------------------------------FIGURA 3, 4, 5 2, 3, 3 0,1,0, 45 FIGURA 3, 4, 5 0, 0, 0 1,0,0, 23 ------------------------------------------. Post-Condición:. Se crean los scripts en VRML “escena.wrl” para ser cargado en un visor cualquiera, y confirmar la escena descrita. Además se crea el archivo texto "escena.txt", con el formato que se aprecio en la figura anterior.. 39.

(47) IEL2-2002-II-20. 4. Resultados y Análisis de resultados Por ejemplo, si se introduce "figuras.txt", se crean los siguientes archivos tipo texto, y la siguiente escena 3D simulada en VRML.. "escena.txt" --------------------------------------------1 NUMFIGURA 12 NUMCARAS 1234 ARREGLO VERTICES QUE COMPONEN CARA 1 2673 .... 6587 5148 4378 2156 9 10 11 12 10 14 15 11 14 13 16 15 13 9 12 16 .... 12 11 15 16 ARREGLO VERTICES QUE COMPONEN CARA 12 16 NUMVERTICES -0.828427 1.000000 2.292893 COORDENADAS CARTESIANAS VERTICE 1 1.292893 1.000000 0.171573 1.292893 5.000000 0.171573 -0.828427 5.000000 2.292893 2.707107 1.000000 5.828427 4.828427 1.000000 3.707107 4.828427 5.000000 3.707107 2.707107 5.000000 5.828427 En rojo se comenta lo que quiere decir -1.500000 -0.864182 -3.082724 cada parte del archivo texto. 1.500000 -0.864182 -3.082724 1.500000 2.817837 -1.519800 -1.500000 2.817837 -1.519800 -1.500000 -2.817837 1.519800 1.500000 -2.817837 1.519800 1.500000 0.864182 3.082724 ----------------------------------------------. Figura 25: escena.txt: archivo texto escena 3D simulada. La convención que se siguió para numerar los vértices de cada cara que componen la figura tipo caja, se aprecia en la siguiente figura (comparar con el archivo texto anterior, ver el arreglo de vértices que componen a cada cara):. 40.

(48) IEL2-2002-II-20. Cara 5. Cara 3. V8. V7. V4. V3. Cara 4. Cara 2 V5. V6. V1. Cara 1. V2. Cara 6. Figura 26: Numeración de caras y vértices para la figura tipo caja.. "escena.wrl": A continuación se presenta la escena 3D simulada en VRML. Para ver el script generado, se utilizo un visor VRML "Cosmo" que es un plug-in que se le puede instalar a cualquier explorador de Internet (ej: Netscape, Microsoft Explorer).. 41.

(49) IEL2-2002-II-20. Figura 27: Escena 3D simulada en VRML , "escena.wrl". 3.3.2 Experimento 2: Creación y validación de la base de datos construida a partir de la información vectorial de una escena, utilizando VRML.. 1 .Antecedentes: Una escena en 3D va a tener las siguientes representaciones:. Figura 28: Representaciones de una escena en 3D. 42.

(50) IEL2-2002-II-20. Ahora bien, las primitivas5 con las que va trabajar el modelo de radio propagación que utiliza el trazado de rayos, son:. 1. Vértices: puntos en el espacio con coordenadas esféricas y cartesianas a partir de un punto de observación. 2. Caras planas: Una cara es un polígono convexo, cuyos vértices están indexados de tal forma, que permite definir un derecho y un revés de ésta. El derecho esta dado al computar la normal de esta cara.. Un objeto (figura) es un ente que se descompone en vértices y caras planas. Una serie de estas primitivas son las que se introducen en el modelo, y es el nivel más alto de representación de una escena en 3D.. A lo largo de la construcción del modelo, se realizaron distintas implementaciones para cada representación. Todas las funciones de persistencia6. de cada TAD creado, utilizan. las tres. representaciones. 2. Objetivos: 1. Utilizar los archivos texto creados por "Crescena.cpp", para crear una estructura de datos, que represente la escena 3D creada en VRML. Utilizar TAD para cada representación. 2. Validar la adecuada creación de esta estructura de datos, creando una representación compuesta por primitivas tipo vértices y caras, en VRML 3. Crear información vectorial adicional, necesaria para el modelo, como lo son las normales y centroídes de cada cara, y representarla en la escena 3D simulada. 3. Esquema de solución:. Se crearon varias representaciones de una escena, y se crearon los TAD y los archivos texto nombrados a continuación:. 5. Termino utilizado en computación gráfica, para nombrar los elementos que componen una escena en 3D. En su caso más simple esta un vértice, pero se puede referir a figuras geométricas complejas. 6. Funciones de persistencia: funciones utilizadas para verificar la adecuada representación del TAD, esto se hace ya sea mostrándolo en un archivo texto, en pantalla, o con una escena 3D simulada en VRML.. 43.

(51) IEL2-2002-II-20. Figura 29: Niveles de representación de una escena en 3D. 44.

(52) IEL2-2002-II-20. Se aprecian tres niveles. El nivel más bajo corresponde a la representación de la primitiva más sencilla, que es un vértice. Se tienen tres representaciones, "infv.txt","escenaV.wrl", y el TAD vértices, que se explicará más adelante.. El siguiente nivel, se construye sobre el primero, y representa la primitiva tipo cara. Existen dos representaciones, "infc.txt" y "escenaC.wrl", que representa en VRML las caras y los vértices. El TAD caras y el TAD esquinas, se construyen a partir del TAD vértices.. Por último, el nivel más alto es la representación de la escena 3D con las caras y los vértices que la componen. En este nivel, existen tres representaciones "escena.txt", "escenaCV.wrl", y el TAD escena, que se construye a partir de los TAD anteriores.. A continuación se explica en detalle, la construcción de cada representación en cada nivel. 3.3.2.1 Nivel 1: Representación de la primitiva vértice en la escena 3D. "infv.txt": Es un archivo texto, que tiene el formato del archivo "escena.txt" donde se definen los vértices que componen la escena. "escenaV.wrl": Representa en una escena 3D simulada en VRML, con objetos tipo esfera, los vértices que componen la escena.. 45.

(53) IEL2-2002-II-20. TAD vértices:. Figura 30: TAD vértices. 46.

(54) IEL2-2002-II-20. Par validar la creación del TAD Lvertices, se creo el programa "pruebv.cpp", que en síntesis realiza los siguientes pasos:. Figura 31: Caja Negra "pruebv.cpp". Se realizaron una serie de pruebas, en cada experimento, para verificar la adecuada creación del TAD vértices 7.. 3.3.2.2 Nivel 2: Representación de la primitiva cara en la escena 3D. "infc.txt": Es un archivo texto, que tiene el formato del archivo "escena.txt" donde se definen las caras que componen la escena. "escenaC.wrl": Representa en una escena 3D simulada en VRML, con objetos tipo polígono, además se dibujan las normales de cada cara, para verificar la adecuada estimación de ellas. TAD esquinas: Una cara es un polígono con un conjunto de vértices que pertenecen al TAD Lvertices. Por esto, y para no volver a guardar la información de los vértices en memoria, el TAD caras tiene adentro un nuevo TAD llamado TAD esquinas, que se explica a continuación:. 7. Se puede apreciar en el anexo, CD o doc, más en detalle la creación de la libreria "vertice.c" y "vertice.h".. 47.

(55) IEL2-2002-II-20. Figura 32: TAD Lvertices. Figura 33: TAD Lesquinas. 48.

(56) IEL2-2002-II-20. Se realizo el programa "pruebesq.cpp", para validar la creación de este TAD. En síntesis, este programa realiza las siguientes tareas:. Figura 34: Prueba TAD "Lesquinas" en "pruebesq.cpp". En caso de que se quiera profundizar más en el esquema del programa se le invita al lector a leer el código fuente, que esta bien documentado.. TAD caras: El TAD "Lcaras", comprende a todas las caras que hacen parte de la escena en 3D. Se presenta en las siguientes figuras:. 49.

(57) IEL2-2002-II-20. Figura 35: TAD "Lcaras". Figura 36: Estructuras y funciones TAD "Lcaras".. 50.

(58) IEL2-2002-II-20. Se creo el programa "pruebac.cpp", para validar la creación del TAD "Lcaras", básicamente este programa realiza las siguientes tareas:. Figura 37: Prueba TAD "Lcaras" en pruebac.cpp. 51.

(59) IEL2-2002-II-20. 3.3.2.3 Método y presentación de los resultados. Figura 38: Experimento validación captura y validación archivo descriptivo escena 3D.. Se realizó el siguiente procedimiento:. 1- Se corrió CRESCENA.CPP con exp2bfc.txt. 2-Con los archivos creados por CRESCENA.CPP ("infc.txt" e "infv.txt"), se corre PRUEBAC.CPP que tiene los TAD que se comentaron anteriormente.. La ejecución de este experimento, cumple con el objetivo de capturar y validar el archivo descriptivo y el TAD para una escena 3D compuesta por figuras tipo caja.. 52.

(60) IEL2-2002-II-20. Estos fueron los resultados: ambiente.txt = exp0BFC.txt ESCENA.WRL:. Figura 39: EJEMPLO 1 Escena 3D simulada; Escena.wrl con exp0BFC.txt. ESCENAV.WRL:. Figura 40: EJEMPLO 1 Escena 3D simulada; EscenaV.wrl con exp0BFC.txt. 53.

(61) IEL2-2002-II-20. ESCENAC.WRL:. Figura 41: EJEMPLO 1 Escena 3D simulada; EscenaC.wrl con exp0BFC.txt. ESCENACV.WRL:. Figura 42: EJEMPLO 1 Escena 3D simulada; EscenaCVwrl con exp0BFC.txt. 54.

(62) IEL2-2002-II-20. ESCENA.WRL. Figura 43: EJEMPLO 2 Escena 3D simulada; Escena.wrl con exp2BFC.txt. ESCENAV.WRL. Figura 44: EJEMPLO 2 Escena 3D simulada; EscenaV.wrl con exp2BFC.txt. 55.

(63) IEL2-2002-II-20. ESCENAC.WRL. Figura 45: EJEMPLO 2 Escena 3D simulada; EscenaC.wrl con exp2BFC.txt. ESCENACV.WRL. Figura 46: EJEMPLO 2 Escena 3D simulada; EscenaCV.wrl con exp2BFC.txt. 56.

Referencias

Documento similar