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

#1
General Grafistas / Busco artista 3D para remake
19 de Enero de 2010, 02:43:14 PM
Hola a todos,

Llevo un tiempo desarrollando un remake en 3D, pero recientemente me he quedado sin artista 3D, si alguien esta interesado en participar, mandarme un mensaje y os cuento mas informacion al respecto.
Ni que decir tiene que es un proyecto sin animo de lucro, ya que al ser un remake de un juego con copyright, no se podria vender, la finalidad del proyecto es aprender y tener algo mas que aportar al curriculum.

Saludos.
#2
General Programadores / Mac para iPhone
04 de Diciembre de 2009, 10:53:13 AM
Hola a todos,

Estoy investigando un poco el tema de programar para iPhone y tengo algunas dudas;
1. No tengo Mac y tendria que comprarme uno, lo quiero especificamente para programar cositas para iPhone, ¿que modelo de Mac me podria servir?, eso si, imprescindible que sea portatil.
2. Como de momento es solo un poco como toma de contacto, no me gustaria gastarme mucha pasta porque a lo mejor no me llena ¿Hay alguna forma de hacer pruebas sin tener que tener un Mac?, entiendo que el Iphone es imprescindible para ver los resultados.
3. ¿Hay alguna pagina web o libro o algo de referencia para ver como empezar?
4.¿Hay algun motor gratuito majo para unas primeras pruebas?

Un saludo y muchas gracias a todos.
#3
Programación gráfica / Problemas con CelShading y Animaciones
17 de Noviembre de 2009, 12:22:19 AM
Hola a todos,

Hace poco tiempo puse un post con problemas con el CelShading en mallas estaticas y gracias a vosotros consegui solucionarlo, por eso acudo otra vez a vosotros, oh gran consejo de sabios.

Esta vez el problema ha sido al intentar aplicar ese CelShading a mallas animadas, y creo que el principal problema es que la Matriz del mundo que le estoy pasando al Shader esta mal. El codigo sin Shader es este:

            if (mesh.SkinInformation != null)
            {
                Matrix[] offsetMatrices = mesh.OffsetMatrices;
                MyFrame[] frameMatrices = mesh.FrameMatrices;

                for (int iattrib = 0; iattrib < mesh.NumberAttributes; iattrib++)
                {
                    BoneCombination boneCombo = mesh.BoneTable[iattrib];
                    for (int i = 0; i < mesh.NumberInfluences; i++)
                    {
                        int matrixIndex = boneCombo.BoneId[i];
                        if (matrixIndex != -1)
                        {
                            Matrix tempMatrix = offsetMatrices[matrixIndex] * frameMatrices[matrixIndex].Combined;
                            m_pD3DDevice.Transform.SetWorldMatrixByIndex(i, tempMatrix);
                        }
                    }
                                           
                    m_pD3DDevice.RenderState.VertexBlend = (VertexBlend)boneCombo.BoneId.Length - 1;
                    if (mesh.GetMaterials().Length > 0)
                    {
                        m_pD3DDevice.Material = mesh.GetMaterials()[boneCombo.AttributeId].Material3D;
                        m_pD3DDevice.SetTexture(0, mesh.Textures[boneCombo.AttributeId].GetD3DTexture());
                    }
                    else
                    {
                        m_pD3DDevice.Material = new Material(); 
                        m_pD3DDevice.SetTexture(0, null);
                    }
                    mesh.MeshData.Mesh.DrawSubset(iattrib);
                }
            }

y se ve perfectamente la animacion.

Cuando la malla es estatica, cambiaba esto:
m_pD3DDevice.SetTransform(TransformType.World, matWorld);
por esto:
effect.SetValue("xWorldMatrix", "MATRIX", matWorld);
que es una funcion que le pasa al Shader la matriz de mundo para que genere la escena.

Pero ahora con la malla animada, creo que deberia cambiar esto:
m_pD3DDevice.Transform.SetWorldMatrixByIndex(i, tempMatrix);
lo que no se, es porque otra cosa tengo que cambiarlo, se supone que establece varias matrices, lo que no se es como mezclarlas para que quede una Matriz y pasarsela a:
effect.SetValue("xWorldMatrix", "MATRIX", matWorld);

