Buscando archivos y otras cosas

Mientras continuaba mis experimentaciones con shaders, decidí crear una función que cargara todos los vertex shaders y fragment shaders en el directorio actual. Después de haber trabajado con Python durante varios meses, volver al manejo de strings en C++ es verdaderamente horrible (Paul Graham, tenías razón!! 😀 ). Para evitar a otros rehacer el mismo trabajo, aca va el código fuente de la función de listado de archivos en Win32:

void listCurDir(std::vector<std::string>& fileList)
{
    WIN32_FIND_DATA fd;
    HANDLE h = FindFirstFile("*.*", &fd);
    fileList.clear();
    fileList.push_back(std::string(fd.cFileName));
    while (FindNextFile(h, &fd))
        fileList.push_back(std::string(fd.cFileName));
}

Todavía me falta bastante para sentirme cómodo con los shaders, pero ya voy entendiendo mejor como utilizarlos:

// Vertex shader
varying vec3 pos;
void main()
{
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
    pos = vec3(gl_Vertex);
}

// Fragment shader
varying vec3 pos;
void main()
{
    gl_FragColor = vec4(cos(5.0 * pos.z),
                        cos(8.0 * atan(pos.y, pos.x)),
                        cos(10.0 * pos.z),
                        0.0);
}
Ejemplo de esfera coloreada con fragment shaders.

Ejemplo de esfera coloreada con fragment shaders.

Seguiré experimentando…

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s