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

#1
Buenas,

Estoy empezando mis pinitos con los shaders y ando enfrascado con la iluminacion. Ahora mismo todo parece que se corrrectamente excepto por el brillo especular, no se me ve nada de nada.

Os pongo el codigo del shader para ver si entre mas ojos vemos el problema porque ya no se tocar y con esto de que los shaders no se pueden debugear...

tanto las luces como la camara tienen la posicion en espacio de escena.


#version 330 core

#define MAX_LIGHTS 8

uniform mat4 MVP;
uniform mat4 M;
uniform vec3 eyePos;
uniform bool lightingEnabled;
uniform bool lightEnabled[MAX_LIGHTS];
uniform bool perPixelLighting;
uniform vec4 lightVec[MAX_LIGHTS];
uniform vec3 lightColor[MAX_LIGHTS];
uniform float lightAtt[MAX_LIGHTS];
uniform vec3 diffuse;
uniform vec3 ambient;
uniform int shininess;

in vec3 vpos;
in vec3 vnormal;
in vec2 vuv;
out vec2 fuv;
out vec4 fcolor;

void main()
{
//definimos el color por defecto (difuso de la malla y ambiente)
fcolor = vec4( vec3(diffuse * ambient),1);

if (lightingEnabled == true)
{
vec3 combinedSpecular = vec3(0,0,0);
vec3 combinedLights = ambient;

for (int i = 0; i < MAX_LIGHTS; i++)
{
if (lightEnabled[i] == true)
{
//obtenemos la normal del vertice en espacio de la escena
vec3 N = normalize(M * vec4(vnormal,1)).xyz;
vec3 L = lightVec[i].xyz;
float attenuation = 1;

//obtenemos el vector desde la fuente de luz al vertice
L = (vec4(L,1) - (M * vec4(vpos,1))).xyz;

//si es luz puntual calculamos la atenuacion
if (lightVec[i].w == 1)
{
float distance = length(L);
attenuation = 1.0 / (1.0 + lightAtt[i] * distance + 0.01 * distance * distance);
}

//calculamos el coseno del angulo que forman la luz sobre el vertice y la normal
float NDotL = max (0.0, dot (N, normalize(L)));

//acumulamos el valor de iluminacion
combinedLights+= NDotL * lightColor[i] * attenuation;

//si hay brillo y nos afecta la incidencia de la luz en ese vertice (angulo < 90)
if (shininess > 0 &&  NDotL > 0)
{
//calculamos el vector desde la posicion de la camara hasta el vertice
vec3 SceneEyePos = ( (M * vec4(vpos,1)) - vec4(eyePos,1)).xyz;

//hayamos el vector intermedio entre la luz y la camara
vec3 H = normalize(SceneEyePos - L);
float NDotH = dot(N, H);

combinedSpecular+= max (0.0, pow(NDotH, shininess) * attenuation);
combinedSpecular+= max (0.0, pow(NDotH, shininess) * attenuation);

}
}
}

fcolor = vec4( vec3(diffuse * combinedLights + combinedSpecular),1);

}
gl_Position = MVP * vec4(vpos, 1);
fuv = vuv;
}


¿en que he podido metido la pata?

saludos y gracias
#2
General / Duda sobre plataformidad de Cocos2dx
04 de Febrero de 2014, 03:26:04 PM
Hola,

Me gustaria hacer un pequeño juego para moviles, multiplataforma, al menos para iOs y Android. Me caso en Octubre y me haria ilusion que la invitacion fuera un pequeño jueguecito 2d. Como hoy en dia el que mas y el que menos tiene un smartphone seguro que podria sustituir esto por la clasica invitacion para la mayoria de mis invitados.

Por problemas logisticos ahora mismo no puedo montarme un entorno para programar en Cocos2dx para Android y mi pregunta es... si hago el juego para PC luego va a necesitar muchos cambios para correrlo en Android e iOS??

Tenia pensado desarrollarlo en Visual Studio, no se si eso ayuda a vuestra respuesta.

Por otro lado, como todavia no he empezado y seguramente no voy a necesitar profundizar demasiado en las entrañas del motor, me da igual el que sea. Por precio (gratis), comunidad (mucha) y caracteristicas (multiplataforma) habia elegido Cocos2dx pero estoy abierto a otro engine si pensais que puede ser mas util en mi caso.

Gracias!! ;)
#3
Hola,

Estoy iniciandome en esto de la programacion de videojuegos y me gustaria que me dierais un par de consejos o algun libro, articulo, etc... donde poder consultar

Seria acerca de programar una clase input manager que se encargue de gestionar la entrada de datos, teclado, raton, pad para modificar la logica del juego.

Mi "gestor de ventana" va a ser GLFW ya que lo estoy haciendo con OpenGL y C++

¿que os parece mas adecuado polling o callbacks?? hay mucha diferencia de rendimiento?

