Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Temas - Prompt

#21
Bueno hace ya un tiempo que se anunció el acuerdo y estos días estamos terminando de ultimar detalles con el grupo de trabajo de SiS. SiS es un operador de televisión por satélite que emite infinidad de cosas, entre ellas el tenis y el futbol en UK, es el mayor operador de televisión de UK y emite en toda europa.

Despues de embarcarme en un proyecto atípico de desarrollo de videojuegos por fin podremos ver en los proximos meses algo atípico, un videojuego con un canal exclusivo de satélite.

Fantastic League es un videojuego de futbol con bastante complejidad añadida para poder cumplir con los requisitos de las apuestas (Fixed Odds). Un visión muy simplista es un Fifa o Pro-Evolution donde se puede apostar. No es un juego donde se pueda interactuar con un mando y la IA es muy muy compleja para que aquello parezca un partido real.

A mi esto del "gambling" (videojuegos de apuestas) en su inicio no me motivaba mucho, pero ciertamente esta es una industria enorme donde Gextech se ha posicionado como la empresa más puntera en este tipo de desarrollo.

Noticias:
http://casino-group.blogspot.com/2009/07/gextech-y-sis-cierran-un-acuerdo.html
http://www.igamingbusiness.com/article-detail.php?articleID=21372
http://onlinecasinos.org/blog/fantastic-league-brings-online-games-to-tv/1495/
... hay muchos :) ha corrido como la polvora entre el sector.
#22
Programación gráfica / Avances en el Deferred Rendering
28 de Junio de 2009, 10:17:24 PM
Hola hola hola...

Bueno, me di en principio de bruces por ir muy deprisa y querer hacer las optimizaciones del tiron y la implementacion en GLSL del paper de Fabio Policarpo y cia ( no me acuerdo del otro autor desgracidamente)

No me gusta como trata las luces y el codigo que usa y plantea, para mi es obsoleto y muy lioso y carece de funcionalidad y buena utilización de operaciones graficas. Siento ser duro. Digamos que usa mil FBOs y el codigo es "old Style" entre otras cosas. A parte de que para optener el depth buffer usa z-early que es de doom 3 y no es para nada necesario. Por no decir de los agujeros negros que tiene como "tutorial" que es de lo que trata.

Bueno encontré por el foro de opengl.org un articulo, Image Space Lighting  Decidí analizarlo, son point lights y decidí ver como estába implementado. Es una demo y creo que el articulo los datos que maneja al menos, son una chorrada. Ese programa se funde el BUS de datos ,renderiza 2 veces y por fixed pipelines, por lo cual tiene un bottle neck impresionante. No se porque luego saca datos de pruebas de stress... yo me lo he tomado como un articulo más y pasar de esa implementación.

He decidido ver como maneja la parte del Lighting Stage y lo he mezclado con el paper de policarpo (bien hecho). Es decir, 2 FBO, 1 para el Geometry Stage y otro para el Lighting Stage, de forma aditiva. Se renderiza un pase con el ALBEDO ("color") es un QUAD y posteriormente, por luz suporpones (GL_BLEND) más QUAD de forma aditiva. Ya se me ocurren formas de optimizarlo en un paso previo y encima vi una demo de "Indirect Deferred Rendering", o algo así que creo que optimiza esta parte. ¿Que pasa si tenemos 80 000 luces en pantalla para iluminar? pues la tarjeta le da igual pq no son muchos polis pero se podria hacer todo el trabajo aditivo de una sola pasada? eso es lo que me estoy planteando, pero me voy a poner el freno.

Aunque las screenshots son una birria (aparentemente...) veamos:

Geometry Stage:


Accumulative Light Stage:


De momento y sin hacer culling de las luces (las proceso todas, si no se ven pues es absurdo poner un QUAD si no añaden nada a la escena, pero bueno poco a poco). Machacaré el tema y veré que tal le sienta las funciones que hice para el paper de policarpo de coger el frustum, quitar las luces que no entre y utilizar las "SCISSORS" para optimizar. Antes de pasar al "Stage" mas divertido que es el de los filtros puedo decir que ya he llegado a un punto muy bueno y comprendo totalmente la tecnica y la domino. Ahora toca frikear optimizando un poco, divertirse con el Filter Stage / Post-Procesing Stage y ver si hago un paper completo como dios manda, lo añado a la wiki de stratos, a la wiki de codepixel y os ayuda a todos a tener un motor de render actualizado a los tiempos que corren, está tecnica sin duda será la base del render futuro ahora que las tarjetas graficas tienen bastante memoria para poder hacerlo :) (por no hablar de como se optimiza el tema de iluminación, está por ver como hacer algo parecido para las sombras aun tengo que frikear mas)

