Como posso implementar um efeito de grama de atalho?

22

Estive olhando algumas capturas de tela de jogos como Rocket League e FIFA:

Rocket League

Rocket League

FIFA

e comecei a pensar que alguém conseguiria o efeito da grama cortada.

É um shader? É geometria real? Ou apenas quads texturizados? Se alguém pudesse me indicar uma direção, isso seria muito apreciado.

Daniel Holst
fonte
5
+1, pergunta muito interessante. Imagino que seja provavelmente um shader (a geometria provavelmente causaria atraso, os quadriláteros texturizados provavelmente pareceriam muito mais planos), mas não tenho certeza.
Superdoggy
2
Nos renderizadores de software, isso geralmente é feito com mapeamento de deslocamento e muitos vértices. Depois de olhar mais de perto, parece que eles usam isso aqui também, com um LOD muito inteligente. Eu acho que os shaders de deslocamento estão em uso provavelmente.
akaltar
Eu acho que eles estão usando o mapeamento de paralaxe. Tenho certeza disso nas capturas de tela da Rocket League.
Tara
@akaltar sim, acho que você está certo sobre isso. E no entanto que o LOD é 100% perfeita
Daniel Holst
Vou tentar recriar isso usando shaders e mosaico.
Daniel Holst

Respostas:

7

Você pode querer examinar a técnica de sombreamento de peles. É isso que eu usaria para esse tipo de grama, pois quanto menor a grama, melhor o desempenho (menos camadas).
Basicamente, ele funciona estratificando a mesma superfície várias vezes em pequenos incrementos: algumas camadas

insira a descrição da imagem aqui

Você também pode alterar o deslocamento horizontal para fazer a grama parecer dobrada.

Martin Ciz
fonte
Isso é bastante interessante, para que eu acho que eu poderia sugerir que ir fundo nisso começando com este artigo
Leggy7
2

Provavelmente, é um shader que usa o Parallax Oclusion Mapping , que usa o mapa normal para "falsificar" a profundidade e as sombras de uma textura. Veja AQUI para exemplos.

Edit: Como o @Leggy apontou, talvez seja mais provável que seja um mapeamento de deslocamento, pois o pé parece estar indo entre a grama. Enfim, é algum tipo de shader de mapeamento de altura :)

Bluk
fonte
Acho que não, porque nesse caso o pé não aparecia atrás das folhas. Sons mapeamento de deslocamento para mim a forma mais provável que eles fizeram isso
Leggy7
Eu acho que isso seria verdade se não fosse grama curta, onde você pode "abaixar o chão" e, se bem me lembro, o mapeamento de paralaxe é mais rápido de calcular. Mas você pode estar certo, eu vou editar minha resposta.
Bluk
2
Você pode usar o mapeamento de oclusão de paralaxe e gravar no buffer de profundidade para ocluir o pé, e essa é provavelmente a técnica utilizada. O shader Uber dá uma olhada na demonstração para download. assetstore.unity3d.com/en/#!/content/39959
Seph