domingo, 27 de maio de 2012

Novas Implementações na paOpenGLDraw

Olá!

Devido a alguns problemas, não acabei implementando muitas coisas nesses ultimos dias. Também perdi muito tempo corrigindo um bug no desenho (as texturas não estavam mais funcionando) e na câmera (as transformações passaram a acontecer invertidas).

Pra compensar, diversas alterações se fizeram necessárias na classe draw para chegar à formula perfeita, e desconfio que esta formula ainda não chegou ao seu ápice.

A maior decisão de projeto envolveu remover o modo de posicionamento do desenho. Agora para movimentar os objetos no cenário só é possível utilizando-se a classe de transformações.

Também inseri desenho de textura com e sem glRepeat, de forma que o usuário deve informar apenas o tamanho da primitiva gráfica, quais serão as texturas utilizadas, qual será a ordem para cada face, e qual será o fator de repetição para cada face.

Para contextualizar, segue o cabeçalho do método drawParallelepiped:

//Desenha um paralelepípedo ou cubo dependendo das dimensões desejadas
//Recebe o tamanho em largura, altura e profundidade no vetor size
//Recebe um ponteiro para um array contendo todas as texturas usadas na rederização de cada face
//Recebe a sequencia de aplicação de textura (ex: se houver apenas uma textura em textures,
//  podemos setar o valor de textureSequence como: {0,0,0,0,0,0}, ou seja, a mesma textura para todas as faces)
//Em caso de uso de TEXTURE_REPEAT, passar o fator de repetição para cada face em X e Y (factor)
//(usar DEFAULT_FACTOR para GL_CLAMP)
//A ordem das faces desenhadas é: TOP, BOTTOM, FRONT, BACK, LEFT, RIGHT
void drawParallelepiped(const math::Vector3D size,const GLuint *textures,
                                        const GLuint textureSequence[6],const GLuint factor[6][2]);


Também implementei Culling para todo tipo de forma desenhada para otimizar a engine. Apesar de quase, a parte de desenho ainda não está finalizada, pois estou dando uma melhor estudada em texturas a fim de criar formas geométricas arredondadas com textura aplicada.

Nenhum comentário:

Postar um comentário