Un saludo!  :o

PD: tamat, ya estoy acabando tendrás que sufrir menos o nada el dia de mañana :D
#24
Hola a todos. Rapidamente...

Estoy implementando el Geometry Stage de la tecnica donde se renderiza una geometría y de ella se extrae información en diferentes buffers. En mi caso (y en el de la mayoria) 4:



Se renderiza bien, pero cuando observo que hay en los buffers parece como si funcionara mal el culling, he probado varias cosas como invertir el CCW, CW desactivarlo etc... pero parece que le gusta solo renderizar la parte de atrás... no lo entiendo:



Codigo del draw (imagen 1)

//*///-----------------------------------------------------------------------------------------
void DeferredShader::drawMaterial( )
{
glViewport( 0, 0, m_width, m_height);

GLenum buffers[] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_COLOR_ATTACHMENT2_EXT, GL_COLOR_ATTACHMENT3_EXT/*, GL_DEPTH_ATTACHMENT_EXT*/ };
glDrawBuffers( 4, buffers );
checkFBO( );

glClearColor( 0.0, 0.0, 0.0, 0.0);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

glEnable(GL_DEPTH);
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
glDepthRange(0.0, 1.0); // The default z mapping
glStencilMask(GL_FALSE);

glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
glDisable(GL_TEXTURE_GEN_R);
glDisable(GL_TEXTURE_GEN_Q);

glCullFace(GL_BACK);

//glShadeModel(GL_SMOOTH);
//glEnable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_NORMALIZE);
glEnable(GL_TEXTURE_2D);

glEnable(GL_ALPHA_TEST);
glDepthMask(GL_TRUE);
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);

glPushMatrix( );
// draw raw scene geometry
m_pMRTShader->setUp( m_pMRTShader->getConfiguration( ) );
m_pMRTShader->beginTextures( );

m_pMRTShader->begin( );

// Formato para el shader
static Entity3D xForm;
const Matrix4 mEffectFormat = xForm.getWorldMatrix( ).transpose( );

glMultiTexCoord4fv(GL_TEXTURE1, mEffectFormat[0]);
glMultiTexCoord4fv(GL_TEXTURE2, mEffectFormat[1]);
glMultiTexCoord4fv(GL_TEXTURE3, mEffectFormat[2]);
glutSolidTeapot( 2000.0f );

m_pMRTShader->endTextures( );
m_pMRTShader->end( );
glPopMatrix( );
}



Codigo del test:

       //*///-----------------------------------------------------------------------------------------
