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 - nsL

#1
General / Duda sobre lenguajes programación Web
20 de Febrero de 2012, 11:26:19 PM
Hola chic@s

Tengo dudas ya de siempre sobre la infinidad de lenguajes existentes para programar web, y las ventajas/desventajas que tiene cada uno.

El caso es que tengo un proyecto en mente, y necesito hacer una web, y su version adaptada para movil (tb web, no app). Sé algo de HTML, PHP, CSS y Javascript, todo ello de manera chapucera. Pero ya que me pongo me gustaría aprender algun lenguaje nuevo.

1. ¿Que diferencia hay entre jsf y jsp? ¿Son de parte cliente, o servidor tipo PHP? ¿Icefaces?
2. ¿Merece la pena ASP? Teniendo en cuenta que tambien habra version movil, ¿requiere que sea un movil con windows mobile/phone?
3. ¿JQuery es una libreria de javascript?
4. ¿DHTML, XHTML, ... que ***?
5. ¿PHP sigue de moda? o ya esta desfasado. ¿Los moviles aceptan webs con php no?
6. Y ya puestos, a nivel laboral ¿que se suele pedir más? asi ya aprovecho a aprender algo util.

Siempre me queda la opcion de HTML+PHP+CSS, pero igual hay algun otro lenguaje (Java) que dé muchas facilidades (lo cual ayude a tener un menor tiempo de desarrollo), o bien que tenga un entorno de desarrollo muy completo (tipo Eclipse), etc...

¿Cuales son vuestras experiencias personales?

Un saludin ;)
#2
Programación gráfica / Estado de los objetos
08 de Octubre de 2011, 02:48:19 PM
Buenas!

No me acaba de quedar claro, y veo que por ahi la gente cada uno de una manera, y a ver si me podeis sacar de la duda. Voy a ser breve que mis ultimos post han sido minibiblias.

Suponed que tengo un objeto:

class Cuadrado
{
float x;
float y;
.....
}

Y tengo un vertex shader (os pongo la única linea que me interesa de él):
gl_Position = uMVPMatrix * vPosition;

donde uMVPMatrix es la matriz de transformaciones y vPosition las coordenadas del vértice.

¿En algún momento modificais el array de vértices? ¿o siempre trabajais con los vertices iniciales y aplicais las transformaciones a dichos vertices? Quiero decir, ¿en algun momento actualizais el array de vértices?

Es que estoy viendo que tengo 2 opciones.

-Usar siempre los vertices iniciales (los que defino en el momento de construccion), y cada vez que hago un setPosition, pues aplico la matriz de transformacion (glTranslate) a esos vértices.
- Cada vez que haga un setPosition, actualizo mi buffer/array de vertices (que es el que luego le paso a vPosition del shader).

Tengo la impresion de que es mejor la primera (mejor rendimiento), pero entonces siempre tengo que aplicar todas las transformaciones teniendo en cuenta los vértices iniciales.

Vamos, que mi duda es. ¿Actualizais los vertices en local, o mediante transformación de los iniciales en el shader? De ser en el segundo caso, ¿guardais de alguna manera el estado actual del objeto?

Gracias  0:-)

Un saludin!
#3
Programación gráfica / Prueba Rendimiento VA vs VBO
25 de Septiembre de 2011, 12:36:04 AM
Buenas,

Estoy haciendo pruebas de rendimiento en la especie de engine que estoy haciendo para Android, y he comparado mi implementacion de render por Vertex Arrays con la implementación de Vertex Buffer Object. La verdad es que me ha sorprendido que vaya peor con VBO que con VA en todos los casos. Habia leido que para gráficos estáticos iba mejor VBO, pero que en gráficos dinámicos suele ir mejor VA. No parece ser este el caso.

Pongo varias muestras de FPS y tiempo de render (mseg de render de 1 frame), por no hacer la media.

Prueba 100 cuadrados


Prueba 400 cuadrados


Me parece curioso lo variable que es el tiempo de pintado (sobre todo rotando), ya que algunos frames doblan en tiempo a otros (supongo que parte del motivo es que debería usar una función más precisa para calcular el tiempo)

En cualquier caso, tengo que mejorar la manera calcular los FPS. Ahora mismo incremento un contador durante 1 segundo y lo muestro. Sé que no es la mas usada (probablemente de la menos), pero el cálculo con estimaciones (si 1 frame dura X mseg, en 1 seg hay Y frames) me parece un tanto irreal.

Mañana pongo parte del código que uso,a ver si se os ocurre algún fallo que este bajandome el rendimiento, porque considero que son resultados algo bajos....

