terça-feira, 14 de dezembro de 2010

Ponto de Situação da semana

Já está aplicada a textura no modelo mas não está a 100%...a aplicação das matrizes de transformação não produzem os resultados esperados. Poderá estar relacionado com os valores da matriz mas que agora é uma questão de afinação. Está a funcionar uma aplicação (beta) que abre 2 janelas de visualização onde numa mostra o modelo triangulado c/ textura e na outra a imagem aplicada na textura e seleccionando uma célula/ponto no modelo, é apresentado na 2ª janela qual o pixel correspondente à selecção. Isto permite saber se a aplicação da textura está a ser bem realizada.
Ainda estou de volta de umas afinações mas espero ter isto pronto em breve...

terça-feira, 7 de dezembro de 2010

Prontinho para textura

A VCGlib usa uma aplicação para a criação de uma makefile e aproveitei essa makefile e integrei o vtk e o passo seguinte foi a integração com a estrutura própria usada no vcglib. Foi realizado com sucesso, neste momento tenho uma aplicação que lê um ficheiro com a nuvem de pontos em .asc, abre-o para uma estrutura vtk, é convertido para a estrutura do vcglib, é triangulado e o resultado é convertido de novo para uma estrutura do vtk (vtkPolyData). O resultado triangulado é apresentado numa janela.
Tendo a malhagem e armazenada numa estrutura vtk, o passo seguinte será a aplicação de textura, a qual espero ter terminada o mais cedo possível.
Entretanto foi realizado um estudo dos tempos de processamento e número de pontos da nuvem associados. São apresentados vários modelos triangulados, com diferentes números de pontos e os tempos de processamento da aplicação do algoritmo com respectivas conclusões.

terça-feira, 30 de novembro de 2010

Triangulações

Com o .h com o algoritmo do BPA fornecido pela biblioteca vcglib, já analisei os parâmetros e dá para mexer em todos os parâmetros, desde tamanho máximo/minimo da 
aresta (aqui o mínimo é expresso em percentagem do raio que agrega pontos que estejam  abaixo dessa distancia). O angulo máximo formado por 2 fazes, que por 
defeito é cos(PI/2) = 0.0. Pelo que percebi terá a ver 
para evitar que a "esfera" volte para trás, ou seja, caso 
não encontre um ponto ao rodar sobre o "edge", irá voltar para trás e limitar o ângulo irá eliminar esse problema.

Já entendi como é feito o auto-guess do raio...é uma abordagem simples e funciona bastante bem: 
sqrt((diagonal(boundbox)2)/n_vertices). Pelo que se entende é que faz uma média da distância entre cada vértice.
Já estou a fazer o documento com testes e resultados mas ainda está em versão beta...

Já estive a ver melhor a estrutura do MESH que eles usam mas analisar o código deles nem sempre é uma coisa fácil de mastigar mas já encontrei uns exemplos que ainda estou a analisar.

terça-feira, 23 de novembro de 2010

Ponto de Situação da semana

Nesta última semana encontrei disponível o algoritmo do Ball Pivoting disponível e opensource. É o algoritmo usado pelo Meshlab e vem integrado na biblioteca vcglib e é um BPA ligeiramente modificado mas o princípio base está lá e estive a tentar integrar o algoritmo com o meu trabalho. O problema é que o código é escrito usando estruturas definidas pelo próprio Meshlab e obriga à conversão das estruturas para uma estrutura do vtk.
Tentei fazer alguns exemplos (se bem que não haja quase nada...) e um deles ainda não consegui por a funcionar e o outro consegui. O segundo exemplo tem como input um ficheiro .ply com a nuvem de pontos e devolve um ficheiro .ply com a malhagem. Este executável funciona mas o ideal é converter sem a necessidade de exportar/importar ficheiros pelo meio. Um outro problema que surgiu pelo meio foi mais uma vez a questão da makefile...existe o "qmake" que gera a makefile para compilar a vcglib e a makefile não sai perfeita e é preciso fazer umas afinações em questões de inclusão de ficheiros .cpp "escondidos" nas pastas do vcglib. Consegui criar uma makefile que não necessita do "qmake" e assim permite integrar numa makefile ja existente.
Vou ter que investigar um pouco sobre esta vcglib...

terça-feira, 16 de novembro de 2010

Ponto de Situação da semana

Nesta semana consegui finalmente resolver um problema que surgiu no uso do VTK na interacção com o IPC e o player dos logs. O player bloqueava assim que o módulo vtk era inicializado mas a definição de um timer resolveu o problema, permitindo avançar nesta parte do trabalho.
Agora é possível:
-Visualizar os pontos dos diferentes lasers por cores.
-Navegar no modelo (zoom, rodar,etc)
-Inserir / remover um laser do modelo
-Exportar para um ficheiro .obj o modelo visualizado
-Activar / desactivar a acumulação de pontos de mensagens recebidas (ainda com um pequeno bug)