void DeferredShader::showTest( )
{
//glColor3f(1.0f, 1.0f, 1.0f);
//glCullFace(GL_FRONT);

//glEnable(GL_TEXTURE_2D);
//glDisable(GL_DEPTH_TEST);

glViewport(0, 0, m_width, m_height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();

glOrtho(0.0, 1.0, 1.0, 0.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

m_pFBOTestShader->begin( );
m_pFBOTestShader->setUniform1i("FBO", 0);
glActiveTexture(GL_TEXTURE0);

glBindTexture(GL_TEXTURE_2D, m_mrtTexture[0]);
glBegin(GL_QUADS);
glTexCoord2i(0, 1); glVertex2f(0.0f, 0.0f);
glTexCoord2i(1, 1); glVertex2f(0.5f, 0.0f);
glTexCoord2i(1, 0); glVertex2f(0.5f, 0.5f);
glTexCoord2i(0, 0); glVertex2f(0.0f, 0.5f);
glEnd( );

glBindTexture(GL_TEXTURE_2D, m_mrtTexture[1]);
glBegin(GL_QUADS);
glTexCoord2i(0, 1); glVertex2f(0.5f, 0.0f);
glTexCoord2i(1, 1); glVertex2f(1.0f, 0.0f);
glTexCoord2i(1, 0); glVertex2f(1.0f, 0.5f);
glTexCoord2i(0, 0); glVertex2f(0.5f, 0.5f);
glEnd( );

glBindTexture(GL_TEXTURE_2D, m_mrtTexture[2]);
glBegin(GL_QUADS);
glTexCoord2i(0, 1); glVertex2f(0.0f, 0.5f);
glTexCoord2i(1, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2i(1, 0); glVertex2f(0.5f, 1.0f);
glTexCoord2i(0, 0); glVertex2f(0.0f, 1.0f);
glEnd( );

glBindTexture(GL_TEXTURE_2D, m_mrtTexture[3]);
glBegin(GL_QUADS);
glTexCoord2i(0, 1); glVertex2f(0.5f, 0.5f);
glTexCoord2i(1, 1); glVertex2f(1.0f, 0.5f);
glTexCoord2i(1, 0); glVertex2f(1.0f, 1.0f);
glTexCoord2i(0, 0); glVertex2f(0.5f, 1.0f);
glEnd( );

m_pFBOTestShader->end( );
}


Alguna experiencia con algo similar? RENDER -> FBO
#25
Programación gráfica / FBO, Depth Buffer -> textura
23 de Junio de 2009, 07:04:35 PM
Hola que tal!

Resulta que estoy haciendo Deferred Shading y uno de los pasos es tener la componente z guardada en una "textura". Aparentemente hay una manera directa de tener esos datos en OpenGL sin tener que usar el early-z de Carmak (Doom3) o la manera de DX que es creando una capa del deferred donde almacenar la componente Z.

Basicamente estoy atascado en visualizar el depth buffer
Lo que yo hago es:

    * Generar un render buffer
    * attach del render buffer al FBO
    * bind del FBO
    * renderizar escena (yo lo hago con un simple cubo)
    * unBind FBO
    * ejecutar filtro para ver mi G-Buffer

        // create color texture
        glGenTextures( 1, &m_mrtTexture[0] );
        glBindTexture( GL_TEXTURE_2D, m_mrtTexture[0] );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
        glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA16F, m_width, m_height, 0, GL_RGBA, GL_FLOAT, NULL );
       
        glGenTextures( 1, &m_mrtTexture[1] );
        glBindTexture( GL_TEXTURE_2D, m_mrtTexture[1] );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
        glTexImage2D   ( GL_TEXTURE_2D, 0, GL_RGBA16F, m_width, m_height, 0, GL_RGBA, GL_FLOAT, NULL );
       
        glGenTextures( 1, &m_mrtTexture[2] );
        glBindTexture( GL_TEXTURE_2D, m_mrtTexture[2] );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
        glTexImage2D   ( GL_TEXTURE_2D, 0, GL_RGBA16F, m_width, m_height, 0, GL_RGBA, GL_FLOAT, NULL );

        // create depth texture
        /*
        glGenTextures( 1, &m_mrtTexture[3] );
        glBindTexture( GL_TEXTURE_2D, m_mrtTexture[3] );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_MODE, GL_COMPARE_R_TO_TEXTURE ) ;
        glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_COMPARE_FUNC, GL_LEQUAL );
        glTexParameteri( GL_TEXTURE_2D, GL_DEPTH_TEXTURE_MODE, GL_LUMINANCE );
        */
               
        // initialize depth renderbuffer
        glGenRenderbuffersEXT( 1, &m_depthFBO );
        glBindRenderbufferEXT( GL_RENDERBUFFER_EXT, m_depthFBO );
        glRenderbufferStorageEXT( GL_RENDERBUFFER_EXT, GL_DEPTH_COMPONENT, m_width, m_height );
        checkFBO( );

        glGenFramebuffersEXT( 1, &m_mrt );
        glBindFramebufferEXT( GL_FRAMEBUFFER_EXT, m_mrt );
        glFramebufferRenderbufferEXT( GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, m_depthFBO );
        glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT  , GL_TEXTURE_2D, m_mrtTexture[0], 0 );
        glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT  , GL_TEXTURE_2D, m_mrtTexture[1], 0 );
        glFramebufferTexture2DEXT( GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT2_EXT  , GL_TEXTURE_2D, m_mrtTexture[2], 0 );
        checkFBO( );

       
        // bind G-buffer for rendering
        mrtBindRender( );

        glViewport( 0, 0, m_width, m_height);
       
        GLenum buffers[] = { GL_DEPTH_ATTACHMENT_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT, GL_COLOR_ATTACHMENT2_EXT };
        glDrawBuffers( 4, buffers );

        glClearColor( 0.0, 0.0, 0.0, 0.0);
        glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
       
        // draw raw scene geometry
        m_pMRTShader->begin( );
        glColor3f(1.0, 1.0, 1.0);
        glEnable(GL_DEPTH_TEST);
        glEnable(GL_TEXTURE_2D);

        drawBox( );
        m_pMRTShader->end( );

        // unbind the G-buffer
        mrtUnbindRender( )    // Aqui hago el filtro y miro las texturas