Un saludin!
#4
Buenas,

Como ya he puesto en varios post, estoy empezando con OpenGL ES 2.0 y son nuevos para mi todos los conceptos de shaders, y demas, y tengo alguna duda respecto. A ver si me podeis ayudar.

Duda 1
Mas o menos tengo clara la funcion tanto del vertex shader como del fragment shader. Pongo los pasos en Android para el uso de los mismos, y luego os planeteo mi duda:

int vertex_shader = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER);  
GLES20.glShaderSource(vertex_shader , vrtxShaderCode);
GLES20.glCompileShader(vertex_shader );

int fragment_shader = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);  
GLES20.glShaderSource(fragment_shader , frgmntShaderCode);
GLES20.glCompileShader(fragment_shader );

mProgram = GLES20.glCreateProgram();            
GLES20.glAttachShader(mProgram, vertexShader);  
GLES20.glAttachShader(mProgram, fragmentShader);
GLES20.glLinkProgram(mProgram);

maPositionHandle = GLES20.glGetAttribLocation(mProgram, "vPosition");

Pues bien, esos pasos, los hace en una función de carga previa al pintado de la escena. Luego ya en la tipica funcion loop de pintado antes de dibujar el polígono, usa esto:

GLES20.glUseProgram(mProgram);

Entiendo todo el código, por ahi no van mis dudas. El caso es, si yo tengo varios Shaders, ¿lo normal es cargarlos todos y luego en funcion a que "objeto" voy a pintar hacer un glUseProgram de ese Shader? ¿Hay limite de shaders a tener cargados? No se si van cargados en la GPU o que, y eso pueda conllevar en problemas. Vamos, que mi duda es cual es el uso real que se le da a los shaders, porque básicamente los ejemplos que veo son para 1 shader (de cada) y pintar 1 poligono, y no se como se manejaría todo en una situacion con varios Shaders, con diferentes elementos usando cada uno de ellos.

Me estoy haciendo unas clases (Shader y ShaderProgram) para manejar todo este tipo de elementos. En la primera cargo, compilo y demás el shader, y en la segunda asocio 2 Shader (vertex & fragment) , creo el programa y obtengo los handle a los atributos/uniforms.

Luego por otro lado tengo una clase Drawable, de la que heredan los elementos dibujables. Dicha clase tiene asociado un ShaderProgram. De esta manera cada vez que lanzo un draw() de la clase Drawable (o sus heredadas), su ShaderProgram hace un glUseProgram.

Con esto estoy haciendo un glUseProgram por cada entidad que dibujo, lo cual no se si es muy eficiente. En fin, si alguien puede explicarme cual es el uso tipico que se le suele dar a esto....

Por otro lado, no se que uso se le da a los shaders (supongo que por desconocimiento aun, que estoy aprendiendo), mas alla de especificar posicion y color/transparencia. Ni que efectos puedo conseguir, o que sean aprovechables en 2D, que es lo que yo estoy usando.

Y ahora, la segunda duda.

Duda 2

Es probable que esta duda sea de tarjeta roja, porque incluso yo me he extrañado de como no tengo claro aun esto, pero aun así la pregunto.

Suponed un vertex shader asi:

   private final String vertexShaderCode =
        "uniform mat4 uMVPMatrix;   \n" +
        "attribute vec4 vPosition;  \n" +
        "void main(){               \n" +
        " gl_Position = uMVPMatrix * vPosition; \n" +
       "}  \n";

En los ejemplos que yo veo, obtienen un handle de uMVPMatrix por una parte y otro handle a vPosition por otro lado. Por otra parte aplican las transformaciones necesarias (rotaciones, escalados, etc) multiplicados por la matrix de cámara y por la de la proyeccion (como siempre). Al final lo que se tiene es en uMVPMatrix la matriz de las transformaciones ya calculada, y en vPosition el vector por cada vertice del poligono. Con ello conseguimos en gl_Position la posicion transformada de dicho vértice en coordenadas de la proyeccion.

Hasta ahi bien. Pero ayer me surgio la duda a la hora de mover un cuadrado por la pantalla. Y es que si el movimiento de dicho cuadrado lo baso en transformaciones del tipo glTranslate, al final lo que tengo es que en uMVPMatrix tengo transformaciones acumuladas, que van haciendo que vPosition vaya cambiando de posicion (en funcion a los parametros que le pase al glTranslate por asi decirlo), pero en vPosition siempre tendre las coordenadas iniciales, porque esas no se van actualizando. Es decir, si al cabo de 1 minuto de ver mi maravilloso cuadrado dar vueltas por la pantalla, decido ver sus coordenadas para comprobar una colision por ejemplo, tendre las coordenadas iniciales, porq en ningun momento he cambiado directamente las coordenadas de los vertices, sino que les he aplicado una transformacion en el shader para que se vea reflejada simplemente.

