Dispersão Procedural

O Dash contém várias ferramentas de dispersão, cada uma adaptada a fins específicos. E nesta página explicaremos por que essas ferramentas de dispersão são as mais utilizadas no Dash.

Dispersão de Superfície é uma solução de espalhamento de classe mundial que opera nas superfícies da sua malha. A ideia é fornecer alguma geometria (malha estática, landscape, malha procedural, etc...) como sua superfície/chão para espalhar, e alguns atores que você deseja espalhar, e ele fará sua mágica.

Esta é a ferramenta mais extensa no Dash, e contém recursos solicitados por vários estúdios AAA importantes, artistas individuais talentosos e a busca incansável da nossa equipe pelo estado da arte em construção de mundos.

circle-info

Certifique-se de ler o Começando para digerir facilmente as informações desta página. A seção sobre criação de ambiente cobre o básico de uso das ferramentas do Dash, que assumiremos que você já sabe como usar nesta página.

Além de ter ferramentas de dispersão dedicadas e fáceis de usar para casos de uso específicos, a principal razão pela qual as pessoas adoram nossas ferramentas de dispersão é devido às suas capacidades de mascaramento. A maioria das ferramentas compartilha algumas configurações básicas de mascaramento, mas Surface Scatter é a que possui praticamente todos os recursos, então vamos percorrê-los um a um!

Recursos de Mascaramento

As ferramentas de dispersão do Dash contêm vários recursos de mascaramento, e embora a maioria deles resida apenas no Surface Scatter, as outras ferramentas ainda têm alguns, e estamos expandindo ativamente os recursos de mascaramento para elas. Vamos examinar todos os principais recursos de mascaramento, como eles funcionam e o que você pode fazer com eles.

Antes de mergulharmos, “mascaramento” aqui significa remover instâncias espalhadas. Além disso, a maioria dos grupos de mascaramento lhe dá a habilidade de inverter o resultado da máscara. Você notará que algumas propriedades têm um pequeno círculo escuro no canto inferior direito, o que significa que você pode clicar com o botão direito na propriedade e selecionar Inverter Máscara.

Mascaramento por Proximidade

Este recurso permite mascarar por curva, malhas e instâncias.

Ele possui uma Distância propriedade que controla a distância de proximidade, e depende das unidades nativas do UE. A outra propriedade é Amostragem. Este valor controla a qualidade do mascaramento. Um valor mais alto significa maior qualidade, e um valor mais baixo significa menor.

No exemplo acima, estamos usando malhas e curvas para mascaramento, mas depender de instâncias é igualmente fácil: selecione-as na viewport e adicione-as aos objetos de proximidade. No exemplo abaixo, espalhamos algumas esferas, depois espalhamos alguns discos e mantivemos apenas os discos próximos das esferas.

Você pode aproveitar o mascaramento por proximidade para construir florestas realistas. Primeiro, você espalharia árvores, depois manteria algumas samambaias e folhas abaixo delas, depois usaria uma curva como máscara de proximidade caso precise de um caminho, então espalharia algumas pedras nas bordas desse caminho, etc...

A partir do Dash 1.8.5, o Surface Scatter tem a capacidade de adicionar um número infinito de máscaras de proximidade, o que é feito através da Tabela de Proximidade. Isso substituiu as anteriores 3 Máscaras de Proximidade. Na Tabela de Proximidade, você pode criar grupos, cada um com seu próprio objeto, distância e valores de largura. Você poderia, por exemplo, usar o primeiro grupo para mascarar alguns objetos com uma distância específica e fazer o mesmo com os outros dois grupos.

Por fim, o Mascaramento por Proximidade se presta muito bem à inversão de máscara.

Mascaramento por Ângulo

O mascaramento por ângulo é bastante direto: ele depende da superfície subjacente para determinar o ângulo e remover quaisquer objetos espalhados nessa área. Isso é ideal para manter encostas livres de árvores e outros objetos ao espalhar em montanhas.

Mascaramento por Altura

Ferramentas como o Surface Scatter têm Máscara de Altura Mínima e Máscara de Altura Máxima propriedades, que permitem recortar os objetos espalhados por cima ou por baixo.

Mascaramento por Objeto

Ao contrário do mascaramento por proximidade, que simplesmente depende de distâncias, o Mascaramento por Objeto usa raytracing para determinar quando suas instâncias estão dentro, fora ou próximas a um objeto. Se você quiser desenhar uma curva e manter todas as suas instâncias dentro dessa curva, esse recurso é perfeito. Você também pode usá-lo para manter instâncias que estão dentro/fora de uma malha ou volume.

Este método de mascaramento também possui uma Manter Dentro propriedade booleana, que você pode alternar para garantir que o mascaramento mantenha as instâncias dentro ou fora dos seus objetos de entrada. Você também pode usar a Distância propriedade para manter instâncias nas proximidades.

Mascaramento por Ruído

O Mascaramento por Ruído permite que você quebre rapidamente a uniformidade dos seus objetos espalhados. Você recebe uma ampla gama de parâmetros, desde escala até frequência, alongamento específico por eixo, suavização de ruído, deformação, etc...

Se você estiver espalhando grama, árvores ou até lixo, recomendamos muito usar este recurso para fazer seus resultados parecerem mais naturais.

Mascaramento por Aglomeração

