Constantes alturas faixa horizontal de uma malha poligonal sofrer deformação vertical (OpenGL ES 1.1)

StackOverflow https://stackoverflow.com/questions/512414

Pergunta

Ao implementar o mapeamento de textura em uma malha poligonal padrão utilizando o algoritmo de costume, você pode executar em questões relacionadas com deformações ao longo do eixo y em que as deformações acompanhar bandas de linhas altura constante de quads, em vez dos vértices nesse sentido ser capaz de esticar de forma independente em relação a que ao longo do eixo-x.

Eu estou correndo em isto porque quando definir os vértices da malha, cada linha define tanto a parte inferior e um vértice superior, resultando na linha superior de vértices de uma linha compartilhando a linha inferior dos vértices para a linha acima dela .

Enquanto isso é ok se você está deformando somente a malha ao longo X ou Z., se você deformar a malha ao longo do eixo y sem levar isso em conta, você verá que as linhas de quads agir juntos como uma banda de altura constante em vez de fileiras de pontos independentes. Você vai ver a deformação da malha ao longo do eixo y, mas você também vai ver a textura lacrimejamento como essas bandas não mudam de largura, levando a falhas na malha.

Tem mais alguém executar para esse que teria sugestões sobre a melhor forma de aplicar um (x, y) filtro de mapa de deslocamento para uma malha poligonal construída desta forma? Ou será que a abordagem para definir a malha tem que mudar de alguma forma fundamental?

Um exemplo do algoritmo de geração de malha pode ser visto na ZEUS OpenGL | ES tutorial sobre Texture Mapping .

Graças.

Foi útil?

Solução

Ok, vamos ver se eu entendi a pergunta em primeiro lugar.

Se eu entendi corretamente, você está tentando tornar uma textura mapeada patch. Mas então, quando você está tentando esticar o patch no sentido vertical por isso fica mais alto, as diferentes faixas horizontais de sua lágrima mesh e você acabar com vários faixa horizontal de patch.

Está certo?

Se assim for, o problema está no algoritmo de geração de malha, o mapeamento de textura em si deve permanecer inalterado. Do que eu posso ver no link fornecido, os vértices entre cada faixas horizontais não são compartilhadas, eles são duplicados. Então, se você dimensionar o espaçamento entre os vértices, você também precisa dimensionar a altura da banda de modo que os vértices de fundo vai caber o próximo vértice linha superior.

Os fundamentos do trabalho algoritmo, você só precisa ajustar tanto espaçamento e altura da linha. Quando você entender um pouco mais como as listas de primitivas funcionar, você pode querer aprender sobre primitivas indexadas. Aqueles vai realmente permitir que você compartilhe vértices em vez de duplicar-los para cada primitiva.

Hope isso ajuda.

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