Alguien tiene el URL de una libreria para dibujar Gizmos en OpenGL? Las flechitas de XYZ, bounding boxes, etc... Recuerdo una que hizo un español pero ya no me acuerdo del URL,es algo vieja.
Más que nada por ahorrarme una líneas de código si la licencia no es viral.
(http://www.boolsite.net/images/previews/Cinema/_prev/Gremlins-Gizmo.jpg)
:D :D
perdoname, no lo he podido evitar :P
Cita de: senior wapoAlguien tiene el URL de una libreria para dibujar Gizmos en OpenGL? Las flechitas de XYZ, bounding boxes, etc... Recuerdo una que hizo un español pero ya no me acuerdo del URL,es algo vieja.
Más que nada por ahorrarme una líneas de código si la licencia no es viral.
La verdad es que a parte de los típicos ejes XYZ no se me ocurren muchos gizmos más que no sean muy básicos (hechos a base de primitivas). Realmente necesitas una librería para dibujar un bounding box? ..
Para d3d indicando un maximo y un minimo:
dib::System::Math::Vector3 vData[24];
vData[0] = pBox->m_vMin;
vData[1].x = pBox->m_vMin.x; vData[1].y = pBox->m_vMin.y; vData[1].z = pBox->m_vMax.z;
vData[2] = pBox->m_vMin;
vData[3].x = pBox->m_vMax.x; vData[3].y = pBox->m_vMin.y; vData[3].z = pBox->m_vMin.z;
vData[4].x = pBox->m_vMax.x; vData[4].y = pBox->m_vMin.y; vData[4].z = pBox->m_vMin.z;
vData[5].x = pBox->m_vMax.x; vData[5].y = pBox->m_vMin.y; vData[5].z = pBox->m_vMax.z;
vData[6].x = pBox->m_vMin.x; vData[6].y = pBox->m_vMin.y; vData[6].z = pBox->m_vMax.z;
vData[7].x = pBox->m_vMax.x; vData[7].y = pBox->m_vMin.y; vData[7].z = pBox->m_vMax.z;
vData[8] = pBox->m_vMin;
vData[9].x = pBox->m_vMin.x; vData[9].y = pBox->m_vMax.y; vData[9].z = pBox->m_vMin.z;
vData[10].x = pBox->m_vMin.x; vData[10].y = pBox->m_vMax.y; vData[10].z = pBox->m_vMin.z;
vData[11].x = pBox->m_vMin.x; vData[11].y = pBox->m_vMax.y; vData[11].z = pBox->m_vMax.z;
vData[12].x = pBox->m_vMin.x; vData[12].y = pBox->m_vMax.y; vData[12].z = pBox->m_vMin.z;
vData[13].x = pBox->m_vMax.x; vData[13].y = pBox->m_vMax.y; vData[13].z = pBox->m_vMin.z;
vData[14].x = pBox->m_vMax.x; vData[14].y = pBox->m_vMin.y; vData[14].z = pBox->m_vMin.z;
vData[15].x = pBox->m_vMax.x; vData[15].y = pBox->m_vMax.y; vData[15].z = pBox->m_vMin.z;
vData[16].x = pBox->m_vMax.x; vData[16].y = pBox->m_vMin.y; vData[16].z = pBox->m_vMax.z;
vData[17] = pBox->m_vMax;
vData[18].x = pBox->m_vMax.x; vData[18].y = pBox->m_vMax.y; vData[18].z = pBox->m_vMin.z;
vData[19] = pBox->m_vMax;
vData[20].x = pBox->m_vMin.x; vData[20].y = pBox->m_vMax.y; vData[20].z = pBox->m_vMax.z;
vData[21] = pBox->m_vMax;
vData[22].x = pBox->m_vMin.x; vData[22].y = pBox->m_vMin.y; vData[22].z = pBox->m_vMax.z;
vData[23].x = pBox->m_vMin.x; vData[23].y = pBox->m_vMax.y; vData[23].z = pBox->m_vMax.z;
// Renderizarla
m_pDevice->SetStreamSource( 0, NULL, 0, 0 );
m_pDevice->SetFVF( D3DFVF_XYZ );
m_pDevice->DrawPrimitiveUP( D3DPT_LINELIST, 12, &vData[0], sizeof(float)*3 );
Para ogl indicando un maximo y un minimo:
glBegin( GL_LINE_STRIP );
glVertex3f( pBox->m_vMin.x, pBox->m_vMin.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMin.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMin.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMin.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMin.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMin.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMin.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMin.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMin.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMax.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMax.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMax.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMax.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMax.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMin.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMax.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMin.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMax.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMax.y, pBox->m_vMin.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMax.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMax.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMax.x, pBox->m_vMax.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMin.y, pBox->m_vMax.z );
glVertex3f( pBox->m_vMin.x, pBox->m_vMax.y, pBox->m_vMax.z );
glEnd();
Pero quienes mas saben sobre el tema son los de haddd que tienen todo tipo de gizmos en su motor.
Los gizmos que molan son los que habitualmente vienen en los visores de VRML :)
Realmente hace falta una libreria?
Que tan complicados pueden ser?
Yo tampoco puedo evitarlo... ¿qué es un gizmo?
Un gizmo es un personaje de una pelicula, el cual puso la foto seryu.
A parte de esto ... se le llama gizmo a una referencia espacial o directiva ( el concepto es bastante amplio ).
En nuestro caso (mundo de desarrollo 3d) son por ejemplo las referencias graficas para ubicación espacial y de dimensón, o sea todos los graficos de referencias como flechas, reglas, la tipica cruz x-y-z, los bounding boxes, los pivotes para animación y todas esas cosas.
Si alguíen tiene una definicion mas catedratica o certera se agradece también.
Saludos.
La definicion que siempre he usado para gizmo es que es una representacion basica de la transformacion y/o propiedades de un objeto mas complejo, y despues se puede representar como dice pogacha de muchas formas, no obstante estoy seguro que alguien tiene una definicion mas correcta.