Entonces he pensado, bueno, pues cuando quiera mover el cuadrado, actualizo la matriz de sus vertices con el desplazamiento, y la paso al shader, siendo en este caso vPosition el vector del vertice con las coordenadas ya transformadas, y en uMVPMatrix la matriz de camara y de proyeccion (ya multiplicadas) para transofrmar dichas coordenadas a las propias de la proyeccion.

Con este método siempre tengo las coordenadas actualizadas de donde esta el objeto, pero por contra estoy cargando a la CPU de operaciones (por entiendo que las operaciones del shader se hacen en GPU). Ademas de que cada vez que pinto el objeto, tengo que crear un buffer para asociarlo con vPosition. En el primer caso, como las coordenadas locales nunca cambiaban, creaba el buffer 1 vez, y siempre usaba el mismo, en la segunda opcion, como cambio las coordenadas, tengo que crear un buffer cada vez para pasarlo al shader, lo cual debe ser costoso. El buffer lo creo asi:

       ByteBuffer vbb = ByteBuffer.allocateDirect( squareCoords.length * 4);
       vbb.order(ByteOrder.nativeOrder());
       squareVB = vbb.asFloatBuffer();
       squareVB .put(squareCoords);  
       squareVB .position(0);

Siento si es algo confuso, me explico muy mal a veces. Y siento el mega post (no queria abrir 2 post para temas tan relacionados), que a mas de 1 le dara pereza leer :P

Muchas gracias de antemano cracks :)

un saludin
#5
Programación gráfica / Duda sistema coordenadas en móvil.
09 de Septiembre de 2011, 12:01:58 PM
Buenas!

Estoy peleandome (si, es la palabra correcta) para aprender un poco con OpenGL ES 2.0 para Android. Si ya habia tocado poco en ordenador, encima lo habia hecho con versiones anteriores a la 2.0, asi que estoy mascando el "nuevo" pipeline y sus shaders.

La duda que tengo es mas de conceptos generales, pero bueno, alla va.

Tengo una proyeccion ortho, establecida con esta funcion:

    public void onSurfaceChanged(GL10 unused, int width, int height)
    {       
       GLES20.glViewport(0, 0, width, height);
       
       float ratio = (float) width / height;

       Matrix.orthoM(mProjMatrix, 0, -(width/2), (width/2), -(height/2), (height/2), -1.0f, 1.0f);
       //Matrix.orthoM(mProjMatrix, 0, -ratio, ratio, -1, 1, -1.0f, 1.0f);
       
       muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
       Matrix.setLookAtM(mVMatrix, 0, 0, 0, 1, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
    }

(notese que tengo comentada una linea, ya que he probado diferentes dimensiones)

Para la pantalla de mi móvil, tiene de estas dimensiones:

En modo vertical: Ancho: 480 - Alto: 724
El modo "landscape" (de lado): Ancho: 800 - Alto:404

Luego va cambiando la proyeccion, en funcion del modo (como es normal), al igual que pasaba en una app de ordenador, si redimensionabas la pantalla. No me preocupa mucho, ya que trabajaré en uno u otro modo, y limitare la app a eso. La duda que me corroe es relativa a las diferentes resoluciones en los diferentes móviles.

Mi duda es:
A la hora de distribuir los "objetos" por la pantalla, ¿que coordenadas le pongo? A ver si me explico, si quiero colocar algo en la esquina superior izquierda, pues en mi móvil se las coordenadas son unas, diferentes a las de otro móvil (el punto X:0 Y:0 esta en el medio de la pantalla). Podría mover el eje para que el (0,0) este en la esquina superior izquierda, y colocar las cosas basandome en ese punto, pero aun asi tendria problemas porque algunos móviles tendran resolucion mayor, y colocar una cosa en el (100,100) no se vera en igual posicion en un movil con resolucion 400x200 (ejemplo), que en uno mas moderno con 560x280 (otro ejemplo inventado).

Lo único que se me ocurre es trabajar en torno a una resolucion fija, y si la resolucion es mayor (otro móvil) calcular la posicion mediante una regla de 3, asi como el tamaño de los elementos....

Seguro que todo esto es una perogrullada, pero son conceptos que nunca me hicieron falta, porq siempre "trabaje" con ventanas de tamaño fijo, fijado por mi, y que no variaba.

------

Por otro lado, según veo por ahi, y volviendo al código que puse arriba (la línea comentada):
Matrix.orthoM(mProjMatrix, 0, -ratio, ratio, -1, 1, -1.0f, 1.0f);

Usando una proyeccion asi, soluciono el problema vertical, ya que trabajo en un rango fijo (-1,1), pero en horizontal vuelvo a tener el mismo problema, ya que ratio depende de la resolucion de la pantalla.....

No se si quedo claro, porq a veces me explico como el culo.

Muchas gracias :)

