Quais são algumas maneiras de implementar formas de corpo variáveis?


8

Jogos como Ryzom e os Sims permitem que os jogadores tenham corpos humanos com diferentes formas: largo ou magro, alto ou baixo, nariz grande ou pequeno etc. Parece-me que seria impraticável pré-gerar todas as combinações possíveis do malhas.

Quais são algumas maneiras de fazer isso? As malhas são definidas programaticamente? É uma média ponderada de vários modelos "morph target"?

Se houver um cálculo a ser feito para determinar a malha: é feito em um "sombreador de geometria"? Ou é feito pela CPU?

Referência: a pergunta " Como criar recursos artísticos para o editor de avatar 3d " mencionou editores de avatar e elementos variáveis ​​do corpo, e que alguns jogos usam alvos de metamorfose e bombardeio de glifos.

Respostas:


2

Teria que ser feito pela CPU - um sombreador de geometria não oferece a oportunidade de salvar seus resultados, o que seria essencial, e nem todos os dispositivos suportados por esses jogos suportam sombreadores de geometria. Conseguir isso pode ser tão simples quanto aplicar uma matriz de escala às partes inteiras ou separadas.

Editar: eu li sua pergunta relacionada. Você realmente deve esclarecer esta questão para explicitamente sobre o destino de metamorfose ou explicitamente sobre apenas a personalização da escala.


Deu mais contexto à "questão relacionada". Eu não mencionei alvos de metamorfose; é definitivamente sobre a personalização. Se os alvos de metamorfose estiverem no espaço da solução, gostaria de saber mais sobre eles; mas minha preocupação é implementar os corpos com animações e modelos correspondentes (por exemplo, modelos de roupas) de forma consistente. Não estou predisposto a nenhuma parte do espaço da solução.
AngryPuffin

Não totalmente correto; se você estiver usando CUDA ou OpenCL, poderá acessar a geometria que está sendo trabalhada pela GPU.
Engenheiro
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.