-------------------

En el filtro....

glActiveTexture(GL_TEXTURE0 + 0);
glBindTexture(GL_TEXTURE_2D, m_depthFBO);
m_pTempShader->setUniform1i("fbo0", 0);



Shader m_pMRTShader

    //gl_FragData[0] = vec4(0.0, 1.0, 0.0, 0.0);
    gl_FragData[1] = vec4(0.0, 1.0, 0.0, 0.0);
    gl_FragData[2] = vec4(1.0, 0.0, 0.0, 0.0);
    gl_FragData[3] = vec4(0.7, 0.2, 1.0, 0.0);


Lo reyeno de colores para probar que estan bien, aparentemente si, pero no consigo pintar el depth. Necesito hacer early-z? que hago mal con el RenderBuffer?

Me funciona bien, pero soy incapaz de poder ver la "textura" del depth buffer, hay algo mal?

Gracias :)
#26
Industria y mercado / iPhone 3GS a la venta el 19 de Junio
17 de Junio de 2009, 10:41:55 AM
ref: http://www.theinquirer.es/2009/06/16/preparandonos-para-la-llegada-del-iphone-3g-s.html

Ya sabeis, OMAP3, OGL 2.0 ... una barbaridad muy superior a una DS o PSP. El mismo hardware que utilizarán en NOKIA o Palm Pre, la lucha está abierta! :)
#27
General Programadores / Axis2 ip del cliente (request)
16 de Junio de 2009, 03:18:24 PM
Hola... a ver si alguien ha tenido este problema.

Tengo un tomcat con un WS Axis2/Java. En el log donde imprime las llamadas no pone la IP del cliente que las hace. Hay alguna manera via XML de configuración de "activar" esta funcionalidad?

Gracias!
#28
Industria y mercado / iPhone 3G S
12 de Junio de 2009, 12:51:22 PM
Lo que yo suponia que iba a pasar... ya lei en un blog hace mucho un rumor y ahora parece que T-Mobile ha patinado un poco:
http://www.theinquirer.es/2009/06/11/especificaciones-iphone-3g-s-al-descubierto-por-error-de-t-mobile.html

El chip Cortex-A8 es el mismo que Open Pandora y como era logico y de esperar, moviles de todo tipo como los nuevos NOKIA y las Palm ya lo estaban incorporando. Ahora Apple se apunta al carro y tachan! 600Mhz y OGL 2.0 con el PowerVR SGX, con lo cual mi motor será compatible!  :)_

Lo esperaba como agua de mayo!
#29
NSS Engine / Algunas screen shots
19 de Mayo de 2009, 12:05:38 PM
Bueno, hace poco compilé el visor del juego en linux e hice unas screenshots a como voy.

El servidor de cuentas, de mundo están preparados, de momento estoy con el modo single player pero la lógica de carga de mods y demás esta terminada :)

Ahora estoy adaptando el editor de juego para empezar a crear mapas y que se añada automaticamente al mod etc...





Saludos!
#30
NSS Engine / Nuevo video del NSS Engine, GUI & StyleSheet
23 de Abril de 2009, 01:22:29 PM
#31
General / Alguien sabe algo de Kron Games Studio?
21 de Abril de 2009, 01:54:18 PM
 :.. Holaa a todos!

Alguien sabe algo de Kron Games Studio? ha contactado alguien con ellos?
#32
NSS Engine / StyleSheet Demo, necesito feedback
15 de Abril de 2009, 02:01:17 AM
Necesito feedback de como os va, sobre todo en tarjetas ATi, en mi AH3450 hace raros con el renderizado de las ventanas. Como coño aplico el driver de ATi a una con el tipico soporte de mierda, q no actualizan los drivers nunca? Como se hace con las nVidia de portatiles! como se hace esto en ATi con tarjetas?

