Øyvind Fiksdal compartilhou os detalhes do processo processual de criação de uma casa e paisagem em
Houdini e falou sobre os benefícios dessa abordagem.
1. Introdução
Meu nome é
Eivind Fixdahl , sou um artista norueguês que costumava trabalhar principalmente com arte tradicional. Perto de trinta anos, decidi me concentrar totalmente em 3D e entrei em dois anos de cursos e animação em 3D. Depois de algum tempo, consegui um emprego em uma das maiores agências de publicidade da Noruega.
O trabalho no setor de publicidade abriu todas as portas, mas o trabalho para uma empresa não me deu a possibilidade de implementação, então me tornei freelancer. Depois de dois anos como freelancer, um ex-colega e eu decidimos nos unir e criar uma empresa chamada Trollskog.
Abordagem processual do projeto
Eu sempre fiquei intrigado com a natureza processual de
Houdini , mas no nível artístico, não apenas no uso padrão do programa. Depois de analisar um grande número de tutoriais e apresentações, comecei a dominar o poder oculto dentro do programa.
Ao trabalhar com recursos totalmente procedurais no Houdini ou em qualquer outro software, há muito poucas oportunidades para introduzir toques artísticos - você só pode mudar a semente e esperar que obtenha algo interessante. Quando você trabalha sob a direção de um diretor de arte, é bem possível atribuir recursos de segundo plano à randomização, mas criar ativos de heróis ou uma vila criada manualmente pode ser uma tarefa insuportável para a maioria de nós.
Mesmo ao trabalhar com modelagem e escultura tradicionais, a criação de uma vila inteira será uma tarefa em larga escala, especialmente a edição de um ativo após a conclusão.
Meu conceito foi baseado na idéia de criar manualmente ativos simples de baixo poli, além de criar o mesmo conjunto de ferramentas procedimentais que leem geometria e criam um modelo pronto com todos os detalhes, texturas e melhorias. Com a abordagem tradicional, esse trabalho levaria vários dias.
Também é importante notar que eu fiz esse projeto há cerca de um ano para expandir meus conhecimentos em Houdini, trabalhar com
VEX e entender se é possível usar o Houdini no pipeline de produção.
Construção Doméstica: Transportador Procedural
O procedimento que gera uma casa acabada a partir de uma base baixa poli é montado a partir de uma série de módulos. Ao falar sobre os módulos Houdini, eles geralmente significam uma cadeia de nós que executam uma tarefa específica. Por exemplo, o primeiro módulo lê geometria de baixo poli e reconhece telhados, paredes, portas e janelas. Vários módulos que executam operações secundárias se ramificam dele. Por exemplo, o telhado é então enviado para o próximo módulo, localizando a crista do telhado e verificando se ele consegue detectar o pináculo. Em seguida, os dados são enviados para um novo módulo que cria ladrilhos, depois para outro para criar musgo, depois para criar grama e assim por diante.
No modelo finalizado, praticamente não há ativos pré-criados. Em vez disso, gera-os a partir da superfície abaixo deles. Este é o conceito do projeto. Como no exemplo do vídeo, as paredes são criadas com base apenas na geometria simples de baixo poli.
O processo começa importando uma malha separada, conforme mostrado no primeiro vídeo. A partir dele, como eu disse acima, o modelo reconhece proceduralmente o teto, paredes, janelas e portas. Então eles são transferidos para a fase principal da criação. O modelo de entrada também é usado para gerar hera, que não apenas cresce na superfície, mas também mede o volume do modelo para evitar muita ou pouca vegetação.
Cada um desses elementos lê o caminho do arquivo de entrada e é transmitido como um atributo, para que o modelo final seja gravado como um arquivo Houdini nativo. Ou seja, depois de escolher um modelo para criar um modelo finalizado, basta um clique do mouse para mim.
Abordagem processual combinada com trabalho manual
Ao usar um pipeline totalmente processual sem dados de entrada criados manualmente, é possível obter resultados orgânicos e de aparência aleatória, mas o processo será muito complexo e imprevisível. Mas, combinando as duas abordagens, simplificaremos o trabalho e teremos mais controle sobre o resultado final.
Obviamente, alguns aspectos precisam ser deixados ao acaso, por exemplo, criar valores aleatórios para a escala, rotação ou posição de objetos, além de usar padrões de ruído para simular superfícies de pedra e muito mais, mas para um cavalo de trabalho tão confiável como Houdini, essas são operações simples.
Fabricação de materiais
Como você pode ver no vídeo sobre a criação de paredes, uma grande proporção desses materiais não são texturas, mas geometria. Os materiais restantes são criados usando dados de cores de malhas, além de medidas de curvatura e outros truques feitos usando atributos. A maioria das texturas realmente usadas são texturas muito simples criadas através do
COP (compositor interno do Houdini).
Antes da importação, era realizada uma varredura UV de um modelo de baixo poli e esses dados eram usados no processo de modelagem, por exemplo, ao criar uma telha. Embora eu não os use no produto final, eles podem ser usados para texturas de cozimento, que serão usadas na versão low-poly, mas existem maneiras mais ideais de criar um modelo de jogo, ao qual retornaremos mais tarde.
Para o modelo final, a varredura UV é realizada principalmente de maneira processual com a ajuda de ferramentas de desenvolvimento de jogos, enquanto outras partes, por exemplo, vigas e portas são implantadas estendendo-se ao longo de curvas com coordenadas UV.
Criação de paisagem
O terreno é gerado lendo o piso inferior do modelo importado, a geometria final é criada usando
VDB misturando vários ruídos.
Depois de concluir o terreno, podemos medir todos os tipos de propriedades topológicas: oclusão, curvatura, ângulo de inclinação e assim por diante. Eles determinam a localização da grama, sua altura e a localização de flores ou árvores.
Por uma questão de variabilidade, os materiais são criados combinando imagens e dados de cores.
As plantas e a grama são instâncias criadas proceduralmente combinando nós e VEX. Em seguida, eles se transformam em proxy Redshift, cujas instâncias são criadas dependendo dos atributos da paisagem.
O projeto está pronto para uso no jogo?
Esse sistema é aplicável e não aplicável à produção de jogos. Para que seja aplicável, ele precisa ser submetido a outro conjunto de operações, mas essa será uma tarefa bastante simples e direta. Os modelos são muito altos em poli para uso em jogos, mas se você converter um modelo em alto poli em um objeto VDB para garantir sua estanqueidade e, em seguida, usar as ferramentas para reduzir o número de polígonos, todo o resto poderá ser simplesmente transformado em texturas.
Penso que hoje em dia os jogos são frequentemente usados em arquitetura gerada proceduralmente, mas ainda não vi casos em que eu usasse modelos simples feitos à mão e depois gerasse todos os detalhes baseados neles. Talvez no futuro isso seja mais comum.
Eu classificaria meu conhecimento limitado de Houdini como um gargalo do projeto. Comecei este projeto para estudar o programa e não tinha ideia do que queria chegar. Em retrospecto, posso dizer que, com o conhecimento que tenho agora, eu teria muito diferente neste e em outros projetos. Outro gargalo é a RAM - para trabalhar no Houdini, e especialmente ao processar o VDB, você precisa de muita RAM.
Øyvind Fiksdal , artista 3D
Entrevista feita por Kirill Tokarev