Preparação Geral Começando com o seu ambiente de desenvolvimento



Baixar 2.38 Mb.
Página15/20
Encontro30.10.2016
Tamanho2.38 Mb.
1   ...   12   13   14   15   16   17   18   19   20

for child in myNodePath.getChildren():
print child

Para obter mais informações e uma lista completa de funções NodePath consulte o referência da API.

No musical " A Chorus Line ", a cena mais conhecida é quando cerca de 50 devista linha de mulheres jovens acima da esquerda para a direita através do estágio, e todos eles kick- esquerdo chutar da direita em uníssono. Para implementar isto no Panda3D , você pode fazer isso :

for i in range(50):
dancer = Actor.Actor("chorus-line-dancer.egg", {"kick":"kick.egg"})
dancer.loop("kick")
dancer.setPos(i*5,0,0)
dancer.reparentTo(render)

Aqui está o gráfico da cena que acabamos de criar :



Isso funciona bem , mas é um pouco caro. Animando um modelo envolve uma série de per- vertex cálculos matriciais. Neste caso, estamos animando 50 cópias do modelo exato mesmo com 50 cópias da animação exatamente o mesmo. Isso é um monte de cálculo redundante. Parece que há necessário ter algum jeito de evitar o cálculo dos valores exatos mesmo 50 vezes. Não é a técnica é chamada instancing.

A idéia é a seguinte: em vez de criar 50 bailarinos independentes, criar apenas um dançarino , de modo que o motor só tem que atualizar sua animação uma vez. Porque o motor para torná-la 50 vezes, inserindo -a no grafo de cena em 50 locais diferentes. Aqui está como isso é feito:

dancer = Actor.Actor("chorus-line-dancer.egg", {"kick":"kick.egg"})


dancer.loop("kick")
dancer.setPos(0,0,0)
for i in range(50):
placeholder = render.attachNewNode("Dancer-Placeholder")
placeholder.setPos(i*5, 0, 0)
dancer.instanceTo(placeholder)

Aqui está um diagrama de gráfico de cena que acabamos de criar :

dancer = Actor.Actor("chorus-line-dancer.egg", {"kick":"kick.egg"})
dancer.loop("kick")
dancer.setPos(0,0,0)
chorusline = NodePath('chorusline')
for i in range(50):
placeholder = chorusline.attachNewNode("Dancer-Placeholder")
placeholder.setPos(i*5,0,0)
dancer.instanceTo(placeholder)

Este é exatamente o mesmo código , como antes , exceto que em vez de colocar os 50 espaços reservados abaixo render, Eu colocá-los debaixo de um nó fictício chamado chorusline. Assim, a minha linha de dançarinos não faz parte do grafo de cena ainda. Agora, eu posso fazer isso:



for i in range(3):
placeholder = render.attachNewNode("Line-Placeholder")
placeholder.setPos(0,i*10,0)
chorusline.instanceTo(placeholder)

Não é uma árvore de mais nada , é um grafo acíclico dirigido . Mas o processador ainda atravessa o gráfico usando um algoritmo recursivo árvore travessia. Como resultado, ela acaba atravessando o dançarino nó 50 vezes. Aqui está um diagrama do percurso em profundidade que o processador leva através do gráfico . Note que este é não um diagrama de gráfico de cena - é um diagrama do processador de caminho através do gráfico de cena:



Em outras palavras, o representante de visitas do ator dançarino 50 vezes. Ele nem percebe que está visitando o mesmo ator de 50 vezes, ao invés de visitar 50 atores diferentes. É tudo o mesmo para o processador.

Há espaço reservado para 50 nós , alinhados no palco . Estes são chamados nós dummy. Eles não contêm qualquer polígonos , eles são pequenos objetos minúsculos utilizado principalmente para a organização . Neste caso , estou usando cada espaço reservado como uma plataforma em que um bailarino pode estar.

A posição do bailarino é ( 0,0,0) . Mas isso é em relação à posição dos pais. Quando o processador está atravessando um espaço reservado na subárvore , a posição do bailarino é tratada como parente de um espaço reservado . Quando o processador está atravessando espaço reservado do 2 sub , a posição do bailarino é tratado como espaço reservado em relação à 2. Assim, embora a posição da bailarina é fixado em (0,0,0) , ela aparece em vários locais da cena ( no topo de cada espaço reservado ).

Desta forma, é possível processar um modelo de múltiplas vezes sem armazenar e animando-o várias vezes.

Advanced Instancing

Agora, vamos dar um passo adiante : dancer = Actor.Actor("chorus-line-dancer.egg", {"kick":"kick.egg"})
dancer.loop("kick")
dancer.setPos(0,0,0)
chorusline = NodePath('chorusline')


Catálogo: 2010
2010 -> Informativo eletrônico 2010 maio 1ª ediçÃo com mais novidades
2010 -> Informativo eletrônico 2010 marçO 1ª ediçÃo com mais novidades
2010 -> Campus curitiba
2010 -> Universidade fumec faculdade de engenharia e arquitetura fea
2010 -> Cd e dvd sorriso maroto – sorriso 15 anos – ao vivo
2010 -> Sbpjor – Associação Brasileira de Pesquisadores em Jornalismo VIII encontro Nacional de Pesquisadores em Jornalismo
2010 -> Pibic/cnpq/ufcg-2010 características da variabilidade do vento no aeroporto internacional de joão pessoa: período 2003-2009
2010 -> Decreto 1171 fcc 2010 al-sp agente Legislativo de Serviços Técnicos e Administrativos Ética é o conjunto de regras e preceitos de ordem valorativa e moral de um indivíduo, de um grupo social ou de uma sociedade
2010 -> Gabinete Coordenador de Educação Artística/ dea pratica coral

Baixar 2.38 Mb.

Compartilhe com seus amigos:
1   ...   12   13   14   15   16   17   18   19   20




©bemvin.org 2020
enviar mensagem

    Página principal
Prefeitura municipal
santa catarina
Universidade federal
prefeitura municipal
pregão presencial
universidade federal
outras providências
processo seletivo
catarina prefeitura
minas gerais
secretaria municipal
CÂmara municipal
ensino fundamental
ensino médio
concurso público
catarina município
Dispõe sobre
reunião ordinária
Serviço público
câmara municipal
público federal
Processo seletivo
processo licitatório
educaçÃo universidade
seletivo simplificado
Secretaria municipal
sessão ordinária
ensino superior
Relatório técnico
Universidade estadual
Conselho municipal
técnico científico
direitos humanos
científico período
espírito santo
pregão eletrônico
Curriculum vitae
Sequência didática
Quarta feira
prefeito municipal
distrito federal
conselho municipal
língua portuguesa
nossa senhora
educaçÃo secretaria
segunda feira
Pregão presencial
recursos humanos
Terça feira
educaçÃO ciência
agricultura familiar