Blog: http://www.alvaromartin.net/
Direct Link: http://www.alvaromartin.net/files/demos/StyleSheet-1.0.6.00.7z
Download Page: http://www.alvaromartin.net/downloads
#33
NSS Engine / Widgets!
13 de Abril de 2009, 04:38:10 PM
Bueno, hace ya un tiempo, demasiado, empecé a plantearme embeber ventanas y controles en mi motor. Tras la experiencia en productos profesionales, recortar una textura y centenares de lineas de código para hacer ventanas en videojuegos decidí ser más practico y utilizar todo el potencial de un diseñador y un sistema de widgets extremadamente maduro y potente, Qt. Estoy cansado de ver videojuegos como NWN2 con un apestoso GUI que no sirve para nada! Encima de todo normalmente por no decir casi siempre, no tienen lógica de pintado y refrescan toda la zona del GUI en cada frame. En fin... asquerosos, por no hablar de usar FLASH que es la barbaridad más grande que he visto. Para un menu out-game hasta lo puedo entender, pero embebido dentro del juego es un bottle neck increible. Pero no discutiré de esto que sino tardaría siglos.

Hace poco salió la versión de Qt 4.5, en la que por fin arreglan los problemas de rendimiento de pintado en general, no solo cuando se embebe un widget dentro de OpenGL.

Pues bien, tras pelearme bastante para darle una forma correcta y coherente, empecé a crear mi propio stylesheet de Qt. En las imagenes que adjunto al post, tampoco se ve grán cosa, solo labels, pestañas y graficos. Pero está todo cambiado, pronto pondré más imagenes de los widgets.

En realación a esto, como es delicado exponer el archivo de estilos de Qt, que tiene alguna que otra complejidad (y que yo sepa 2 bugs) lo he metido en binario dentro del ejecutable. Todo lo demás lo he sacado fuera para que cualquier persona el dia de mañana pueda modificar todo el aspecto de las aplicaciones o juegos cambiando los PNGs.

A ver que os parece :)




Un saludooo!

Como digo en mi blog... la demo vendrá pronto! :D
#34
NSS Engine / NSS Engine levanta algo de especcion!
05 de Febrero de 2009, 08:09:04 PM
 :o

Me han publicado una entrada en el blog oficial de OpenPandora:
http://openpandora.wordpress.com

Ver comentarios:
http://openpandora.wordpress.com/2009/02/05/no-siesta-studios-are-porting-their-projects-to-the-pandora/#comments

Y el foro también está calentito!
http://www.gp32x.com/board/index.php?showtopic=46567&st=0&gopid=697900&#entry697900

Esto me llena de satisfacción despues de tanto esfuerzo  ^_^
#35
NSS Engine / Nueva versión del NSS Engine 1.0.5.40 y demos!
05 de Febrero de 2009, 02:43:42 PM
 :o Apañeroooooooooos! acabo de poner un post, con un video en mi web: www.alvaromartin.net

También en la sección de descargas he puesto la versión beta del editor y he re-masterizado y actualizado la demo del SurfaceClip maps y el SkyDome.

Por favor, pasad a verlo y decidme si os da algún error!

http://www.alvaromartin.net/downloads

Gracias por todo, un saludo.
#36
Puede que lo hayais leido, pero allá va

Conversaciones reales registradas entre un Servicio de Asistencia Técnica y usuarios/as de equipos informáticos.

Caso 1
Técnico de Servicio: ¿Qué ordenador tiene?
Usuaria: Uno blanco
Técnico de Servicio: (Silencio)

Caso 2
Usuaria: ¡Hola! No puedo sacar el disquete de la disquetera.
Técnico de Servicio: ¿Ha intentado apretar el botón?
Usuaria: Sí, claro, está como pegado...
Técnico de Servicio: Eso no suena bien, tomaré nota.
Usuaria: No... Espera... No había metido el disquete... está todavía en la mesa..., gracias.

Caso 3
Técnico de Servicio: Haga clic sobre el ícono de 'Mi PC', a la izquierda de la pantalla.
Usuaria: ¿Su izquierda o mi izquierda?

Caso 4
Técnico de Servicio: Buenos días, ¿en qué puedo ayudarle?
Usuaria: Hola, no puedo imprimir.
Técnico de Servicio: Por favor dé clic en 'inicio' y...
Usuaria: Escuche, no empiece con tecnicismos, no soy experta en ordenadores. ¡Coño!

Caso 5
Usuaria: Hola, buenas tardes, no puedo imprimir, cada vez que lo intento dice 'No se encuentra impresora'. He cogido incluso la impresora, la he colocado en frente del monitor pero el ordenador todavía dice que no la puede encontrar.

Caso 6
Usuaria: Tengo problemas para imprimir en rojo.
Técnico de Servicio: ¿Tiene una impresora a color?
Usuaria: No, la mía es blanca.

