Suboperador de alteração de quantidade

O suboperador de alteração de quantidade permite modificar a contagem de partículas, gerando novas partículas ou excluindo as existentes. Ao gerar, você pode gravar as propriedades de geração e os detalhes em canais personalizados criados com o suboperador Saída nova. Também, durante a geração, o valor da entrada de número inteiro determina o número de partículas novas.

Procedimento

Alteração da quantidade é um dos suboperadores mais complexos no kit de ferramentas da Manipulação de dados avançados. Para ajudá-lo a compreender como isso funciona, oferecemos o seguinte exemplo: Geração simples.

O uso do suboperador de Alteração de quantidade requer o conhecimento dos outros suboperadores. O propósito deste exemplo é apenas ilustrar a maneira mais simples de usar o suboperador de alteração de quantidade.

Nota: Nesta cena, as partículas originais (pais) se movem ao longo da seta do ícone de origem PF, como definido pelo operador de Velocidade padrão, enquanto as partículas geradas se movem em várias direções.

Para acompanhar, abra o arquivo SimpleSpawn.max .

Exemplo: Para usar o suboperador de alteração de quantidade:

  1. Adicione um suboperador de alteração de quantidade. Mantenha definido como Tipo: Gerado e escolha Número inteiro como aditivo. A seguir, ligue sua entrada a um suboperador Escalar definido para o Tipo de saída: número inteiro.

    O valor inteiro do suboperador escalar controla a intensidade do processo de geração.

  2. Crie um canal personalizado, adicionando o suboperador Saída nova com o Tipo de dados: booleano para gravar a geração.
  3. Defina a Saída nova ordem de execução como 1. Isso define automaticamente a Alteração de quantidade Ordem de execução como 2, para que o canal seja criado antes da execução da Alteração de quantidade.
  4. No suboperador de alteração da quantidade grupo Gravar geração em dados, ative É geração atual. Clique no botão Nenhum e escolha o suboperador Saída nova.

    Isso registra os dados gerados no canal personalizado.

  5. Para ver o processo gerado, altere a velocidade das partículas geradas (vetor de velocidade=[25, 0,0], Divergência=180) e ative Usar como velocidade.

    O suboperador de Vetor utilizado aqui com Divergência separa partículas geradas individuais entre cada um e o pai.

  6. (Necessário para teste de dados) Para filtrar partículas geradas a partir das originais, adicione um suboperador do teste de saída. O teste de saída deve solicitar os dados do canal personalizado; isso porque um novo operador personalizado de entrada é criado.

Em sua forma atual, este exemplo é apenas um subconjunto do teste Proliferação regular, no qual é possível construir um processo de geração personalizado. Por exemplo, em vez de usar o suboperador escalar para definir a quantidade aditiva para geração, você pode criar seus próprios esquemas que calcular o número de geração com base na posição do pai. Outro método para experimentação é fazer mudanças no suboperador de Vetor (definindo a velocidade das partículas geradas).

Este exemplo mostra os requisitos mínimos para um processo de geração. O suboperador de alteração de quantidade em si não é suficiente para isso. Portanto, o propósito aqui é fornecer alguma base e experiência para se trabalhar. Uma vez que você tenha disposta a base e visto se está funcionando (a geração está visível), é mais fácil alterar ou construir.

Interface

Tipo
O tipo determina se a quantidade de alteração cria (gera) partículas ou as exclui. Quando Tipo está definido como Excluir, somente os controles disponíveis são Falso para excluir/ Verdadeiro para excluir e Ordem de execução. Padrão=Gerar.
Número inteiro como Quantidade/Aditivo
A entrada de dados inteiros do suboperador de alteração de quantidade define o número de partículas geradas. Use esta opção para determinar se os dados de entrada são considerados como:
  • Quantidade O valor inteiro de entrada define quantas partículas irão substituir o pai. Ou seja, define o número total de partículas, incluindo o pai e seus filhos gerados. Um valor de entrada de 0 significa que uma partícula pai foi excluída; 1 significa que a partícula não foi gerada, e assim por diante.
  • Aditivo O valor inteiro de entrada define o número de partículas geradas. Um valor de entrada 0 significa que a partícula não é gerada, um valor 1 significa que 1 filho é criado por partícula pai, e assim por diante.