Un saludin
#6
General / Estructura de un Engine 2D
31 de Agosto de 2011, 02:54:25 PM
Buenas!
No se si soy el único o no, pero me pasa que siempre que hago algún desarrollo (personal) de algún jueguillo, hago tal lío de funciones/clases, con particularidades especificas de ese juego dentro de ellas, que al final me resulta bastante complicado reutilizar grandes partes del código sin tener que andar haciendo criba d que es juego y que es "engine". No se si me explico.

Tengo pensado meterme en el mundillo de juegos para Android y aprovechando vengo de novato, empezar a hacer las cosas ordenadas desde un principio. Es decir me gustaría montarme un conjunto de clases, a modo de engine, que me sirvan como base para cualquier desarrollo futuro, y así tener diferenciada la parte del juego del motor, por así decirlo, sin tener que empezar prácticamente desde 0 en cada desarrollo.

Entiendo que hay mil maneras, y/o que cada uno lo hace a la suya.

¿Conocéis de alguna documentación,ya sea en formato Web, o como libro, que expliquen bien como estructurar un motor desde 0? Da igual el lenguaje, la plataforma, o la librería gráfica(dx, ogl), solo necesito una guía de como estructurarlo.

He buscado y he visto alguna entrada en algún blog, además de algún libro por amazon. Pero o bien es bastante escaso en explicaciones, o no me quiero arriesgar a comprar un libro que luego no sea lo que estoy buscando. Igual vosotros sabéis de algo :)

Gracias!

Un saludin
#7
Off-topic / Ingresos anuales. Ayuda al alquiler (RBE)
06 de Julio de 2011, 11:28:33 AM
Buenas,

Actualmente estoy percibiendo la Renta Básica de Emancipacion, mes a mes, sin mayores problemas. El caso es que estoy en el límite de del rango salarial (22000 brutos anuales) y por lo que he leido por la red, cualquier ingreso extra que te haga pasar esa cantidad (aunque sean 20€) puede convertirse en un calvario, ya que te pueden pedir que devuelvas toda la ayuda del año (2500€ mas intereses).

Resulta que tengo la posibilidad de cobrar un dinero extra por una app móvil desarrollada en mi tiempo libre, para la misma empresa donde trabajo, y que se me pagaría en medias dietas. Segun tengo entendido las medias dietas no retienen, y no van en nómina, sino como una transferencia a parte.

Mi duda es ¿Las medias diestas constituyen un ingreso en el balance anual? entiendo que en el certificado de haberes que aporta la empresa (documento que te piden para la ayuda) que estima lo que vas a cobrar ese año, no figuran dichas cantidades. Y ademas es un dinero que no cotizas (libre de retenciones).

Busco pero no encuentro nada relativo a eso...

Gracias!
#8
Buenas,

prometi empezar a dar la brasa y aqui estoy de vuelta. La verdad que me pasan cosas raras ultimamente.

El caso es que estoy haciendo para mi trabajo una app para iphone y android. Aqui os pedi ayuda para su valoracion http://www.stratos-ad.com/forums/index.php?topic=14338.0 , de la cual ya os comentaré (por si os interesa), porque ya esta "cerrada".

El tema es que para dicho desarrollo tengo que incrustar un escaner de códigos QR en la propia app (no vale que llame a uno instalado en el movil, no quieren depender de app de terceros). Asi que buscando encontre la libreria zxing que parece estar disponible para muchas plataformas y me puse manos a la obra. Tras mucha busqueda por google, posts en el google group oficial de dicha liberia y sudar sangre de T-Rex lo consegui, y asi lo hice saber en el "group".

Pues a día de hoy me llega este curioso correo a mi cuenta personal de gmail (la cual esta asociada a dicho group de la libreria):

CitarHi Omar

My name is Carlos, and i'm from Click In Technology Services, a I.T. Consultant company located in Sydney Australia. I found a post of yours on zxing group and seems that you are having a great experience playing with this library.

We are trying to figure out how to get the BarCode Scanner App working on our device, which is a 7" Pad with Android and maybe you can help us out.

Do you have skype, msn or any messenger software where we can chat and discuss about it ?

We also looking to pay for this support if necessary.