Caso 7
Técnico de Servicio: ¿Qué ve en su monitor ahora mismo?
Usuaria: Un osito de peluche que mi novio me compró.

Caso 8
Técnico de Servicio: Ahora, pulse F8..
Usuaria: No funciona.
Técnico de Servicio: ¿Qué hizo exactamente?
Usuaria: Presionar la F 8 veces como me dijiste, pero no ocurre nada.

Caso 9
Usuaria: Mi teclado no quiere funcionar.
Técnico de Servicio: ¿Está segura de que está conectado?
Usuaria: No lo sé. No alcanzo la parte de atrás.
Técnico de Servicio: Coja el teclado y dé diez pasos hacia atrás.
Usuaria: ok
Técnico de Servicio: ¿El teclado sigue con usted?
Usuaria: Sí
Técnico de Servicio: Eso significa que el teclado no está conectado ¿Hay algún otro teclado?
Usuaria: Sí, hay otro aquí. Huy,.... ¡¡¡Este sí funciona!!!

Caso 10
Técnico de Servicio: Tu password es 'a' minúscula de andamio, V mayúscula de Víctor, el número 7...
Usuaria: ¿7 en mayúscula o minúscula?

Caso 11
Usuaria: No puedo conectarme a Internet, aparece error de clave.
Técnico de Servicio: ¿Está segura de que está utilizando el password correcto?
Usuaria: Sí, estoy segura, ví a mi esposo escribirlo
Técnico de Servicio: ¿Me puede decir cuál era el password?
Usuaria: 5 asteriscos.

Caso 12
Usuaria: Tengo un grave problema. Un amigo me puso un protector de pantalla, pero cada vez que muevo el ratón desaparece...

Caso 13
Usuaria: No logro encontrar el simbolito para abrir el Word.
Técnico de Servicio: Mire en el escritorio.¿qué tiene ahí?
Usuaria: Muchos papeles y mi bolso.
#37
NSS Engine / Demo Game Editor 1.0.2.36
01 de Febrero de 2009, 01:45:41 PM
Hola a todos! He añadido unas texturas que hacian falta.

A ver si me ayudais en un propósito. Acabo de compilar la versión para win32 de mi editor de contenidos. El requisito es Shader Model 3 y OpenGL 2.0. No se si con Shader Model 2, con los shaders que uso es suficiente, puede que si ya que no está activado el HDR de primeras.

Trasteadlo un poco y me contais por favor! :)

Download

Pruebas:

   1. Cargamos el programa y desplegamos el arbol de tiles, en available resources.
   2. Seleccionamos Dungeon->Floor
   3. Nos aparecerá un cuadrado de edición en el mapa / malla. Simplemente pulsando el boton izquierdo del ratón podremos "escavar" para formar nuestro mapa. De momento no se puede volver a "poner tierra", :) todo llega.
   4. Pulsamos el boton central del ratón, así rotamos la cámara. Con AWSD, nos movemos. La cámara tiene un bug cuando la llevas a 90º vertical. Tengo que mirarlo cuando tenga un momento, pero si nos ocurre esto, pulsamos F2 y la cámara vuelve a su estado inicial.
   5. Nos acercamos al mapa para poner "bichos".
   6. En la pestaña Creatures, vamos a crear un nuevo "bicho". Desplegamos el arbol "Tutorials" pulsamos con el boton derecho en el nodo del arbol (en el mismo tutorials...) y le damos a New.
   7. Aquí vemos una preciosa y estupenda tetera... y la imagen de mi dolores, el mounstruito Hurón de mi casa :P
   8. Bien, estos "portraits" se pueden cambiar en el boton "..." a la derecha de la imagen. Ahora mismo solo hay uno para reducir el tamaño del paquete comprimido.
   9. Podemos cambiar los datos del grupo "profile", os invito a que desplegueis "Appearance" y por ejemplo utilizamos "penguin" y rotar el objeto pulsando en el visor el botón derecho del ratón y moviendo el raton para donde nos apetezca.
  10. Otra cosa actualmente activa es la pestaña "Description" y "Scripts".
  11. Vamos a la pestaña "Scripts" y abajo del todo desplegamos donde sale "amartin" y selecionamos por ejemplo "globals". Pulsamos "Load Script Set" y nos cargará la plantilla de scripts de ese bicho. Ahora mismo no ejecuto en el motor ningún evento ya que estoy haciendo la parte del servidor pero podemos darle al botón edit y trastear con el editor de scripts, compilar y demás...
  12. Le damos a "OK" y ya tenemos creado nuestro bicho, lo seleccionamos en el arbol de criaturas y se nos pondrá como si fuera un "brush".
  13. Movemos el ratón sobre el mapa y vemos que se mueve sobre un "sub-grid" actualmente todos los objetos ocupan 1x1 grid, por eso os he dicho de utilizar el pinguino, ya que la araña ocupa 3x3 y no nos sirve para apreciar el por qué de esto. Pulsamos con el botón izquierdo del raton y no lo soltamos! arrastramos por el mapa para añadir multiples objetos separados por una distancia adecuada, así podremos poner una cantidad rápida de cosas sin que se amontonen.
  14. Ahora un truquito para rotar rapidamente los objetos en el eje Y cuando los ponemos, pulsamos encima de la instancia, el pingüino y sin levantar el botón del ratón pulsamos CONTROL y movemos el ratón. Esto cuando pones de 1 en 1 es muy util, pones un bicho y lo rotas etc...
  15. Si queremos corregir la posición de la instancia pues "lo arrastramos" con el click izquierdo del ratón.
  16. Hasta aquí todo sobre colocar objetos, aun queda activar las restricciones, ya que puedes poner objetos fuera de la zona "donde podría moverse", vamos, dentro de la pared puedes meterlo y "encima de otro" / en la misma posición.
  17. A la derecha, en la pestaña "Effects" de Engine Resources, doble click en GenericShader.
  18. Podemos rotar el objeto con el boton derecho del raton y seleccionar abajo del visor la apariencia que más nos guste.
  19. Aquí ya podemos trastear con lo que queramos, tenemos las variables uniforms abajo, los estados de renderizado debajo del visor... en fin todo lo que un editor de shader debe tener!
  20. Tenemos en Engine Resources la lista de recursos añadidos y los scripts del sistema. Ya me contareis!