A alguno se os ocurre como podria hacerlo.
Gracias.



#4
CDV / Descuentos tren para el año que viene
02 de Noviembre de 2009, 11:51:19 PM
Hola a todos,

Hoy hemos estado un amigo y yo en Atocha (Madrid) comprando los billetes para ir a Valencia este fin de semana al CDV2009 y hemos sido conscientes de la pastaca que es el billete del Alaris. Mirando un poco por la pagina de RENFE he encontrado algo que quiza el año que viene vendra bastante bien para la gente que quiere ir en tren.

http://www.renfe.com/ferias_congresos/index.html

Ya es tarde porque pone que hay que solicitarlo 30 dias antes del evento, pero quiza para el año que viene, si la organizacion del CDV2009 quiere, puede solicitar este servicio, no se si tiene algun coste, pero seguro que un descuento de un 30% anima a mucha mas gente a ir.

Un saludo y nos vemos en Valencia  ;)
#5
General / Glosario de Terminos sobre Videojuegos
29 de Septiembre de 2009, 11:56:50 AM
Hola a todos,

Hablando con unos compañeros del foro, se me ocurrio que estaria bien tener un glosario con terminos relacionados con los videojuegos para que todo aquel que lleva poco tiempo en este mundo pueda tener un lugar de referencia. Por lo que me han comentado hay una WIKI, pero por lo que he visto es un poco escasa.

La idea es entre todos vayamos agregando terminos, como que es y para que se utiliza un Shader, o que es el Clipping, o que es y como funciona el Shadow Mapping, etc... cosas obvias para muchos y totalmente desconocidas para otros que llevamos poco tiempo. Ademas cada uno puede aportar su experiencia y ejemplos si lo considera necesario.

¿Que os parece?
Saludos.
#6
General Programadores / Utilidad del Scripting
28 de Septiembre de 2009, 02:20:40 PM
Hola a todos,

Llevo tiempo leyendo por los Foros que la gente usa lenguajes de Scripts en sus videojuegos y no entiendo muy bien para que. Yo he usado Javascript en paginas web, incluso scripts de SQL pero no se me ocurre la utilidad en los videojuegos, supongo que no tendran nada que ver.
¿Podria alguien darme una pequeña explicacion o ejemplo de para que se usan?

Gracias y un saludo.
#7
Programación gráfica / Problemas outline en Cel Shading
23 de Septiembre de 2009, 11:10:17 PM
Hola a todos, llevo algun tiempo leyendo el foro pero esta es la primera vez que participo activamente jeje..

El caso es que estoy intentando implementar en mi pequeño motor con DirectX 9, el efecto Cartoon mediante HLSL pero no consigo el efecto deseado. Despues de usar un Effect que encontre por ahi creo que consegui el efecto del sombreado Cartoon pero no consigo el Outline.

Pongo el codigo del fichero .fx:
Código (c) [Seleccionar]

//CONSTANTES
int n = 32;

//VARIABLES

// Light intensity
float4 xIntensityAmbient;
float4 xIntensityDiffuse;
float4 xIntensitySpecular;

// Material reflectivity
float4 xReflecAmbient;
float4 xReflecDiffuse;
float4 xReflecSpecular;

// stroke thickness
float xStrokeThinckness;

// light direction (view space)
float3 xLightDir; //  = {0.577, -0.577, 0.577};

// texture
extern texture g_ShadeTex;
extern texture g_ModelTex;

sampler ToonSamp = sampler_state
{
    Texture   = (g_ShadeTex);
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
    AddressU  = CLAMP;       
    AddressV  = CLAMP;
    AddressW  = CLAMP;
};

sampler MainSamp = sampler_state
{
    Texture   = (g_ModelTex);
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};


// transformations
float4x4 xWorldMatrix      : WORLD;
float4x4 xViewMatrix       : VIEW;
float4x4 xProjMatrix : PROJECTION;