We appreciate your time.

Best Regards

Me parece cuanto menos curioso. Por otro lado la web de su empresa en su firma no existe http://www.clickin.com.au/ , lo que me da "mala espina".

Supongo que igual que a mi se me dio ayuda desinteresadamente en los foros y demas lugares, la daré yo igualmente sin esperar nada a cambio, pero si que me parecio curioso recibir un mail de ese tipo y mas desde tan lejos :D

Un saludin!
#9
General / Compatibilidad Desarrollo Videojuegos <-> Novi@
02 de Junio de 2011, 01:19:15 PM
Buenas!

Sé que puede sonar raro el asunto, pero es algo que llevo unos días dando vueltas en la cabeza, y queria ver que opinais al respecto y bueno, como os las arreglais.

Mini-intro:

Llevo un monton entrando al foro (2004 mas o menos). Tuve mis mas y mis menos con el desarrollo, nunca llegando a hacer nada "final", siempre comienzos, pruebas, intentos de librerias, editores de mapas, etc..., pero siempre muy interesado en todo lo que lo rodea este mundillo. Luego por motivos de carrera, trabajo y demas deje de lado un poco todo esto, hasta ahora. Por fin me he quitado el peso de la carrera (mas bien el proyecto atragantado unos 3 años cogiendo polvo) y me encuentro en un punto que tengo ganas y "tiempo" para volver a esto.

Pues bien, desde hace 2 semanas vivo con mi novia. Obviamente salgo de trabajar y voy a casa (esta en paro ociosa 100%) y no voy a ponerme con el ordenador a pasar de ella. Algun día consigo jugar a algun juego, mientras ella juega con la xbox360, pero no mucho mas.

Que conste que estoy encantado eh, no es ni mucho menos una queja. La duda que me corroe es ¿COMO? jajaja como haceis los que teneis novia o novio, segun el caso, para compatibilizar el tiempo libre que querreis compartir con vuestr@ novi@, con el tiempo que os gustaría invertir en un hobby de este tipo, que a mi modo de verlo es un hobby que lleva mucho tiempo.

Quizas yo sea el raro, porque cuando se me mete algo en la cabeza no pienso en otra cosa, y ponerme 45 min a programar, con la concentracion en tiempo q lleva pensar que quiero hacer y demas, me parece una forma de no avanzar. No es como a lo mejor jugar a un videojuego, que te pones y ya esta, al menos a mi en este caso, necesito un "tiempo minimo" para que me merezca la pena ponerme, sino me parece una perdida de tiempo. No se si me explico :D

En ningun momento os tomeis esto como algo serio ;) simplemente quiero saber como os las arreglais y como se lo toman vuest@s respectivos.

Ahora que ya estoy de vuelta,intentare estar mas activo por aqui :) que ya he visto que habeis montado kdds, estudios entre vosotros y muchas cosas mas que me he perdido :(

Un saludin!
#10
Buenas,

Hace millones de años que no posteo por aqui, pero vuelvo a vosotros con una dudilla existencial.

Se me ha propuesto en mi trabajo crear una App para moviles, tanto para Iphone como para Android de momento (el resto de plataformas ya se vera más adelante).

Para que os hagais una idea del desarrollo que hay que hacer: http://www.mugitek.com/2010/05/donosti-bus-para-android-disponible-en-el-market/

Sería una aplicacion similar a esa, con informacion de tiempos de llegada de autobuses a paradas, un lector de códigos QR que iran en las marquesinas identificando cada parada, y poco más.

El caso es que se me ha propuesto realizarlo en mi "tiempo libre", lo cual se me pagará fuera de nómina o dentro de ella en forma de gratificación, eso aun no esta del todo hablado. El problema que nunca he trabajo como autonomo, ni he hecho trabajos por encargo y tampoco tengo ni idea de como valorarlo moneratiamente (de mano tampoco tengo manera de valorarlo en tiempo, pero bueno, tendre q inventarme algo).

La idea es que a lo largo de esta semana le comente una valoracion de cuanto tardaré en hacerlo y una valoracion en dinero. No se que se suele pedir en este tipo de desarrollos. Cuanto es el minimo para que no me time, cuanto es el máximo para que no se piense que voy de sobrado.

Cualquier orientacion es bienvenida!! porque ando un poco perdido.

Muchas gracias de antemano :)
Un saludo
#11
Programación gráfica / Mas gluLookAt...
28 de Octubre de 2007, 08:59:57 PM
Aloha!

Estoy trasteando con opengl y estoy teniendo problemas con las camaras y matrices en general por lo q veo.