Falso/Verdadeiro para excluir
Disponível somente quando Tipo=Excluir. Esta é a única função da opção Excluir, que define o tipo de entrada do suboperador como Booleano: Quando os dados de entrada têm o mesmo valor da opção escolhida (Falso=0; Verdadeiro=1), as partículas no evento são excluídas.
Redefinir idade de partículas
Quando ativado, as partículas no evento têm suas idades redefinidas para 0.
É gerado como novo no evento
Todas as partículas têm um canal de dados "Novo no evento" padrão, que indica as partículas que acabaram de entrar no evento, por criação ou pela transferência de outro evento. Os dados de "Novo no evento" são utilizados por muitos operadores para inicializar alguns dados de propriedade para partículas. Esta opção permite que você escolha se deseja identificar partículas recém-criadas com este canal de dados. Quando ativado, uma partícula gerada é considerada nova, acionando, assim, alguns dados da inicialização por outros operadores. Quando desativado, uma partícula gerada não é considerada como nova, deixando esses dados para serem herdados das partículas pai.

Grupo Prioridade e ordem da execução

Consulte Prioridade e ordem da execução.

Grupo Gravar geração em dados

Esses controles permitem gravar as propriedades e os detalhes de geração canais personalizados. Os canais personalizados precisam ser criados com antecedência com o suboperador Saída nova. Os dados nos canais personalizados são atualizados durante a execução de alteração da quantidade. Portanto, para obter esses dados, você precisa solicitar os dados dos canais personalizados (normalmente com o suboperador personalizado de entrada) no fluxo de dados com o valor da ordem de execução maior que o valor da ordem de execução do suboperador de alteração de quantidade.

Para utilizar qualquer um desses controles, ative-o, clique no botão associado e, em seguida, use a caixa de diálogo Selecionar canal de dados para especificar o canal.

É pai atual
Dados booleanos para indicar se uma partícula gerou quaisquer partículas.
É geração atual
Dados booleanos para indicar se uma partícula é uma geração recente.
ID pai
Dados inteiros com o ID de criação do pai de uma partícula. As informações de ID podem ser usadas no suboperador personalizado de entrada, que pode aceitar um canal inteiro para recuperar dados de outras partículas (opção Usar I2 como IDs de partículas). A referência lê -1 se uma partícula não for um resultado da geração pelo suboperador de alteração de quantidade. Aliás, você pode usar os mesmos canais de dados entre diversos suboperadores de alteração de quantidade.
Último ID gerado
Dados inteiros com o ID de criação da última partícula gerada. Os dados são válidos somente para as partículas que foram pais pelo menos uma vez e não necessariamente na etapa de integração atual, mas sim globalmente no tempo.
Primeiro ID gerado
Dados inteiros com o ID de criação da primeira partícula gerada no sentido global. Esta partícula é a mais antiga entre as gerações da partícula pai. Novamente, os dados são válidos somente para partículas que foram pais pelo menos uma vez. O canal de dados está disponível somente se o canal de Contagem de geração total (veja abaixo) for definido.
ID da primeira geração atual
Dados inteiros com o ID de criação da primeira partícula gerada na etapa de integração atual.
ID da irmã mais antiga/anterior
Dados inteiros com o ID de criação da partícula gerada/irmã anterior. Esses dados podem ser usados para estabelecer cadeias de irmãs geradas. O canal de dados está disponível somente se os canais de Contagem de geração total e ID da última geração estiverem definidos. Os dados são contínuos através dos passos de integração; portanto, se uma partícula tiver gerações durante vários passos de integração, ainda é possível estabelecer toda a cadeia de gerações irmãs da partícula pai.
Contagem de geração atual
Dados inteiros que indicam quantas partículas foram geradas por partícula pai durante a etapa de integração atual.
Contagem gerada total
Dados inteiros que indicam a quantidade total de partículas geradas para uma partícula pai.
Ordem de geração atual
Dados inteiros que indicam a ordem de gerações nas etapas de integração atuais, de 0 a N-1, em que N é o número de gerações para partículas pai na etapa de integração atual. Os dados podem ser usados para ajustar a localização da partícula no espaço, por exemplo, para espalhar partículas da localização da última partícula gerada na etapa de integração anterior para a localização atual do pai, criando assim uma colocação similar ao operador de geração padrão.