Red de conocimientos turísticos - Evaluación hotelera - Otras funciones de visualización

Otras funciones de visualización

(1) Mecanismo de actualización de la vista

La velocidad de actualización de la vista es crucial para el efecto de visualización del sistema de gráficos. Si las vistas tardan en actualizarse, se pierde la interacción humana e incluso el software pierde usabilidad.

Como se muestra en la Figura 4-90, el proceso de actualización de la vista del modelo.

Figura 4-90 Proceso de actualización de vista

Este diagrama de flujo admite la clase de función visual para controlar completamente la vista. La lista de visualización también es un factor importante que afecta la función de interacción persona-computadora. .

(2) Lista de visualización

La lista de visualización es un conjunto de comandos OpenGL almacenados para su posterior ejecución. Cuando se activa una lista de visualización, sus comandos almacenados se ejecutan en el orden preestablecido en la lista de visualización. Puede utilizar listas de visualización para guardar funciones OpenGL para su posterior ejecución, lo que puede aumentar considerablemente la velocidad de visualización.

La lista de visualización establecida en este modelo cumple con los siguientes requisitos: ① Puede admitir la creación de una nueva lista de visualización de cualquier subárbol sin crear una lista de visualización en el modelo geológico; (2) Puede admitir la lista de visualización establecida en este modelo; creación de una lista de visualización de cualquier subárbol cuando la lista de visualización ya se ha creado. Bajo la premisa de la creación, la lista de visualización de cualquier subárbol se actualiza. Solo las entidades geológicas modificadas pueden volver a crear la lista de visualización para mejorar la eficiencia de la actualización. ③ Puede admitir el control de la granularidad de la lista de visualización, es decir, especificar si la lista de visualización del nodo raíz de cualquier subárbol está anidada. La lista de visualización de otros nodos en el subárbol está anidada. ④ Se puede admitir cada nodo del árbol; dibujar cualquier otra primitiva, lo cual es conveniente para dibujar temporalmente algunas primitivas o programadores para depurar el programa. ⑤ puede admitir que todas las primitivas sean completamente opacas y que todas las primitivas sean completamente semitransparentes. Transparentes, o primitivas tanto opacas como translúcidas. ⑥Puede admitir aplicaciones multivista.

Porque la generación de listas de visualización OpenGL admite múltiples listas de visualización que no están relacionadas o no están relacionadas. En casos relevantes, es necesario generar listas de subvisualización y luego generar nuevas listas de visualización fusionadas a partir de las listas de subvisualización ya generadas. Debido a la limitación de esta condición, el modelo utiliza un algoritmo transversal de orden posterior en profundidad para atravesar el modelo de cuerpo geológico, generar una lista de visualización a partir de los nodos de hoja y establecer y actualizar la lista de visualización de acuerdo con las reglas de primera generación. una lista de visualización de subárbol y luego generando una lista de visualización de nodos raíz.

Algoritmo: algoritmo de actualización de la lista de visualización basado en una estructura de datos de múltiples árboles.

Proceso principal: utilizando el nodo actual como raíz, genere una lista de visualización de subárboles.

(1) Comenzando desde el nodo raíz, recorra cada subárbol del árbol de múltiples ramas en orden de profundidad.

(2) Si el nodo actual tiene un subárbol, llame; el "proceso principal" genera una lista de visualización de subárbol con el nodo actual como nodo raíz;

(3) Si el nodo actual no tiene un subárbol, llame al "Subproceso 1" para definir la lista de visualización del actual nodo;

(4) Finaliza el recorrido y regresa.

Subproceso 1: Definir la lista de visualización del nodo actual.

(5) Determine si el nodo actual necesita actualizar la lista de visualización; si no, regrese

(6) Defina la lista de visualización del nodo actual

;

① Si el subárbol con el nodo actual como nodo raíz no utiliza la lista de visualización, dibuje el subárbol donde se encuentra el nodo actual.

② De lo contrario, llame a la lista de visualización de todos los nodos secundarios del nodo actual.

(7) Dibujar cualquier elemento gráfico especificado por el nodo actual.

(8) Establecer el indicador de actualización de la lista de visualización del nodo actual para completar la actualización.

Debido a que la lista de visualización está anidada, OpenGL optimiza la lista de visualización anidada, por lo que la eficiencia es mejor que la lista de visualización generada sin anidamiento, y mucho mejor que la lista de visualización generada sin anidamiento.

