Estou fazendo um pequeno jogo no Unity, e alguns modelos estão exibindo sombreamentos muito feios. O sombreamento geralmente parece descolado ao longo das bordas entre triângulos. Eu sou muito novo em trabalhar em 3D; Aposto que este é um artefato de iluminação de vértice, mas não tenho certeza e não sei como corrigi-lo.
Aqui você pode ver o pior exemplo desse problema:
O mapeamento de luz de baixa qualidade é visível nessa foto, mas estou perguntando sobre as faixas visíveis e formas estranhas visíveis na superfície da malha laranja em primeiro plano. A malha foi construída e mapeada por UV no Blender e está usando um shader difuso de colisão padrão. Há uma luz atrás e acima da câmera; todas as outras luzes da cena estão bem distantes. O que estou fazendo de errado e como posso fazer melhor?
EDIT: Abaixo está o wireframe para este modelo no Blender.
Respostas:
Parece que seus normais de vértice podem estar confusos. As normais de cada vértice devem ser perpendiculares à face (paralelas às normais da face mostradas na imagem da estrutura de arame) e você precisará de vértices separados para os cantos, um para cada face que se encontre em um canto.
fonte
Parece um problema normal do vértice. Não tendo usado o Blender, não tenho certeza de quais opções você tem para ver / modificar as normais diretamente no nível do vértice.
A primeira coisa que eu faria para testar é separar a superfície frontal do resto do objeto e ver se ele acende corretamente. Se isso funcionar, você poderá exportá-lo como 2 partes, as faces frontal e traseira como um objeto e as partes laterais como outro.
fonte
Sei que esse é um tópico antigo, mas me deparei com ele; talvez alguém possa se beneficiar com esta resposta: O problema é: você está tentando interpolar normais (sombreamento suave) em um ângulo de 90 °, o que na maioria das vezes leva a problemas
Existem várias soluções para isso: 1. defina o sombreamento para nivelado (menu T) 2. Selecione todas as arestas com um ângulo> 50 (ou superior, brinque um pouco), pressione CTRL E -> marca nítida. A unidade pode ler essa informação. Isso dividirá a vert. normais nas arestas marcadas, em vez de tentar interpolá-las. 3. Use um modificador de divisão de aresta para realmente dividir a malha no ângulo que você especificar (eu recomendaria o superior neste caso) 4. Use um modificador de chanfro com profundidade de 2 ou superior. Eu recomendaria essa opção, ela torna a malha um pouco mais alta em poli, mas também mais realista. Marque as arestas que deseja chanfrar ou escolha o ângulo como o modo de limitação.
fonte
Se você estiver realmente usando o lightmapping, o Unity tem uma configuração de importação modular para gerar Lightmap UVs, o que provavelmente resolveria o seu problema.
fonte