#38
NSS Engine / Demo Game Editor 1.0.1.36
01 de Febrero de 2009, 02:09:22 AM
Hola a todos!

A ver si me ayudais en un propósito. Acabo de compilar la versión para win32 de mi editor de contenidos. El requisito es Shader Model 3 y OpenGL 2.0. No se si con Shader Model 2, con los shaders que uso es suficiente, puede que si ya que no está activado el HDR de primeras.

Trasteadlo un poco y me contais por favor! :)

http://www.alvaromartin.net/downloads/
#39
Industria y mercado / Open Pandora, prototipo :)
28 de Enero de 2009, 09:56:20 AM
Bueno, ya falta muy muy pero que muy poco para la versión final de Open Pandora.
Han pasado 2 años (creo: ) desde que comenzó su diseño y por fin tenemos una consola totalmente ensamblada.

http://es.youtube.com/watch?v=6T6zzV1vmOI

Es una carcasa FDM, le llaman así a las carcasas del prototipo hechas con un material plastico, chungo e imagino que barato :P las otras están de camino.

Y lo mejor de todo! TI (Texas Instrument) ha publicado los drivers graficos de la placa OMAP3 y presumiblemente usarán OpenGL 2.0 y no OpenGL 2.0 | ES. Así será más facil portar juegos sin tener que adaptarlos. A mi personalmente no me gusta la idea ya que OpenGL 2.0 ES está mucho más limpio y avanzado tal vez que la version 2.0. Aunque... tendría que informarme más porque me parece raro q hablen de una versión recortada y en vez de decir que es una versión limpia y mejor.

En fin, que ya viene! a disfrutarlo!
#40
Hola a todos... llevo toda la semana horas y horas buzeando por internet...

Estoy compilando el motor en Linux con GCC y compila todo perfectamente, pero... al "linkar" obtengo "unresolved external" por todas partes... estoy desesperado de preguntar por todas partes y buscar por google, es imposible que no se puedan tener en un proyecto librerias staticas cruzadas etc.