gracias!
#4
General Programadores / Pregunta tonta sobre C y la funcion sin
15 de Noviembre de 2013, 04:51:51 PM
Buenas,

Soy un novatillo con el C/C++ y programandome una clase matriz me encuentro lo siguente:

float test = sinf(M_PI);

y test vale -8.74...... lo cual no tiene ningun sentido. Si no he entendido mal, la funcion devuelve un float con el valor del seno del angulo pasado en radianes... ¿os ha pasado?¿tipo error de noob?

Gracias!
#5
Buenas,

Estoy haciendo un juego para iOs con mecánica típica del columns, jewel, etc... pero en el que tienes que derrotar a un rival no humano. La idea es que cada combinación de piezas sea un golpe y se vaya reduciendo la vida del oponente. Mi duda es que no se si hacer un tablero (en memoria, en pantalla solo se verán los movimientos del jugador) para la CPU y simular los movimientos o directamente ir "pegando" al usuario de forma aleatoria. No seria del todo aleatorio, puesto que me gustaría que los rivales fueran aumentando de dificultad, amen que dada uno tendrá habilidades especiales que afectan al tablero del jugador y demás.

Que pensáis que puede ser mas interesante a la hora de jugar?? me decanto por la segunda opción porque me dará mas control a la hora de plantear el nivel de la partida, pero este es el primer juego que hago (de ahí que sea un simplón) y no se el tipo de practicas que suelen llevarse a cabo en estos casos.

Gracias!!
#6
General Grafistas / aplicacion para animaciones 2d
18 de Octubre de 2012, 04:47:40 PM
Buenas,

Estoy desarrollando un pequeño jueguecito para iPhone. Como no va a requerir excesiva carga grafica me ocupare yo tambien de este tema.

Los graficos seran estilo cartoon, en plan desenfadado tipo angry birds por decir algo.

Para fondos, menus, interface y demas me puedo apañar con photoshop. Pero tengo la duda de que usar para las animaciones. Seran animacione muy simplonas, el personaje no se movera por el escenario, solo realizara gestos.

Habia pensado que pillandome una tableta grafica baratuna y flash igual podia ir tirando, pero desconozco si existe alguna aplicacion mas idonea para estos menesteres.

Alguna recomendacion??

gracias!
#7
General / Unity3d o UDK??
11 de Octubre de 2012, 11:21:32 AM
A cual le veis mas posibilidades?? segun creo que la curva de aprendizaje es mas pronunciada en UDK pero por contra se consiguen mejores resultados. Es cierto??

Estoy desarrollando un juego 2d para iOs con cocos2d y mi siguiente paso sera iniciarme en el 3d con algun motor de esta indole.

Saludos y gracias
#8
Buenas,

Estuve leyendo acerca el master de desarrollo de videojuegos de la Pompeu Fabra de Barcelona y la verdad es que quede bastante impresionado. Lo normal es que hagan masters mas bien genericos o en base a un motor comercial, pero este no. Aquí por lo visto tienes que desarrollar desde 0 con C++ y DirectX un juego completo. Para ello se juntan grupos de 3 programadores y 2 grafistas (que tienen clases separadas pero proyecto comun) y tienen que trabajar codo con codo para terminar el juego. Y los resultados, al menos del master de 2011 son impresionantes a mi parecer.

La cosa es que no he encontrado nada parecido en Madrid y me preguntaba si alguno de vosotros conocia algo, porque la mayoria de formacion al respecto que he visto me parece bastante floja en comparacion y con precios en algunos casos incluso superiores. No soy un jovenzuelo precisamente, pero supongo que nunca es tarde para dedicarte a lo que te gusta y creo que esta puede ser una buen forma de hacerlo

Un saludo

Pd. Perdonad, que he puesto el mismo mensaje en el foro de principiantes, pero he visto que hay muchos mas mensajes de este tipo en este foro.
#9
Buenas,

Estuve leyendo acerca el master de desarrollo de videojuegos de la Pompeu Fabra de Barcelona y la verdad es que quede bastante impresionado. Lo normal es que hagan masters mas bien genericos o en base a un motor comercial, pero este no. Aquí por lo visto tienes que desarrollar desde 0 con C++ y DirectX un juego completo. Para ello se juntan grupos de 3 programadores y 2 grafistas (que tienen clases separadas pero proyecto comun) y tienen que trabajar codo con codo para terminar el juego. Y los resultados, al menos del master de 2011 son impresionantes a mi parecer.

La cosa es que no he encontrado nada parecido en Madrid y me preguntaba si alguno de vosotros conocia algo, porque la mayoria de formacion al respecto que he visto me parece bastante floja en comparacion y con precios en algunos casos incluso superiores. No soy un jovenzuelo precisamente, pero supongo que nunca es tarde para dedicarte a lo que te gusta y creo que esta puede ser una buen forma de hacerlo ;)

Un saludo





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.