(3) Mostrar * * * Mecanismo de disfrute

Mostrar * * * El mecanismo para compartir puede ahorrar mucha memoria y mejorar la eficiencia del dibujo. Este modelo utiliza dos soluciones para mejorar eficazmente la reutilización de los atributos de visualización, ahorrando así valiosos recursos de memoria, reduciendo el tamaño de los archivos almacenados y mejorando la velocidad de visualización.

1. Primitivas de colección y colecciones primitivas

"Gráficos" se refiere a objetos que se pueden dibujar. En algunas plataformas gráficas, cada elemento gráfico tiene sus propias propiedades de visualización, como color, material, etc. Cuando se actualiza la vista, cuando el sistema dibuja esta primitiva, primero establecerá su atributo de dibujo actual en el atributo de visualización de esta primitiva y luego dibujará esta primitiva.

Sin embargo, para un conjunto, como un conjunto de puntos discretos con 1000 puntos discretos, sus propiedades de visualización suelen ser las mismas.

En este momento, si cada primitiva tiene su propio atributo de visualización, al dibujar esta colección, es necesario establecer repetidamente su propio atributo de dibujo en el mismo atributo de visualización, lo que reduce en gran medida la eficiencia del dibujo. Peor aún, habrá 1000 propiedades de visualización duplicadas en la memoria que se guardarán en un archivo más adelante. En aplicaciones prácticas, es muy común que un conjunto de puntos tenga 1000 puntos. Puede haber más de una docena de conjuntos de puntos en el sistema al mismo tiempo, lo que significa que hay decenas de miles de datos duplicados.

La razón del problema anterior es que creemos que todas las colecciones tienen diferentes atributos de visualización para cada primitiva. Por lo tanto, el documento divide la colección en dos categorías y propone un nuevo concepto: "colección de elementos gráficos" significa que cada elemento gráfico de la colección debe tener diferentes atributos de visualización, por ejemplo, cada capa de la colección de capas está representada en diferentes colores y materiales. "Primitivas de colección" significa que todas las primitivas de la colección comparten el mismo atributo de visualización y forman un todo, como un conjunto de puntos discretos.

Para la colección de primitivas, la dibujamos de la forma original; pero para la primitiva de conjunto, la derivamos del tipo de colección matemática y de un tipo primitivo, y solo almacenamos un atributo de visualización, lo que reduce la memoria. ocupado. Al dibujar, las propiedades del dibujo originales se guardan antes de realizar cualquier operación de modificación, por lo que solo necesita configurar las propiedades de visualización una vez antes de dibujar todos los miembros de la colección, lo que mejora la velocidad y la eficiencia de visualización del dibujo de la colección.

2. Mostrar el administrador de objetos compartidos de * * * propiedades.

No basta con distinguir entre primitivas de conjunto y primitivas de colección, porque están restringidas a todos los miembros que pertenecen al mismo conjunto para disfrutar de la propiedad de visualización. De hecho, también existe el problema de * * * compartir atributos de visualización entre primitivos que no pertenecen a la misma colección. Por ejemplo, si una formación es de granito, entonces los atributos de todos los puntos de pozo y puntos discretos de esta formación también son de granito.

En aplicaciones reales, una aplicación a escala general puede tener miles de primitivas en todo el modelo, pero no habrá más de diez materiales, texturas, degradados, etc. , por lo que habrá muchos datos duplicados.

Para mejorar aún más la reutilización de las propiedades de visualización, este artículo presenta el administrador de objetos de visualización. Se divide en administrador de objetos de material, administrador de objetos de textura y administrador de objetos de degradado. Cada administrador es un conjunto de datos compartido de propiedades de visualización. De esta manera, solo se mantiene una copia del mismo atributo de visualización en el sistema y se pueden buscar los datos de visualización cuando todos los elementos gráficos hacen referencia a ellos.

Por ejemplo, el área de trabajo de Lijin del campo petrolífero de Jiangsu tiene cinco formaciones y más de 100 pozos. Cada pozo penetra cinco formaciones. Se requiere que el usuario pegue texturas de formación para cada sección de la formación por la que pasa el pozo. Cada textura es un archivo de mapa de bits de 1 M y dos de las cinco capas tienen la misma textura. En el peor de los casos, se requiere un espacio de 5 × 100 × 1 M para almacenar información de textura, que es 500 M. Con el nuevo diseño, la capacidad de almacenamiento de información de textura se puede reducir a 4×1M o 4M.

