Experimente as novas cenas de demonstração de terreno do Unity para HDRP e URP

Criar ambientes de alta fidelidade para o seu jogo pode ser uma tarefa enorme. É por isso que apresentamos diversas atualizações durante o lançamento do 2021.2 TECH stream, incluindo novos pincéis de estampagem de terreno, controles refinados de pintura de material, recursos de instância da GPU para detalhes de terreno e integração SpeedTree, entre outras melhorias na experiência de criação de terreno. Até atualizamos o Terrain Sample Asset Pack gratuito para ajudar a iniciar seu desenvolvimento com mais rapidez. Por trás de tudo isso, uma equipe de artistas técnicos trabalhou para criar e otimizar uma cena de ambiente realista usando o Pipeline de Renderização de Alta Definição (HDRP) da Unity para PC e consoles de alta qualidade, e migrando para o Pipeline de Renderização Universal (URP) da Unity para alcance entre plataformas. Agora, trazemos uma coleção de dicas, truques e práticas recomendadas para participar da nova escena de demonstração do URP de terreno do Unity e da escena de demonstração do HDRP.

Olá a todos. Meu nome é Xiaoxi Liu e eu ingressei na Unity em 2018 como artista técnico focado em melhorar os recursos e fluxos de trabalho de artista no Unity, do sistema de terreno ao Shader Graph. Em meu tempo livre, gosto de atividades ao ar livre com meu filho de quatro anos muito ativo.

Olá, o meu nome é Barrington Campbell. Eu me juntei à Unity em 2019 como estagiário e, depois, migrei para um cargo de tempo integral como artista técnico em 2020. Enquanto trabalhava na Unity, quis melhorar o sistema de terreno, especializando-me no desenvolvimento de ferramentas e fluxos de trabalho dos usuários. Além do trabalho, gosto de criar meu carro de ataque ao tempo e corrê-lo nos fins de semana.
Embora o pacote de ferramentas de terreno tenha sido verificado inicialmente na versão 2021.2 Tech, agora ele está disponível para instalação em seu projeto por meio do Package Manager e do conjunto de recursos de construção de mundos. O pacote vem equipado com pincéis de pintura de terreno artísticos adicionais e ferramentas de utilitários para acelerar seus processos de construção de mundos.

Volta e volta de CCD
Na fase de pré-produção do projeto de demonstração de terreno, nossa equipe técnica de arte restringiu alguns elementos importantes para destacar, priorizando o mapa de altura do terreno detalhado e a densidade de cobertura folhagem.
Usamos uma ferramenta de geração de terreno procedural chamada Gaea para gerar mapa de altura e splatmap de alta resolução, seguida pela ferramenta para importar esses mapas no Editor. Para o mapa de altura do terreno, usamos a ferramenta Import Heightmap para aplicá-la a um terreno com mosaicos 4x4 em Unity em 4.000 unidades em escala. Usando a ferramenta Import Splatmap, aplicamos o splatmap ao terreno mosaico. Esse processo foi determinado durante a criação do nosso projeto, que forneceu fluxos de trabalho de ida e volta do Gaea para o terreno do Unity.
Após a importação inicial para Unity, tivemos uma superfície de terreno muito sólida para começar, mas com certas áreas que queríamos pintar manualmente.
Pintura com carimbo de altura
O pincel de terreno de carimbo é uma ótima ferramenta para adaptar rapidamente as informações de altura do terreno para obter resultados realistas. Lançamos alguns mapas de altura prontos para usar no Terrain Sample Asset Pack, mas você também pode gerar seus próprios mapas de altura a partir de CCDs.
Pintura com materiais de camada de terreno
Como você já deve saber, os materiais de terreno do Unity são construídos por assets de capa de terreno. O pincel Paint Texture permite que você selecione e altere material na visualização da Cena, enquanto os Filtros de máscara de pincel e a interface de usuário recentemente aprimorada do pacote de ferramentas de terreno permitem que você gere resultados impressionantes com menos esforço.
Por exemplo, você pode restringir a área de pintura adicionando um filtro de inclinação. Primeiro, aplique a camada de material grassado na superfície lateral do terreno e use um filtro Concavity para restringir a camada de solo às curvaturas. Você pode isolar um filtro desativando os outros ou até mesmo combinar filtros quando necessário.
Há pincéis de escultura extras no pacote, como os efeitos de erosão e ruído, que também podem ser integrados ao seu fluxo de construção de terreno para obter resultados ideais.
Desde o lançamento do 2021.2, o Unity Terrain aproveita o poder da sua GPU para renderizar grandes quantidades de folhagem com o suporte de detalhes instanciados. Isso é útil para áreas de folhagem que exigem densidade de cobertura, como grama e arbustos.

