Pergunta

Quando eu iluminar meu modelo humano em OpenGL usando normais da face é muito evidente onde cada rosto é o modelo. A iluminação torna-se consideravelmente mais suave usando normais de vértice, mas ainda perceptível. Existe alguma técnica disponível para suavizar modelos orgânicos, sem adição de vértices adicionais (ex. Subdivisões)?

Foi útil?

Solução

Se você está vendo rostos individuais com por vértice normais que você pode ter esquecido de permitir suavizar enfrentando:

glShadeModel(GL_SMOOTH);

Se isso não ajudar garantir que todos os vértices com a mesma posição também tem a mesma normal. Isto deve ser feito pelo liquidificador automaticamente no entanto. Também é possível que o seu modelo tem apenas muito poucos polígonos. Se for esse o caso, você tem que usar mais polígonos ou fazer o que basszero disse. Criar um mapa normal, e utilização que, em conjunto com um shader GLSL.

Outras dicas

Se você tem acesso a um modelo de alta resolução / malha ou talvez um decente 3d modelagem ferramenta que pode criar um modelo HighRes via subdivisões ou outros métodos de fantasia ...

GLSL per-pixel-iluminação + mapas normais

UPDATE:

http://www.blender.org/ desenvolvimento / liberação-logs / blender-246 / render-assar /

Sim, existem muitas técnicas diferentes. Uma é a primeira a calcular um normal para cada face (que você provavelmente está usando para os vértices da face) e usar esses normais para calcular novas normais para cada vértice.

Aqui está um onde você calcular a média de cinco triângulos adjacentes.

Felicidades!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top