(D) La capacidad de dibujar gráficos

1. Visualización realista de elementos gráficos básicos

Algunas plataformas de gráficos solo dibujan "píxeles ordinarios" y "píxeles ordinarios". " Primitivas de nivel de línea. Para una visualización realista, sólo hay una forma: el triángulo. Debido a los nuevos requisitos, el modelo puede generar puntos tridimensionales realistas, como esferas, cilindros y diamantes. Muestre polilíneas en formas cilíndricas, cónicas, en forma de flecha y otras formas realistas.

2. Materiales

En este modelo, cada primitiva tiene su propio material independiente, que puede provenir de la biblioteca de materiales, es decir, del gestor de objetos de materiales, o de esta primitiva. único objeto material. Al mismo tiempo, este artículo también conserva la capacidad de los desarrolladores y usuarios de utilizar materiales de color, es decir, cuando la primitiva no especifica ningún objeto físico, se crea temporalmente un objeto físico en función de su color y se destruye inmediatamente después del dibujo.

Translúcido

Este modelo aumenta la capacidad del sistema para dibujar primitivas semitransparentes, es decir, admite los cuatro componentes de color de RGBA, como se muestra en la Figura 4-91.

Figura 4-91 Efecto de colección de sección translúcida

4. Fuentes

En algunas plataformas gráficas originales, cuando el usuario gira, las fuentes 3D seguirán el modelo. . Este modelo puede lograr una quietud relativa del ojo o una quietud relativa del modelo cuando el usuario gira.

(5) Función de vista

"Clase de función visual" se refiere a una clase de función que solo modifica la matriz de transformación de visualización OpenGL sin modificar la información del modelo geológico, incluida la traslación, rotación y función de zoom.

En las clases de funciones visuales de algunas plataformas gráficas, el punto central de rotación y escala se establece en el centro geométrico de la ventana gráfica del cliente y el usuario no puede modificar su posición. Esto tiene dos desventajas: ① Cuando los usuarios y programadores giran para observar una posición que no es el punto central, necesitan realizar múltiples operaciones, especialmente cuando este punto está en el borde de la ventana gráfica (2) El usuario necesita realizar múltiples operaciones; operaciones para completar esta función. Haga clic en el menú o en la barra de herramientas para cambiar de función. Esto causa inconvenientes a los usuarios y reduce en gran medida la eficiencia de los programadores en la depuración de programas y la observación de los resultados de la ejecución del programa.

En la plataforma de gráficos, tres funciones se fusionan en una sola, configurando un elemento de menú y una barra de herramientas; permitiendo a los usuarios especificar cualquier píxel en la ventana gráfica como centro de rotación y escala para rotación y escala. Antes y después de la rotación y el escalado, asegúrese de que la posición del píxel del modelo geológico permanezca sin cambios, es decir, las coordenadas en el sistema de coordenadas de la pantalla permanezcan sin cambios. También proporciona un medio viable para que el ratón recoja un objeto geológico en la pantalla.

(6) Edición de puntos de vectores espaciales tridimensionales

La modificación de la información de los cuerpos geológicos es una de las funciones importantes de los cuerpos geológicos. En la estructura de datos del modelo de cuerpo geológico del grupo de investigación, la entrada puede ser un conjunto de puntos y un conjunto de polilíneas, pero el conjunto de polilíneas también aparece como un conjunto de puntos ordenados. Por lo tanto, la edición y modificación de puntos son la base para toda edición y modificación del equipo de investigación.

Este modelo también propone un nuevo concepto de "punto vectorial espacial tridimensional". El punto tridimensional debajo de la plataforma gráfica ya no se considera un punto escalar tridimensional, sino además del punto escalar. "Coordenadas de posición" originales, se da. Cada punto tiene un "vector de dirección". De esta manera, la "edición de puntos de vectores espaciales tridimensionales" se puede realizar en la plataforma de gráficos. Después de que se propuso este concepto, han surgido muchas aplicaciones nuevas, como la edición de vectores de fuentes de luz, la edición de vectores de sección transversal de un solo lado, etc.