Difference between revisions of "BogotaClimateChange:Climate Simulation Visualization"
From hpcwiki
Jvictorinog (Talk | contribs) (→Funcionamiento básico) |
Jvictorinog (Talk | contribs) (→Funcionamiento básico) |
||
Line 35: | Line 35: | ||
=== Estructura de la interfaz === | === Estructura de la interfaz === | ||
=== Funcionamiento básico === | === Funcionamiento básico === | ||
− | Orden de llamados: | + | ====Orden de llamados:==== |
* Constructor de la clase Widget | * Constructor de la clase Widget | ||
* Constructor de la ventana de usuario que desciende de Widget | * Constructor de la ventana de usuario que desciende de Widget | ||
Line 97: | Line 97: | ||
glutSwapBuffers(); | glutSwapBuffers(); | ||
* Window::draw() | * Window::draw() | ||
− | ** Pintar escena 3D y widgets | + | ** Pintar escena 3D y widgets en Draw de la ventana |
− | + | ||
* glut_exec()... | * glut_exec()... | ||
Revision as of 17:09, 1 October 2013
Contents |
WRF Data Extraction
path scripts to generate fields
/home/jvictorino/wrf/scripts
path fields data generated
/home/jvictorino/wrf/wrf_data
4D fields generated {lats 287, lons 280, levs 34, times 265} XX corresponds with time index:
- tempXX.dat: temperature
- PsXX.dat: pressure
- UXX.dat: Meridional component of wind
- VXX.dat: Zonal component of wind
- WXX.dat: Verical component of wind
3D fields generated {lats 287, lons 280, times 265}:
- relhum.dat: Relative Humidity
- raina.dat: acummulated rain
- cldfrac.dat: cloud fraction
Terrain Elevation Rendering
Data source: ASTER_GDEM
Demo versión 0.1 de Render de elevación del terreno en los cerros orientales de Bogotá, resolución 30 metros, región de 5.4 Km x 5.4 Km. Usando OpenGL.
Temperature 3D, 10 layers, selected region.
Physically-based Cloud Generation
GUI OpenGL
Elementos de la libreria
Estructura de la interfaz
Funcionamiento básico
Orden de llamados:
- Constructor de la clase Widget
- Constructor de la ventana de usuario que desciende de Widget
- Constructor WrapperGL
- Llamado a la función init() de la ventana llamada por WrapperGL::init()
- Llamado a la función resize() de la ventana llamada por WrapperGL::reshape()
- Llamado a la función draw() de la ventana llamada por WrapperGL::glut_display()
- Automáticamente se llama por segunda a la función draw() de la ventana
- El motor gráfico queda escuchando los eventos activados
La función WrapperGL::reshape() configura una proyección de perspectiva. Y en la función WrapperGL::glut_display() configura una proyección Ortogonal
-Estado inicial de OpenGL
- Widget::Widget()
- Window::Window()
- No usar directivas de OpenGL
- WrapperGL::WrapperGL()
glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(pmain_widget->get_width(), pmain_widget->get_height()); if(gameMode){ glutGameModeString("800x600:32@60"); glutEnterGameMode(); } else glutCreateWindow(pmain_widget->get_title().c_str()); glClearColor(1.0, 1.0, 1.0, 0.1); glutDisplayFunc(glut_display); glutReshapeFunc(glut_reshape); glutMouseFunc(glut_mouse_press); glutMotionFunc(glut_mouse_drag); glutPassiveMotionFunc(glut_mouse_move); glutKeyboardFunc(glut_key_pressed); glutKeyboardUpFunc(glut_key_released); glutSpecialFunc(glut_special_key_pressed); glutSpecialUpFunc(glut_special_key_released);
- WrapperGL::init()
glClearColor(c[0], c[1], c[2], c[3]);
- Window::init()
- Espacio disponible para configurar el estado de OpenGL, excepto la proyección
- Antes de ejecutar glutMainLoop()
- WrapperGL::reshape()
glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(60.0, (double)w/h, 1, 10000); glMatrixMode(GL_MODELVIEW);
- Window::resize()
- No cambiar perspectiva
- Cambiar propiedades de los Widgets para ajustar a las nuevas dimensiones
- WrapperGL::glut_display()
glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); gluOrtho2D(0, w, 0, h); glScalef(1, -1, 1); glTranslatef(0, -h, 0);
glMatrixMode(GL_MODELVIEW); glPushMatrix(); pmain_widget->draw(); // Draw de la ventana glPopMatrix(); glutSwapBuffers();
- Window::draw()
- Pintar escena 3D y widgets en Draw de la ventana
- glut_exec()...
-Funciones y utilidades de OpenGL
Visualización de campos WRF
Descripción de objetos
TODO List
- Propose a model for cloud generation based on single cells in a simulation domain (WRF)