struct VS_OUTPUT
{
    float4 Pos  : POSITION;
    float4 Diff : COLOR0;
    float4 Spec : COLOR1;
    float2 Tex  : TEXCOORD0;
    float2  TexB : TEXCOORD1;
};

VS_OUTPUT VS(
    float3 Pos  : POSITION,
    float3 Norm : NORMAL,
    float2 Tex  : TEXCOORD0)
{
    VS_OUTPUT Out = (VS_OUTPUT)0;
    float3 L = -xLightDir;
    float4x4 WorldView = mul(xWorldMatrix, xViewMatrix);
    float3 P = mul(float4(Pos, 1), (float4x3)WorldView);  // position (view space)
    float3 N = normalize(mul(Norm, (float3x3)xWorldMatrix)); // normal (view space)
    float3 R = normalize(2 * dot(N, L) * N - L);          // reflection vector (view space)
    float3 V = -normalize(P);                             // view direction (view space)
    Out.Pos  = mul(float4(P, 1), xProjMatrix);             // position (projected)
    Out.Diff = xIntensityAmbient * xReflecAmbient + xIntensityDiffuse * xReflecDiffuse * max(0, dot(N, L)); // diffuse + ambient
    Out.Spec = xIntensitySpecular * xReflecSpecular * pow(max(0, dot(R, V)), n/4);   // specular
    Out.Tex  = Tex;
    Out.TexB = Out.Diff.r;                                       
    return Out;
}

VS_OUTPUT OUTLINEVS(
    float3 Pos  : POSITION,
    float3 Norm : NORMAL,
    float2 Tex  : TEXCOORD0)
{
    VS_OUTPUT Out = (VS_OUTPUT)0;
    float3 L = -xLightDir;
    float4x4 WorldView = mul(xWorldMatrix, xViewMatrix);
    float3 N = normalize(mul(Norm, (float3x3)WorldView)); // normal (view space)
    float3 P = mul(float4(Pos, 1), (float4x3)WorldView) + xStrokeThinckness * N;
    float3 R = normalize(2 * dot(N, L) * N - L);          // reflection vector (view space)
    float3 V = -normalize(P);                             // view direction (view space)
    Out.Pos  = mul(float4(P, 1), xProjMatrix);             // position (projected)
    Out.Diff = (0.01,0.01,0.01,1);                                 // diffuse + ambient
    Out.Spec = xIntensitySpecular * xReflecSpecular * pow(max(0, dot(R, V)), n/4);   // specular
    Out.Tex  = Tex;                                       
    return Out;
}

float4 PS(
    float4 Diff : COLOR0,
    float4 Spec : COLOR1,
    float2 Tex  : TEXCOORD0,
    float2 TexB : TEXCOORD1) : COLOR
{
    float2 TexC = (TexB.x,0);
    return tex2D(MainSamp, Tex)* tex2D(ToonSamp,TexB);
}

float4 OUTLINEPS() : COLOR
{
    float4 ReturnThis = (0.1f,0.1f,0.1f,0.1f);
    return ReturnThis;
}

technique CelShading
{
    pass P0
    {
        // shaders
        VertexShader = compile vs_1_1 VS();
        PixelShader  = compile ps_1_1 PS();
    }
   
    pass P1
    {
        VertexShader = compile vs_1_1 OUTLINEVS();
        PixelShader  = compile ps_1_1 OUTLINEPS();
       
        ZEnable = true;
        ZWriteEnable = true;
        CullMode = cw;
AlphaBlendEnable = false;     
    }
}


Sin aplicar el segundo pase obtengo el resultado de Cartoon sin Outline y haciendo la segunda pasada consigo Cartoon con Outline pero no con el efecto deseado. Es como si las caras de los objetos salieran hacia fuera pero en negro y detras se quedara el objeto. Si necesitais mas pistas os puedo mandar unas imagenes.

Muchas gracias de antemano a todos y espero vuestra ayuda.

P.D: Pongo las imagenes para que os hagais un idea mejor.
Esta es sin Outline:


Y esta tiene el Outline 'raro':








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.