Na maioria das plataformas PC, você pode renderizar milhões de detalhes instantâneos em muito mais de 60 FPS. Por exemplo, na cena Demo, há mais de 50 milhões de triângulos renderizados em alguns ângulos de visualização. Para habilitar a instância, acesse a malha de edição e marque a caixa Usar instância da GPU.

Shading avançado com detalhes instanciados
Os detalhes instantâneos permitem o uso de materiais personalizados, um grande benefício ao trabalhar com HDRP ou URP. Para obter a melhor experiência possível, recomendamos criar materiais de grama usando Shader Graph. Vamos dar uma olhada no TerrainGrass.shadergraph.
Com o suporte de interpoladores personalizados, uma adição recente ao Shader Graph, agora podemos fazer manipulações de vértices no estágio de vértices com desempenho geral mais forte. Neste projeto, usamos o palco de vértices para animações de vento, bem como a aparência de grama desaparecendo por meio de cor e oclusão de ambiente, dependendo da distância da câmera. Considerando a alta contagem de instâncias para randomização e a capacidade de pegar e posicionar objetos individuais de relva, você pode criar efeitos legais baseados em localização em seu shader, como ondulações de vento e combinações de cores do terreno por trás.
Uma coisa que vale a pena notar, no entanto, é que o componente LOD Group não é compatível com detalhes de terreno, embora você ainda possa usar Prefabs para detalhes e ajustar a distância de cull no shader Shader Graph ou pela configuração Distância de detalhes no terreno.
Forçado pelo SpeedTree

Naturalmente, as árvores são essenciais para a criação de ambientes realistas. As cenas Demo contêm uma variedade de árvores personalizadas do SpeedTree, um modelador que permite que você crie vegetação de alto desempenho com geradores procedurais para praticamente qualquer projeto, independentemente da escala. Com o suporte da integração do Shader Graph, você pode aproveitar os shaders prontos para usar que contêm todos os recursos do SpeedTree no Unity: vento de pensamento, variação de tonalidade, renderização Billboard e muito mais. Como as instâncias de materiais editáveis, os shaders do Shader Graph são personalizáveis, para que você possa salvar novos shaders em seu projeto e começar a editar livremente. Procure por Extract Materials em Import Settings para começar sua personalização.

As árvores e os detalhes geralmente são pintados usando as escovas Paint Trees e Paint Details, respectivamente, semelhante aos fluxos de trabalho de pintura existentes que você provavelmente já conhece. Você pode criar um pincel personalizado graças às APIs de pincel disponíveis nas ferramentas de terreno. Depois, consulte o Módulo de terreno para seu próprio projeto.
Com suporte de detalhes instalada e integração SpeedTree, você tem o poder de criar folhagem de terreno com personalização avançada do Shader Graph. Falamos disso na Siggraph no ano passado, abordando alguns detalhes adicionais que possam interessar você.