Building target: kk
Invoking: GCC C++ Linker
g++ -L"/home/prompt/workspace/NSSEngine/trunk/Code/_Libs/lua-5.1.1/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/AI/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Math/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Core/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Effects/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Game/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Network/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Objects/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Scene/Debug Linux" -L"/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux" -o"kk"  ./src/kk.o   -lGL -lGLU -lglut -lGLEW -lLUA5 -lMath -lUI -lScript -lAI -lScene -lObjects -lNetwork -lGame -lEffects -lCore -lAI
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Camera::updateViewMatrix()':
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/../Cameras/Camera.cpp:734: undefined reference to `Quaternion::toMatrix4() const'
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Camera::lookAt(Vector3 const&, Vector3 const&, Vector3 const&)':
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/../Cameras/Camera.cpp:127: undefined reference to `Quaternion::fromMatrix(Matrix4 const&)'
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Camera::setOrientation(Quaternion const&)':
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/../Cameras/Camera.cpp:488: undefined reference to `Quaternion::toMatrix4() const'
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Math::closeEnough(float, float)':
/home/prompt/workspace/NSSEngine/trunk/Code/Math/mathlib.h:97: undefined reference to `Math::EPSILON'
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Math::degreesToRadians(float)':
/home/prompt/workspace/NSSEngine/trunk/Code/Math/mathlib.h:102: undefined reference to `Math::PI'
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Math::radiansToDegrees(float)':
/home/prompt/workspace/NSSEngine/trunk/Code/Math/mathlib.h:150: undefined reference to `Math::PI'
/home/prompt/workspace/NSSEngine/trunk/Code/UI/Debug Linux/libUI.a(Camera.o): In function `Quaternion::fromHeadPitchRoll(float, float, float)':
/home/prompt/workspace/NSSEngine/trunk/Code/Math/mathlib.h:1673: undefined reference to `Matrix3::fromHeadPitchRoll(float, float, float)'
/home/prompt/workspace/NSSEngine/trunk/Code/Math/mathlib.h:1674: undefined reference to `Quaternion::fromMatrix(Matrix3 const&)'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/libScript.a(ScriptTable.o): In function `ScriptTable::addParams(lua_State*)':
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:947: undefined reference to `lua_gettop'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:953: undefined reference to `lua_type'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:963: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:971: undefined reference to `lua_toboolean'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:979: undefined reference to `lua_tonumber'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:987: undefined reference to `lua_tocfunction'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:1003: undefined reference to `lua_touserdata'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/libScript.a(ScriptTable.o): In function `ScriptTable::initFromStack(lua_State*)':
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:1036: undefined reference to `lua_gettop'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:1037: undefined reference to `lua_type'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/libScript.a(ScriptTable.o): In function `ScriptTable::addSubTable(lua_State*)':
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:789: undefined reference to `lua_gettop'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:790: undefined reference to `lua_pushnil'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:792: undefined reference to `lua_type'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:806: undefined reference to `lua_type'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:807: undefined reference to `lua_type'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:812: undefined reference to `lua_tonumber'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:815: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:821: undefined reference to `lua_tonumber'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:825: undefined reference to `lua_toboolean'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:829: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:833: undefined reference to `lua_tocfunction'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:839: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:845: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:848: undefined reference to `lua_settop'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:797: undefined reference to `lua_next'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/libScript.a(ScriptTable.o): In function `ScriptTable::addVars(lua_State*)':
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:857: undefined reference to `lua_gettop'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:863: undefined reference to `lua_type'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:864: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:881: undefined reference to `lua_tolstring'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:889: undefined reference to `lua_toboolean'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:897: undefined reference to `lua_tonumber'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:905: undefined reference to `lua_tocfunction'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:921: undefined reference to `lua_touserdata'
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/libScript.a(ScriptTable.o): In function `ScriptTable::toStringSubTable(unsigned int, unsigned int, bool, bool)':
/home/prompt/workspace/NSSEngine/trunk/Code/Script/Debug Linux/../ScriptTable.cpp:180: undefined reference to `lua_pushlightuserdata'
collect2: ld returned 1 exit status
make: *** [kk] Error 1



Por ejemplo en la libreria de LUA "nm" me dice esto:

prompt@linux-y9y2:~/workspace/NSSEngine/trunk/Bin> nm ../Code/_Libs/lua-5.1.1/Debug\ Linux/libLUA5.a | grep gettop
00000385 T lua_gettop
         U lua_gettop
         U lua_gettop
         U lua_gettop
         U lua_gettop
         U lua_gettop
         U lua_gettop
         U lua_gettop
         U lua_gettop
00000385 T lua_gettop


y Script que es donde da el problema con que no está definido lua_gettop:

prompt@linux-y9y2:~/workspace/NSSEngine/trunk/Bin> nm ../Code/Script/Debug\ Linux/libScript.a | grep gettop
         U lua_gettop
         U lua_gettop


Por la santisima madre de todos los codigos y programadores de este foro, ayudadme necesito dormir!!!!!!!!!!!!!!!!!!!!  :-[





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.