O Mascaramento por Aglomeração funciona escolhendo instâncias aleatórias e usando-as como ponto central de um aglomerado. Você recebe um valor para ajustar a densidade de instâncias a serem amostradas e outro para controlar o raio dos seus aglomerados. Combinado com ruído e outras máscaras, isso pode ser uma ferramenta muito poderosa para configurações de dispersão realistas.

Mascaramento de Borda

O Mascaramento de Borda detecta as arestas de borda da geometria da sua superfície e mascara todos os objetos próximos a essas bordas.

Esse recurso é realmente útil para configurações de dispersão feitas pelo homem, como jardins, onde você poderia criar alguma forma geométrica subjacente, espalhar algumas plantas sobre ela e depois ocultar essa geometria. Cada loop de borda na sua geometria é tratado separadamente, e o Borda Min/Máx propriedades permitem que você adicione alguma randomização ao mascaramento para cada loop de borda. Ruído é um efeito simples de ruído para quebrar a uniformidade da borda.

Mascaramento por Projeção

O mascaramento por projeção funciona fazendo com que o ponto de cada instância dispare um raio para cima, e qualquer malha que ele atingir e que você tenha adicionado garantirá que as instâncias atingidas pelo raio sejam mantidas. Você também pode inverter o efeito. Os casos de uso variam desde manter instâncias que estão sob objetos, como plantas ou lixo sob um carro, até remover todas as instâncias que estão abaixo de qualquer conjunto de objetos na sua cena.

Mascaramento por Camada de Landscape

Esse recurso de mascaramento permite que você forneça o nome de uma camada de pintura ao Surface Scatter, e a ferramenta então usa a camada como máscara. Você pode fornecer até três camadas.

Mascaramento por Textura

O Mascaramento por Textura é bastante direto: selecione uma textura no content browser do UE, forneça-a ao Caminho da Textura propriedade no grupo de Mascaramento por Textura, e voilà. Você pode escolher qual canal usar como máscara, ajustar o limiar de cor para ajudar com pixels de gradiente e repetir (tile) a máscara de textura. Tudo o que você precisa fazer é garantir que sua textura contenha pixels brancos sobre preto, e os pixels brancos serão usados como máscara. Se você está tentando criar uma estrutura como um pequeno jardim decorado com formas muito específicas, recomendamos essa abordagem em que você poderia espalhar sobre um plano, ocultar o plano e então dar a ele a textura que representa a forma do seu jardim de flores.

Mascaramento por Cor de Vértice

Cores de vértice podem ser aplicadas em malhas estáticas e então todos os canais RGB estão disponíveis neste grupo de mascaramento. Além disso, você tem algum controle de limiar de pixel para ajustar como o mascaramento se comporta em pixels de gradiente e também um Modos de Mistura menu suspenso do qual você pode escolher como a cor do vértice afeta sua lógica de mascaramento.

Mascaramento Direcional

Ao contrário do Mascaramento por Ângulo, o Mascaramento Direcional permite que você use sua luz solar (ou qualquer ator) para mascarar objetos com base na rotação do sol. Isso pode ser usado para remover objetos sensíveis à luz solar, sendo o musgo o caso de uso mais comum.

Adicionar / Remover Mascaramento

Este é um truque simples de mascaramento que nos permite adicionar ou remover instâncias aleatoriamente. Você poderia, por exemplo, usar mascaramento por proximidade para limpar um caminho de plantas, mas então usar a máscara de adição com um valor baixo para manter algumas plantas aparecendo aqui e ali.

Referências de Propriedades

Ao criar uma configuração complexa, como por exemplo uma floresta com um Surface Scatter para as árvores, outro para os arbustos, outro para a grama, etc... então um Path Scatter para alguns postes de madeira ao longo da floresta e uma estrada, etc... Essa complexidade pode rapidamente se tornar avassaladora, e usamos referências para dar sentido a isso. Sua estrada terá uma largura e você desejará que os postes de madeira respeitem essa largura, mesmo que tenham um leve deslocamento. O mesmo com a vegetação da floresta, você não vai querer que ela apareça na estrada, e assim por diante.

A maneira de fazer isso é criando propriedades de referência. Nós as cobrimos na Começando página, mas o fluxo de trabalho é bastante simples: você criaria alguma propriedade Distância ou Largura que dite a largura da estrada, e todas essas ferramentas a usariam. Quando uma propriedade usa uma referência, damos a ela um peso, que permite estender o valor da sua propriedade além do que a referência fornece. Por exemplo, se sua Largura for 320, os postes de madeira poderiam ter um peso de 0,1, o que os tornaria ligeiramente maiores que a largura, pois o peso age como um multiplicador percentual sobre ela.

Tabela de Dispersão

Nas versões posteriores (desde o Dash 1.8.5), começamos a adicionar tabelas de dados a certas ferramentas. A principal é a tabela de dispersão no Surface Scatter. Em vez de simplesmente atribuir vários objetos de dispersão com o ícone + na propriedade de dispersão, você pode abrir a tabela de dispersão pressionando o botão Editar Tabela.

Aqui, você pode criar várias linhas de propriedade, atribuir um ou vários objetos de dispersão a cada uma e então terá a habilidade de controlar um offset de densidade e um offset de escala por linha de propriedade. Então isso significa que você pode ter um Surface Scatter com controle muito específico dos objetos espalhados em vez de ter que criar vários Surface Scatters.

Essa lógica de Tabela de Dados está sendo gradualmente expandida para outras ferramentas e configurações para lhe dar o controle granular que às vezes você precisa.

Last updated

Was this helpful?