arquitecturas orientadas a la realidad virtualmgarcia/rva/arquitecturas.pdf · –pueden controlar...
TRANSCRIPT
![Page 1: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/1.jpg)
Arquitecturas Orientadas
a la Realidad Virtual Realidad Virtual y Animación
Miguel Ángel Otaduy
Marcos García Lorenzo
Curso 2011/2012
![Page 2: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/2.jpg)
2
Una arquitectura simple
CPU
GPU
![Page 3: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/3.jpg)
3
Una arquitectura ¿simple?
CPU multi-core (IBM cell, Intel Larrabee…)
GPU programable (NVIDIA Tesla S870)
![Page 4: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/4.jpg)
4
Múltiples Periféricos
Cueva (CAVE) para realidad virtual
Mosaico de
pantallas
Sistema gráfico + háptico
![Page 5: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/5.jpg)
5
Globalización
Juegos en red
Second Life
Google StreetView
![Page 6: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/6.jpg)
6
Bibliografía
“Virtual Reality Technology” Ed. Wiley-Interscience (Second Edition). Grigore C. Burdea & Philippe Coiffet.
(sólo arquitecturas para realidad virtual, obsoleto en cuanto a arquitecturas gráficas)
![Page 7: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/7.jpg)
7
Índice
• Arquitectura de la GPU
• Gráficos Multi-Proceso / Multi-Pantalla
• Gráficos Distribuidos
![Page 8: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/8.jpg)
8
Índice
• Arquitectura de la GPU
• Gráficos Multi-Proceso / Multi-Pantalla
• Gráficos Distribuidos
![Page 9: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/9.jpg)
9
CPU – GPU
GPU: Co-procesador para operaciones gráficas
![Page 10: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/10.jpg)
10
CPU – GPU
Pieza clave: memoria dinámica de alta velocidad de acceso* Almacena geometría y texturas * NVIDIA 9600GT: 512MB a 57.6GB/s
![Page 11: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/11.jpg)
CPU – GPU
11
![Page 12: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/12.jpg)
Pipeline
• Definición: división de un proceso en etapas, asignando a cada una de ellas distintos recursos.
• Pipelines
–CPU
–Gráfico
–Háptico
![Page 13: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/13.jpg)
Pipeline gráfico
• Paralelización de las etapas de pipeline
![Page 14: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/14.jpg)
Deferred Render
14
![Page 15: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/15.jpg)
Deferred Render
15
Geometría Fragmentos
Fragmentos
![Page 16: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/16.jpg)
Cuellos de botella
• Óptimo
– Todas las etapas trabajando al 100%
• Siempre hay etapas que trabajan más
• Curva ideal de funcionamiento
– Exponencial
Curva Ideal
0
10
20
30
40
50
60
70
80
90
100
1000
3000
5000
7000
9000
1100
0
1300
0
1500
0
1700
0
1900
0
2100
0
2300
0
Nº poligonos
Fra
mes/S
eg
un
do
![Page 17: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/17.jpg)
Cuellos de botella
• Cuello de botella en la etapa de aplicación al 100%
• CPU-limited
0
5
10
15
20
25
30
35
1000
3000
5000
7000
9000
1100
0
1300
0
1500
0
1700
0
1900
0
2100
0
2300
0
Nº poligonos
Fra
mes/S
eg
un
do
![Page 18: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/18.jpg)
Cuellos de botella
• Cuello de botella en la etapa gráfica
– Transform-limited
– Si aumenta los frames por segundo al disminuir el número de luces
• Cuello de botella en la etapa de rasterizado
– Fill-limeted
– Si el número de frames disminuye al aumentar la resolución
![Page 19: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/19.jpg)
Soluciones
• CPU-Limited – Remplazar la CPU por una más rápida
– Añadir otra CPU
– Modificar el código • Optimizar el código para una determinada CPU
• Uso de mejores compiladores
• Minimizar las multiplicaciones y divisiones
• Utilizar simple precisión frente a doble precisión
– Reducir la complejidad de la escena • Uso de modelos con menor nivel de detalle
![Page 20: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/20.jpg)
Soluciones
• Transform-limited – Reducir el número de luces
– Modelo de sombreado • Flat
• Gouraud
• Phong
• Fill-limited – Reducción del tamaño de la ventana
– Reducción de la resolución
![Page 21: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/21.jpg)
Soluciones
• Otras soluciones (si la frecuencia de refresco es buena)
–Fill-limited: Aumentar la complejidad de la escena, introducir nuevas luces …
–Transform-limited: Aumentar la resolución
![Page 22: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/22.jpg)
22
Evolución de las GPUs
• Pipeline asociada a estándares OpenGl
• OpenGl 1.5: Pipeline fija para máxima eficiencia
• OpenGl 2.1: Pipeline programable para mayor versatilidad (Dispositivos movil3es)
• CUDA (NVIDIA): Arquitectura unificada, procesador paralelo general.
• OpenGl 3.3: Desaparecen las etapas fijas
• OpenGl 4.2: Tesselación!!!
![Page 23: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/23.jpg)
23
Pipeline Fija
![Page 24: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/24.jpg)
24
Pipeline Fija
• Trabajo con texturas: impostores, environment mapping, sombras, reflexiones, transparencia…
![Page 25: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/25.jpg)
25
Pipeline Fija
Entradas: primitivas (vértices, polígonos), texturas, comandos
Procesar sólo vértices o fragmentos (pixels). Operaciones fijas.
Las operaciones a realizar se determinan mediante el estado de OpenGL. El estado se selecciona mediante comandos.
Ensamblado
![Page 26: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/26.jpg)
Bloques de la GPU
![Page 27: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/27.jpg)
Stream Processing
• SIMD: Single instruction, multiple data stream.
• MIMD: Multiple instruction…
Multiplicar por 5
Multiplicar por 5
Multiplicar por 5
…
Entrada de datos Distribución
![Page 28: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/28.jpg)
28
Pipeline Programable
![Page 29: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/29.jpg)
29
Pipeline Programable
![Page 30: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/30.jpg)
30
Pipeline Programable
![Page 31: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/31.jpg)
31
Pipeline Programable
Permite al usuario programa las etapas de vértices, geométrica y fragmentos.
Memoria de textura general: accesible también en el procesado de vértices, y se puede escribir a ella desde el frame buffer!
Geometry
![Page 32: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/32.jpg)
Pipeline Programable
• El pipeline no cambia básicamente, pero se exponen al usuario el procesado de vértices y fragmentos
• Se pueden modificar las funciones, o se pueden diseñar funciones completamente distintas (incluso para aplicaciones no-gráficas!)
![Page 33: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/33.jpg)
Vertex Processing
• Funciones que se pueden sustituir/modificar:
–Tranformación de coordenadas y normales
–Normalización, escalado
–Cálculo de iluminación
–Aplicación de color
–Generación y transformación de coordenadas de texturas
![Page 34: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/34.jpg)
Vertex Processing
![Page 35: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/35.jpg)
Fragment Processing
• Funciones que se pueden sustituir/modificar:
–Acceso y aplicación de texturas
–Suma y mezcla de colores (blending)
–Profundidad
• Funciones que NO se sustituyen:
–Z-test (profundidad)
–Posición del fragmento (scan-conversion)
–…
![Page 36: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/36.jpg)
Fragment Processing
![Page 37: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/37.jpg)
Limitaciones
No se puede crear geometría (nuevos vértices)
No se puede cambiar la posición de los fragmentos
![Page 38: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/38.jpg)
Multi-Pass Rendering
• Para crear efectos complejos, realizar varios pases del pipeline, y en cada pase una operación distinta
• El resultado de un pase se puede escribir directamente a la memoria de textura (render to texture)
• En un nuevo pase, se leen los datos escritos a las texturas
• Programas: Frame Buffer Object (FBO)
![Page 39: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/39.jpg)
Ejemplo 1: Motion Blur (Efectos de Movimiento)
4 pases 16 pases
![Page 40: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/40.jpg)
Ejemplo 2: Depth of Field (Enfoque de la Cámara)
Sin enfoque Con enfoque
![Page 41: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/41.jpg)
Ejemplo 3: Soft Lighting (Luces con Área)
Luz puntual Luz con área
![Page 42: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/42.jpg)
42
Lenguajes de Shading
• Cg (NVIDIA): se programa y compila por separado, y se carga desde la aplicación
• GLSL (OpenGL): se programa directamente en la aplicación, y se compila on-the-fly; se puede modificar!
• HLSL (DirectX): similar pero de Microsoft
![Page 43: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/43.jpg)
43
Ejemplo Cg
// input vertex
struct VertIn {
float4 pos : POSITION;
float4 color : COLOR0;
};
// output vertex
struct VertOut {
float4 pos : POSITION;
float4 color : COLOR0;
};
// vertex shader main entry
VertOut main(VertIn IN, uniform float4x4 modelViewProj) {
VertOut OUT;
OUT.pos = mul(modelViewProj, IN.pos); // calculate output coords
OUT.color = IN.color; // copy input color to output
OUT.color.z = 1.0f; // blue component of color = 1.0f
return OUT;
}
![Page 44: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/44.jpg)
44
Pipeline Unificada
Massive parallel processing: multitud de procesadores ejecutando lo mismo. Desde la CPU, lanzar hebras e indicar cuántas se ejecutan, dónde, y qué memoria utilizan.
![Page 45: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/45.jpg)
Bloques de Hebras
(Device) Grid
Constant
Memory
Texture
Memory
Global
Memory
Block (0, 0)
Shared Memory
Local
Memory
Thread (0, 0)
Registers
Local
Memory
Thread (1, 0)
Registers
Block (1, 0)
Shared Memory
Local
Memory
Thread (0, 0)
Registers
Local
Memory
Thread (1, 0)
Registers
Host
• Hebras distribuidas por bloques.
• Comparten memoria por bloque.
• Identificador de bloque y de hebra.
• 3 tipos de memoria, con distintas propiedades y aplicabilidad
![Page 46: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/46.jpg)
46
Comunicación CPU-GPU
Creación/destrucción de memoria y transferencia de datos (parecido a C):
• cudaMalloc((void**)&Md.elements, size);
• cudaFree(Md.elements);
• cudaMemcpy(Md.elements, M.elements, size, cudaMemcpyHostToDevice);
• cudaMemcpy(M.elements, Md.elements, size, cudaMemcpyDeviceToHost);
![Page 47: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/47.jpg)
47
Código CUDA
• En general, se programa como en C
• Funciones (indicando quién las llama y dónde se ejecutan):
Ejecutada en Llamada por
__device__ float DeviceFunc() GPU GPU
__global__ void KernelFunc() GPU CPU
__host__ float HostFunc() CPU CPU
![Page 48: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/48.jpg)
48
Ejemplo CUDA
http://www.youtube.com/watch?v=VpEpAFGplnI
http://www.youtube.com/watch?v=HScYuRhgEJw
http://research.nvidia.com/publication/efficient-sparse-voxel-octrees
![Page 49: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/49.jpg)
49
Ejemplo CUDA
![Page 50: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/50.jpg)
50
OpenGL 3.3 (Compatibility)
![Page 51: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/51.jpg)
51
OpenGL 3.3 (Compatibility)
![Page 52: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/52.jpg)
52
OpenGL 3.3 (Compatibility)
![Page 53: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/53.jpg)
53
OpenGL 3.3 (Compatibility)
![Page 54: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/54.jpg)
54
OpenGL 3.3 (Compatibility)
![Page 55: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/55.jpg)
55
OpenGL 3.3 (Compatibility)
![Page 56: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/56.jpg)
56
OpenGL 4.2
Vertex Shader
Tessellation Control
Tessellator
Tessellation Evaluation
Geometry
Clipping
Rasterization
Fragment Shader
Blending
Frame Buffer
Array Assembly
![Page 57: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/57.jpg)
57
Índice
• Arquitectura de la GPU
• Gráficos Multi-Proceso / Multi-Pantalla
• Gráficos Distribuidos
![Page 58: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/58.jpg)
58
Ejemplo
![Page 59: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/59.jpg)
59
Motor de RV
• Componente clave
• Tareas:
– Lectura de los dispositivos de entrada
– Lectura de la base de datos
–Actualización del estado (base de datos)
–Escritura en los dispositivos de salida
![Page 60: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/60.jpg)
60
Motor de RV
Track 1 Haptic 1 …
Control Control Control
Update Data Base
Display 1
Track n Haptic n
Control
Display n
Control Control
Haptic 1
Control Control
Haptic n
Control
![Page 61: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/61.jpg)
61
Motor de RV: Tiempo Real
• Carga computacional elevadas: –Gran número de sistemas complejos
– Imposible predecir las acciones de los
usuarios
–Requisitos impuestos por los factores
humanos • Refresco visual 25-30Hz • Refresco táctil 500-1000Hz
![Page 62: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/62.jpg)
62
Motor de Gráficos: Tiempo Real
• Carga computacional elevadas: – Latencia: tiempo transcurrido desde que el
usuario efectúa una acción hasta que recibe una respuesta
Latencia total = latencia del sensor + retraso del bus + cálculo del nuevo estado + retraso del bus + latencia del dispositivo de salida – La latencia visual no debe exceder 100ms
![Page 63: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/63.jpg)
63
Pipeline Háptico
1. Detección de colisiones 2. Cálculo de fuerzas
– Depende de las propiedades de cada objeto – Suele utilizarse la ley de Hooke
(computacionalmente ligero)
3. Suavizado de fuerza – Como Phong shading, para cálculo de fuerzas
4. Mapeo de la fuerza
• Texturas hápticas – Añaden: fricción, suavidad, temperatura – Utilización de bumps
• Control háptico: Bucle pesado Vs. Bucle ligero
![Page 64: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/64.jpg)
64
Sistema Gráfico + Háptico
![Page 65: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/65.jpg)
65
Arquitecturas
• Arquitecturas basadas en PC’s
• Arquitecturas basadas en estaciones de trabajo
• Arquitecturas basadas en sistemas distribuidos
![Page 66: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/66.jpg)
66
Arquitecturas Basadas en PC’s
• Es la opción más utilizada hoy –Espectacular incremento de prestaciones
• A nivel de micros +3GHz
• A nivel de buses
• Nuevas tarjetas gráficas
–Actualmente son sistemas multiusuario
–Pueden controlar varios dispositivos salida
–Precio
![Page 67: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/67.jpg)
67
Bus
PCI (Intel, 1993) AGP (Intel, 1997): 2.1 GB/s en el AGPx8 PCI Express 3.0: 16 GB/s con 32 canales (SLI)
AGP: bus dedicado para gráficos,
eliminó el cuello de botella.
![Page 68: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/68.jpg)
68
Arquitecturas Basadas en Workstations
• Después de los PC’s es la opción más utilizada • Mayor capacidad de cómputo
– Gracias a • Arquitecturas superescalables • Arquitecturas multiprocesador • Mayor velocidad en los buses
– Tiempo real
• Orientados a la multitarea – Requerida por la mayoría de las aplicaciones VR – Por lo general usan sistemas operativos UNIX
• Mayor facilidad para soportar varios displays – Pueden soportar varias tarjetas gráficas
![Page 69: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/69.jpg)
69
Un poco de historia
Onyx InfiniteReality2
pipes
![Page 70: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/70.jpg)
70
Arquitecturas Distribuidas
• Sistemas monousuario
–Control de varios dispositivos
• Sistemas con varios pipelines
– Hápticos
– Render
• Sistemas multiusuario
–Entornos de cooperación
![Page 71: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/71.jpg)
71
Sistemas con Varios Pipelines Gráficos
• Sistemas que necesitan varios displays
–Mosaicos de pantallas (tiled displays)
–Cuevas
–Varios proyectores, utilizando una misma pantalla
• Ejemplo: sistemas estéreo pasivo
– ...
![Page 72: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/72.jpg)
72
Sistemas con Varios Pipelines Gráficos
a) Tarjetas multipipe • Barato • No son escalables • Comparten el bus, memoria y CPU
b) RACs con varias tarjetas gráficas • Necesitas equipos con más de un bus • Son sistemas caros (workstations) • Uso de PC’s y tarjetas sobre slots PCI.
c) Un mismo pipe para varios dispositivos • Pérdida de resolución
d) Cluster de PC’s, con su propia tarjeta gráfica • Conectados por redes de alta velocidad
– Es el cuello de botella – Topologías y protocolos de red optimizados (WireGl)
![Page 73: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/73.jpg)
73
WireGl - Chromium
![Page 74: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/74.jpg)
74
WireGl - Chromium
• Protocolo basado en TCP/IP o en protocolos Myrinet
• Se basa en distintos servidores de control cada uno de los cuales supervisa varios servidores de render
• El servidor de control captura los comandos OpenGl y los distribuye entre los distintos servidores de render
• Codifica las instrucciones OpenGl compactando y empaquetando datos y operaciones
• El servidor de control lleva un control del estado de cada nodo de render – Solo envía la información que ha cambiado
![Page 75: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/75.jpg)
75
Sincronización de dispositivos heterogeneos
Track 1 Haptic 1 …
Control Control Control
Update Data Base
Display 1
Track n Haptic n
Control
Display n
Control Control
Haptic 1
Control Control
Haptic n
Control
![Page 76: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/76.jpg)
76
Sincronización de Dispositivos Heterogéneos
• La sincronización se realiza a nivel software
• Necesidad de desacoplado
– Distintas frecuencias de trabajo
![Page 77: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/77.jpg)
77
Sincronización de Pipelines Hápticos
• La sincronización se realiza a nivel de aplicación a) Después de la detección de colisiones
• Más carga en el dispositivo dedicado
• Más carga en la red
b) Después del calculo de fuerzas • Sólo se trasmite el vector de fuerzas
• Menos carga en el dispositivo dedicado
• Tareas del dispositivo dedicado – Suavizado
– Mapeado
– Texturado
![Page 78: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/78.jpg)
78
Sincronización de Pipelines Gráficos
• Crítica en mosaicos de displays – Especialmente cuando se usan varios
monitores CRT • Requieren sincronización píxel a píxel
• En el caso de utilizar imágenes estéreo la sincronización es todavía más crítica – Se requiere que todos los dispositivos
muestren a la vez el mismo campo de la imagen (izquierdo o derecho)
• La falta de sincronización produce parpadeo y malestar en el usuario
![Page 79: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/79.jpg)
79
Sincronización de Pipelines Gráficos
• La sincronización puede darse a 3 niveles
–Nivel de aplicación
–Nivel de cambio de buffers
–Nivel de vídeo
Application
Geometry
Rasterizer
Buffer Master CRT
Application
Geometry
Rasterizer
Buffer Slave CRT
Synchronization command Synchronization command Synchronization command
![Page 80: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/80.jpg)
80
Sincronización a Nivel de Aplicación
• Se comienza a procesar un nuevo frame a la vez en todos los pipeline
• Puede que haya pipelines que terminen antes que otros
–Cuando se llena un framebuffer, se muestra; no se espera
![Page 81: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/81.jpg)
81
Sincronización a Nivel de Cambio de Buffers
• Cuando termina un pipeline, espera a que termine el resto
• Cuando todos han terminado se intercambian los buffers (escritura visualizado) –glutSwapBuffer() (GLUT)
![Page 82: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/82.jpg)
82
Sincronización a Nivel de Cambio de Buffers
• Problema: cada display comienza a pintar en momentos distintos, dependiendo de su ciclo y de su frecuencia de refresco
– Los monitores CRT empiezan a pintar cuando su disparador retorna de la esquina inferior derecha a la esquina superior izquierda
![Page 83: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/83.jpg)
83
Monitores CRT
![Page 84: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/84.jpg)
84
Sincronización a Nivel de Vídeo
• Sincronización a nivel Hardware
– Interconexión entre tarjetas de vídeo
• Arquitectura maestro-esclavo
• Asegura que los dispositivos utilicen la misma frecuencia y ciclo de refresco
![Page 85: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/85.jpg)
85
Genlock
• Señal externa generada por hardware para sincronizar distintos pipelines
• Conexión de dipositivos en cadena (Daisy-Chain)
• Realiza – La sincronización del intercambio de buffers
• Cuando el maestro termina pregunta al esclavo si éste ha terminado también. Si el esclavo también ha terminado manda la señal de done, si no, no manda nada hasta que termina
– La sincronización a nivel de vídeo
– La sincronización de campos en imágenes estéreo
– La sincronización con otros dispositivos (como trackers) • Reducción de interferencias
![Page 86: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/86.jpg)
86
Índice
• Gráficos Multi-Proceso / Multi-Pantalla
• Arquitectura de la GPU
• Gráficos Distribuidos
![Page 87: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/87.jpg)
87
Sistemas VR Distribuidos Multiusuario
• Objetivo: generar entornos virtuales distribuidos – Varios usuarios separados físicamente comparten un
mismo entorno virtual
• Todos los usuarios pueden modificar su entorno - Entornos de colaboración
• Sólo un usuario puede manipular un objeto al mismo tiempo
- Entornos cooperativos • Varios usuarios pueden manipular el mismo objeto a la vez
• A través de red LAN ó WAN
![Page 88: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/88.jpg)
88
Topología de la Red
• Factores
– Tipo de aplicación
• Entornos de colaboración
• Entornos cooperativos
– Número máximo de usuarios
– Otros
• Latencia máxima admitida
• Escalabilidad
• Tolerancia a fallos
• Tipo de interacción (visual, háptica, audio…)
![Page 89: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/89.jpg)
89
Topología de la Red
• La clave: reducción del tráfico – Todos los equipos mantienen una copia de
la escena – Sólo transmiten las modificaciones que
hacen – Utilizan un buffer de transmisión para
mantener la coherencia en caso de fallo de la red
• Tipos de redes – Conexión punto a punto vs. broadcast – Topologías con un único servidor – Topologías con varios servidores – Protocolos peer-to-peer (P2P)
![Page 90: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/90.jpg)
90
Conexión Punto a Punto
• Sólo permiten interconectar dos equipos
• Direccionamiento unicast
• Funcionan bien sobre TCP/IP –Protocolo orientado a conexión
![Page 91: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/91.jpg)
91
Topologías con un Único Servidor
• Direccionamiento unicast, sobre TCP/IP
• Los usuarios notifican al servidor cuando modifican la escena
• El servidor trasmite los cambios en la escena sólo a los nodos interesados
![Page 92: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/92.jpg)
92
Topologías con un Único Servidor
• El número máximo de usuarios lo determinan la capacidad del servidor y la capacidad de la red
• Si la red es rápida, el servidor es un cuello de botella
![Page 93: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/93.jpg)
93
Topologías con Varios Servidores
• Direccionamiento unicast, sobre TCP/IP
• Cada nodo lleva asociado un servidor • Los usuarios notifican a su servidor
cuando modifican la escena • El servidor trasmite los cambios en la
escena al resto de servidores y a los nodos asociados interesados
![Page 94: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/94.jpg)
94
Topologías con Varios Servidores
• Estructura jerárquica de la red
• Mayor tráfico y mayor latencia, pero el servidor no es un cuello de botella
• El número máximo de usuarios lo determina la capacidad de la red
![Page 95: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/95.jpg)
95
Protocolos Peer-to-Peer
• Direccionamiento multicast, sobre UDP/IP
• Los nodos notifican al resto cuando modifican la escena mediante mensajes multicast
• Un nodo procesa los mensajes sólo cuando le interesa
![Page 96: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/96.jpg)
96
Protocolos Peer-to-Peer
• Si el sistema se queda sin usuarios se pierde el entorno
• Un nodo al conectarse descarga el entorno de otro nodo mediante TCP-IP
![Page 97: Arquitecturas Orientadas a la Realidad Virtualmgarcia/RVA/Arquitecturas.pdf · –Pueden controlar varios dispositivos salida –Precio . 67 Bus PCI (Intel, 1993) AGP (Intel, 1997):](https://reader034.vdocumento.com/reader034/viewer/2022051918/600a9a1205f13859fa4503d4/html5/thumbnails/97.jpg)
Ejemplo: Juego Distribuido
97
Dueling Teapots http://www.scheib.net/school/243/index.html