Lo que estoy haciendo es poner una teapot con GLUT y apuntar la camara a ella, y con la tecla A mover la camara alrededor de la tetera sobre el eje Y. Lo que es el movimiento de la camara lo tengo x = radio*cos(angulo) y z = radio*sin(angulo). El problema es que no gira alrededor (si lo hace, pero no como circunferencia, hace cosas raras)

Aqui esta el código, mas simple que un hola mundo:


#include <GL/glut.h>
#include <stdlib.h>
#include "math.h"

GLfloat camX=0.0f,camY=0.0f,camZ=0.0f;
static GLfloat angulo = 0.0f;

void resize(int width, int height)
{
   const float ar = (float) width / (float) height;
   
   glViewport(0, 0, width, height);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   gluPerspective(45.0f,ar,1.0f,150.0f);
   
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity() ;
   
   gluLookAt( camX, camY, camZ, 0.0f, 0.0f, -5.0f,0.0, 1.0, 0.0);
}

void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
   glColor3d(1,0,0);
   
   glLoadIdentity();
   gluLookAt( camX, camY, camZ, 0.0f, 0.0f, -5.0f, 0.0, 1.0, 0.0);

   glPushMatrix();
       glTranslated(0.0f,0.0f,-5.0f);    
       glutSolidTeapot(1);
   glPopMatrix();

   glColor3d(0,0,1);
   
   glPushMatrix();
       glBegin(GL_POINTS);
          glVertex3f(0.0f,0.0f,-5.0f);
       glEnd();
   glPopMatrix();
   
   glutSwapBuffers();
}


void key(unsigned char key, int x, int y)
{
   switch (key)
   {
       case 27 :
       case 'q':
           exit(0);
           break;
       case 'a':
            {
                angulo += 0.1f;
                camX = 10 * cos(angulo);
                camZ = 10 * sin(angulo);
                break;
            }
   }

   glutPostRedisplay();
}

void idle(void)
{
   glutPostRedisplay();
}

int main(int argc, char *argv[])
{
   glutInit(&argc, argv);
   glutInitWindowSize(640,480);
   glutInitWindowPosition(10,10);
   glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);

   glutCreateWindow("Pruebas");

   glutReshapeFunc(resize);
   glutDisplayFunc(display);
   glutKeyboardFunc(key);
   glutIdleFunc(idle);

   glClearColor(1,1,1,1);

   glutMainLoop();

   return EXIT_SUCCESS;
}


El problema viene con la translacion que le hago a la tetera (-5.0 en Z). Si esa translacion la hago a 0,0,0 y pongo que la camara apunte a 0,0,0 tambien, pues sale perfecto. El problema es q no me estoy enterando bien de como van lo de las matrices y me salen cosas raras, sino  no se explica.

Si alguien ve el fallo q me lo diga plis :)

Saludos y gracias de antemano!  8)
#12
Hola :)

Estoy teniendo problemas en el trabajo debido a una serie de circunstancias. La situacion en la siguiente:

Estoy haciendo una libreria grafica dinamica (.so) en linux y tengo problemas a la hora de exportar ciertas funciones. Estoy organizando todo por espacios de nombres (namespaces) y me es imposible acceder a ellas desde un programa q use dicha libreria.

A modo de resumen supongamos que tengo una estructura asi:

principal.cpp
---------

#include "principal.hpp"

namespace nm
{
   int func1()
   {
       return 8;
    }
}


y tengo su cabecera correspondiente:

principal.hpp
--------------

namespace nm
{
     int func1();
}


Con esto genero la libreria dinamica libGraph.so (por ejemplo)

En otro proyecto intento hacer un ejecutable usando dicha libreria:

main.cpp
----------

#include "principal.hpp"

using namespace nm;

int main()
{
  int Variable = func1();
}


Y por supuesto enlazo dicha libreria y añado principal.hpp al proyecto.

Pues con todo esto me dice q no esta definida nm::func1().

El caso es q con funciones q no estan dentro de ningun espacio de nombres se exportan perfectamente. ¿Alguna sugerencia de que estoy haciendo mal?
No soy mucho de namespaces y lo mismo se me esta pasando algo por alto.

Saludos y gracias de mano :):)
#13
Programación gráfica / OGL 2D
22 de Febrero de 2007, 12:47:51 AM
Hola!!!

Hace lustros q no posteo por aqui (uni, curro y demas) y veo q hay muchas caras nuevas, lo cual es siempre bueno :)

He vuelto al redil, y con ganas de programar, y como siempre he vuelto al punto donde me he quedado hace 1-2 años. Utilizar OGL para 2D.