Com o HDRP no Unity 2021.2, você pode criar céus convincentes e dinâmicos usando o novo sistema de nuvens volumétricas. Especificamente, o sistema Physical Sky no HDRP fornece parâmetros padrão para gerar iluminação física correta do céu.
Olhando para o ambiente diurno que estamos tentando alcançar na cena, a intensidade do sol é definida em um valor esperado fora do efeito atenuante da atmosfera – 130.000 lux – enquanto a temperatura de cor é definida em um valor aproximado como um corpo preto em 5.800 K. Com pós-processamento, a temperatura da luz pode ser compensada, assim como seria em uma Câmera Física.
Você não quer ter sombras curtas de fundição de grama quando colocadas em um estilo de tapete, pois isso seria caro na thread de renderização — para não falar, irreal e menos visualmente atraente. É por isso que usamos algumas técnicas de iluminação e sombras adequadas em objetos de detalhes de terreno, como Sombras de contato, para gerar visuais muito melhores com menos custo.
Objetos de detalhes de terreno, como grama e vegetação baixa, compartilham a sonda de ambiente da cena para melhorar o desempenho de renderização. Como esses objetos recebem iluminação inocente do céu, o resultado geralmente pode ser muito brilhante. Para corrigir essa situação, escolhemos usar um volume separado de “céu de baking”. Isso nos permitiu reduzir a exposição do céu sendo usado para gerar a sonda de ambiente, diminuindo a intensidade de iluminação da grama sem modificar a aparência visual do céu na cena.
Nosso objetivo foi demonstrar terreno nos dois pipelines de renderização de scripts, o que se revelou uma ótima oportunidade de aprendizado para toda a equipe.
Como mostramos, os assets do TerrainData são compartilháveis entre os projetos do HDRP e do URP. Começamos construindo o terreno no projeto do HDRP e levamos os assets do TerrainData para o projeto do URP após a fase de massagem de material e folhagem. Ao transformar os ladrilhos de terreno em um Prefab, aceleramos o processo de integração ao URP.
Embora a escala de terreno e as resoluções compartilhem as mesmas configurações para ambos os projetos, nós escolhemos o modo de combinação de materiais baseada na altura no HDRP e o modo de combinação alfa padrão no URP para obter fidelidade visual ideal. Observe que o HDRP permite mesclar até oito camadas de terreno.
Nós preparamos iluminação e pós-processamento em ambos os projetos para maximizar os recursos de renderização mais recentes disponíveis. No projeto do HDRP, configuramos as nuvens volumétricas e o céu procedural como mencionado anteriormente. Depois, fizemos baking do céu procedural em texturas para usar como um céu de HDRI no projeto do URP.
Cada caso de Fog é tratado de maneira diferente. Utilizamos a neblina volumétrica para neblina baixa em torno do lago no HDRP, mas fizemos efeitos de partículas personalizados do Visual Effect Graph no URP.
Aqui está uma visão geral dos recursos que usamos para a comparação:

O desempenho é crucial quando se trata de experiências interativas em 3D em tempo real, e há diversas abordagens que usamos neste projeto para melhorá-lo. O asset do Pipeline de Renderização disponível em HDRP e URP permite que você crie configurações personalizadas para segmentar várias plataformas. Tomando como exemplo a cena de terreno do URP, nós criamos assets de alta e baixa qualidade, nos quais mapas de sombras de alta resolução e recursos HDR são selecionados apenas para a versão de alta qualidade. Dessa forma, você pode configurar configurações para cada plataforma de destino facilmente por meio de configurações de qualidade, na janela Configurações de projeto. Na verdade, você pode trocar e pré-visualizar várias configurações em sua cena de trabalho direto no Editor. Basta trocar o asset do Pipeline de Renderização pelas configurações gráficas.

Além das configurações de nível do projeto para aumento de desempenho, fizemos algumas otimizações de conteúdo no terreno. Por exemplo, na cena de terreno do HDRP, reduzimos a resolução dos ladrilhos externos de terreno à distância. No entanto, essa alteração de resolução só deve ser realizada após o processo de pintura de terreno ser concluído. Caso contrário, pintar entre ladrilhos vizinhos pode resultar em inconsistências devido à diferença de resolução.
Detalhes densos são os infractores de desempenho mais comuns em plataformas de ponta. É essencial manter a contagem de vértices de malha baixa. Na cena do HDRP, definimos a densidade de detalhes para 0,75 com uma distância de cull mais próxima de 145 metros nos blocos de terreno central. Você pode tentar aumentar ou diminuir os parâmetros de densidade e distância de cull para ver o que funciona bem em conjunto. Alternativamente, você pode ajustar as distâncias LOD nas árvores para que elas renderizem LOD e Billboard mais cedo, para um ganho razoável.
Se você estiver usando o URP e desenvolvendo para plataformas que não oferecem suporte a instâncias da GPU ou têm largura de banda de hardware muito limitada, você pode optar pelo modo Vertex Lit para renderizar detalhes de terreno. Mas, ao contrário dos detalhes instalada, esse modo não oferece suporte a sombras, renderização bidirecional ou corte alfa.
Quer saber mais? Para obter dicas e truques adicionais de otimização de desempenho, confira esta publicação do blog e nossos vídeos Unite Now.
Para acessar as novas cenas de demonstração de terreno do Unity para HDRP e URP, acesse a Asset Store e importe-as diretamente em seu projeto do Unity 2021.2. Depois de ter tido a oportunidade de explorar totalmente as cenas, diga a sua opinião nos forums de Construção de mundos.
Para obter mais informações sobre o que está por vir, acesse o roteiro da Unity.
Por fim, a equipe de arte técnica da Unity está contratando. Você pode conferir os cargos abertos em nosso site. Estamos ansiosos para saber de você!