En el trabajo , gracias a dios, tengo la suerte de estar currando con openGL para hacer un panel informativo de llegadas de autobuses tal y cual (tranquilos q no os voy a contar mi vida xD). El caso es q era un proyecto ya empezado por otro chico y la base q ya la tenia él consistia en que cada imagen q pintaba en la pantalla, la pintaba como textura de un lado de un cubo, todo ello usando proyeccion perspectiva.

Yo siempre q habia intentado hacer algo en 2D con openGL lo habia hecho con proyeccion ortho. Pero vamos, para el caso da igual.

A lo q quiero llegar es q voy a ponerme a hacer cosillas a parte por mi cuenta en casa. Algun jueguecillo o tal,  y queria saber los fundamentos de usar 2D con openGL. Es decir:

¿Para manejar imagenes simplemente es crear QUADS con textura, y a pintar (a grosso modo) ? Lo cual seria simil a una SDL_Surface...
¿Cuanto es aconsejable cargar texturas mipmap, teniendo en cuenta que aunq dan mejor acabado, ocupan mas memoria?
¿Esta bien la idea de usar proyeccion ortho, o por el contrario la perspectiva da mas juego?
¿El tema de transparencias, basta con crear un QUAD con una textura q posea canal alpha y ya sera transparente tal poligono, o se ha de aplicar otro metodo?

Mi idea es crearme unas clases para crear "surfaces" (siempre fui de SDL xD) a modo de """"API"""" (notense las comillas) para crearme por encima algun jueguecillo.

No se si quedo mas o menos claro. De todas formas creo q me vereis mas a menudo por aqui con alguna dudilla sobre el tema ;)

Me alegro de volver a veros y gracias

Saludos!!
#14
General Programadores / Clases Y Metodos - C#
26 de Febrero de 2006, 08:36:38 PM
 Hola!

Estoy tokando por primera vez c# y hace tiempo que no veo c++, asi q puede que lo que pregunte sea bastante obvio. Aun asi ahi va :P

El tema es el siguiente:

Tengo una clase (formulario windows):

public class main : System.Windows.Forms.Form
{
// Propiedades
private map Mapa; // Clase propia
private Nuevo menuNuevo; // Clase tipo System.Windows.Forms.Form

// Metodos
public void nuevo()
{
 menuNuevo = new Nuevo();
 menuNuevo.show();
}
}


En resumidas cuentas lo que tengo es un formulario, que al darle en tal sitio crea una instancia de la clase Nuevo y la muestra (show). Dentro de ese nuevo formulario quiero realizar llamadas a los metodos de la clase map.

Yo lo que usaba hasta ahora para este tipo de casos era pasar la referencia del objeto por parametro, hacer una copia en la clase y ya manejarla libremente. Es decir (otro ejemplo):

mapa.configurar(label1,label2,label3);


class mapa
{
// Propiedades
private Label lb1,lb2,lb3;

// Metodos
private void configurar (Label lab1,Label lab2, Label lab3)
{
 lb1 = lab1;
 lb2 = lab2;
 lb3 = lab3;
}
}

Guardo en la instancia de mapa una referencia a cada control o clase que uso, y luego la manejo a mi antojo.

Esto funciona pero no veo como aplicarlo para el primer caso, aprte que cuando son muchas referencias queda una chapuza pasarle mil parametros. Ademas creo recordar que en c++ habia un modificador de acceso que era friend, que permitia hacer llamadas a metodos de otras clases si tener una instancia o algo asi. He estado mirando para c# y creo que ya no lo hay, en cambio hay otro modificador que se llama Internal, q afecta a clases del mismo assembly.

¿Vosotros como organizais vuestras clases en vuestros proyectos?

Saludos!
#15
General / Ultimate Ghosts 'n Goblins
26 de Febrero de 2006, 01:32:59 PM
 Ayer he visto este remake que va a salir de mano de Capcom y realmente tiene wena pinta.
Ved este video a ver que os parece  :D

Se q algunos odiais la psp :P pero como lei por aqui que algunos habiais ganado una con el concurso de Artfutura, igual os interesa saber q se acerca  :)

Saludos!
#16
Off-topic / Smonka
25 de Febrero de 2006, 02:32:36 AM
 No se quien decia algo de que todos tenemos 15 minutos de gloria. Pues bueno, yo ya he gastado 1 minuto de los mios. Aprovechando que un amigo mio iba a concursar a la tele, al programa Smonka del canal Paramount Comedy, fui como publico y aprovecho para salir a tirarle una tarta :P

Si alguien tiene interes en verlo ahi os lo dejo en Video Google

El programa no es gran cosa, pero si eres algo fan de La Hora Chanante te gustara ;)

Saludos!
#17
General Programadores / Duda Windows Forms Con Vs.net 03 Y C#
16 de Febrero de 2006, 08:58:00 PM
 Hola!

Ya he acabado los examenes, asi que ya me he puesto a enredar con la programacion.
Hoy me dio por echarle un ojo a C# y windows forms, que si boton para aqui , que si textbox para alla. Y me he puesto a "intentar hacer" un editor de mapas de tiles por echar el rato.

Pues bien, me he quedado atascado en este punto:

Ya tengo todo lo facil hecho (botones y cosillas wapas) y empece a programar las funciones y demas. Como era la primera vez q trabajaba con windows forms y este tipo de programacion, pues ando algo liado.

El problema es el siguiente: Me he creado una clase que va a contener un array dinamico a PictureBox's que contendran los tiles del mapa (no se si lo normal es hacerlo con picturebix, o si hay alguna forma mas curiosa). Entonces lo que hago es pasarle el Form como parametro al metodo de esa clase, y en el se supone que lo dibuja. Como no me entero de lo que pongo ni yo, os pongo codigo.


 public void assignForm(System.Windows.Forms.Form mainForm)
 {
  mainForm.SuspendLayout();

  tiles = new System.Windows.Forms.PictureBox();

  this.tiles.BackColor = System.Drawing.Color.Black;
  this.tiles = new System.Windows.Forms.PictureBox();
  this.tiles.Location = new System.Drawing.Point(25,25);
  this.tiles.Name = "pictureBox";
  this.tiles.Size = new System.Drawing.Size(128, 64);
  this.tiles.TabIndex = 0;
  this.tiles.TabStop = false;

 
  mainForm.Controls.Add(this.tiles);

  mainForm.ResumeLayout(false);
 }


En este ejemplo lo hago solo para un picturebox y sin array como os dije, pero era pa probar a ver si iba 1, y luego pasar a varios. He estado mirando la ayuda de msdn para lo de SuspendLayout y ResumeLayout, y creo que lo estoy usando bien. msdn

Pasarle el form como parametro funciona, porq probe a hacer un mainForm.text y cambiarlo y lo cambia. Asi q no se me ocurre que puede ser.

Si no se entendio bien la duda decirlo , y lo esplico mejor :P

Saludos y gracias!
#18
Off-topic / Santiago Segura En Contra De La Pirateria
06 de Noviembre de 2005, 01:44:54 PM
 Jajajaja, hace media hora que vi el video y tovia toi riendome.

http://www.youtube.com/watch.php?v=PWlpfrKe5Kc

Saludos!  B)
#19
Off-topic / Codigo Da Vinci
06 de Noviembre de 2005, 01:33:22 PM
 Pues parece ser que no contentos con sakar una peli sobre dicho libro se disponen a sakar tb un juego. Personalmente he leido el libro y me parece bastante bueno, aunq no se que tipo de juego van a hacer. Una aventura grafica seria lo que mas se le adapta, pero alguien que ya haya leido el libro no creo q tenga muchos problemas en resolver los puzzles. Optaran por modificar el argumento digo yo...

La noticia

Saludos!  B)  
#20
General / Sobre Trabajo...
28 de Septiembre de 2005, 10:50:34 PM
 Hola gente!

Hace bastante tiempo que no posteo por aqui gracias a mi querida carrera que me secuestra. Como ya me queda poco para acabar la ing tec de informatica de sistemas me gustaria ir buscando algun curro de media jornada para ir cogiendo experiencia como becario o lo se sea. Pero claro, viendo como esta el panorama lo veo bastante jodido. Es ir a cualquier web de busqueda de ofertas de empleo y hundirseme la moral. Para un simple trabajo de becario te piden ahi conocimientos de flipar, amen de varios años de experiencia y otros requisitos "minimos". ¿Realmente esta tan jodida la cosa?

He visto que hay tb ofertas de empresas que te dan becas y te forman ellos en ciertas materias para luego incorporarte a su plantilla, pero son minimas y suelen ser para jornada completa (y tb piden requisitos que dan risa  (grrr) ).

¿Podeis comentar en que empezasteis vosotros? es que no se por donde coger las cosas, y estoy viendo que tener o no la carrera no vale de "criba" en muchos casos para obtener el empleo o no.

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

Cosillas a parte.

¿Que son las consultorias? ¿Y de que va el curro de analista?

He visto que piden mucho cobol por ahi, ¿merece la pena aprenderselo?

En fin, a ver que experiencias tuvisteis al respecto

Saludos y Gracias ;)





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.