Cursos e Bibliotecas Ver Mais

Galeria 3D1 Ver Mais

Mtatagiba   Brasil - SP
An3dre   Araras / SP - SP
new   Belo Horizonte - MG
marcoviana   teresina -PI - PI
Millow   São Paulo - AC

Portfólios Ver Mais

Tataum   Rio Preto SP
brunasousa   Diadema - SP - AC
Victor MS   Rio de Janeiro

Modelagem para jogo

Por: Jorge Macfly  

Em: 13/09/2004 18:48

Oi galera, estou precisando de uma ajudinha, para enteder um pouco mais sobre essa minha dúvida. É o seguinte: Estou modelando um determinado objeto no MAX, para pôr em um jogo bem simples... bem, modelei esse objeto de 3 maneiras diferentes e elas possuem as seguintes propriedades: Arquivo1 = Tamanho 321K, Vertices 31324, Faces = 62208; Arquivo2 = Tamanho 357K, Vertices 7252, Faces = 13872; Arquivo3 = Tamanho 424K, Vertices 7060, Faces = 13488; Gostaria de saber qual desse arquivos terá um melhor funcionamento no jogo e porque ? O que vale é o tamanho do arquivo, ou o número de faces e vertices para um melhor desempenho ? E para finalizar, um jogo bem pesado que exige uma boa máquina para rodá-lo, tem + ou - quantos vertices e faces no seu cenário ? Valeu galera e muito obrigado a todos......
Ola Jorge Macfl tudo bem? Bom sobre a sua duvida eh o seguinte, em um jogo o numero de poligonos eh o mais importante, não eh facil vc modelar low-poly(poucos poligonos) de uma forma q a qualidade seja excelente, mais com dedicação todos aprendem, bem depende muito do q vc esta modelando, se vc esta fazendo um personagem por exemplo, ele não pode possuir muitos poligonos, ja q alem disso ele sera animado, ja um cenario não tem "tantos problemas", bom, pruma maquina muito boa, 5000 poligonos para um personagem ja eh o suficiente e 10000 para um cenario tb esta de bom tamanho(isso para uma maquina com otima performace) espero ter ajudado =) Agora meio off-topic, esse eh meu primeiro reply, mais eu ja vejo a 3d1 a alguns meses e so a pouco tempo fiz meu cadastro, e ja adiantando, os tutoriais daqui e da redpixel me ajudaram bastante :D
Oi Jorge, pra dizer a verdade o que importa ao render são triângulos, mas ao baixo nível de programação do engine, o que ele lê são vértices, é meio complicado, mas dá pra entender. Essa explicação é baseada na tecnologia T&L, o transform & lighting, que simplificando seria a transformação de coordenadas mais a ação da iluminação ambiente. Quando o engine lê as superfícies, os elementos fundamentais são os vértices, que nada mais são que grupos de coordenadas x,y,z. Todos os vértices do modelo vão representar uma matriz de coordenadas espaciais que vão possibilitar o cálculo de cada superfície triangular formada por eles. Triângulo é unidade fundamental pro render, porque é a superfície mais simples. Um vértice é um ponto no espaço, dois já limitam um segmento de reta, 3 geram a superfície mais elementar. Então tá aí o triângulo que o engine calculou, e o que vamos ver vai ser o resultado da ação da iluminação em cada um deles, levando-se em conta as informações que cada vértice traz pra formar a imagem. O vértice traz as informações de mapeamento, material, iluminação, etc e a interpolação das informações de cada 3 vértices vai resultar no visual que teremos da superfície. Bem, porque eu fiquei dizendo isso, né? É porque esse é o fundamento primário da coisa, assim se pode ter idéia da complexidade que é o processo e nos leva a entender o porque do lowpoly. Quanto aos limites, cada engine tem uma 'potência' diferente, e na renderização do jogo ainda existem recursos de LODs (níveis de detalhe) e outras coisas como mipmaps, etc Nos jogos de corrida que eu costumo mexer, existem carros que o pessoal faz com uns 5mil tri, mas tem jogos que suportam com 30mil, e ainda existem os mapas enormes como no Mercedes Benz World Racing ou em jogos de guerra como Battlefield. Os mapas são tratados por partes, aonde, por exemplo, numa pista que eu faço pra corrida, eu separo os trechos de 500 em 500 triângulos pra usar os recursos de lods, etc. Então não é tudo que está sendo calculado ao mesmo tempo, existe um limite da cena principal que o engine prioriza. Até porque além do cálculo gráfico, visual, tem a física, outros processos paralelos. Pra não te deixar sem alguma idéia de números, vamos imaginar um carro com uns 3000 tri, um grid com 30 carros, mais a pista que pode chegar nos 50mil, 100mil, com todos os cenários, etc. Não é pouca coisa, por isso sempre é bom otimizar ao máximo os objetos e texturas. Qualquer dúvida pra complementar, é só perguntar. Abraços
Ok, muito obrigado.... Vou esclarecer algo a vcs, estou modelando um grande equipamento que é feito apenas com cilindros e box, apenas isso...isso está sendo feito em MAX e será utilizado C++ e a biblioteca OpenSceneGraph. Ele deve ter aproximadamente uns 40 cilindros e uns 30 box, gostaria de deixar os cilindros bem redondos, mais isso vai deixar uma quantidade de vertices e faces maior, como resolver isso ? E com relação a uma máquina de ótima perfomance, qual seria mais ou menos sua configuração ? Valeu e um forte abraço a todos.....
Ao invez de adicionar mais "sides" no cilindro utilize o modificador meshsmooth com uns 14 no campo sides, qnd aplicar o modificar aumente seu parametro de strenght para 1, isso sera o suficiente para o cilindro ficar bem redondo e com uma quantidade rasoavel de poligonos
quanto à sua dúvida dos cilindros, não tem como vc deixar eles mais redondos sem acrescentar mais vértices. na verdade, os objetos 3d são sempre facetados, mas existe um algoritmo chamado smooth que interpola dois polígonos baseado no ângulo de variação entre eles, e cria uma superfície razoavelmente homogenea, sem precisar exagerar nos polígonos. se nao existisse esse algoritmo, a cg de hoje não seria o que é, porque seriam necessários milhões de faces para representar superfícies suaves, e para jogos sabemos que isso não pode acontecer. o que vc pode fazer é variar o número de lados dos cilindros, quando estiverem mais longe pode diminuir os lados, a medida que se aproximarem na animação pode aumentar. como vc está usando somente primitivas pode animar no caso dos cilindros o parâmetro sides. em objetos mais complexos geralmente usa-se o modifier multires, que tb permite a modificação do detalhamento. so nao sei ao certo como integrar isso ao engine do jogo, manjo quase nada de programação para jogos. uma máquina de alta performance ou pelo menos média performance seria eu penso baseada no athlon ou pentium IV, pelo menos uns 512mb ddr de Ram, placa de vídeo AGP de no mínimo dos mínimos 64 MB, baseada em chipsets nvidia ou ATI, que tem os melhores desempenhos para jogos. existem outras placas de vídeo profissionais, mas não sei os nomes e marcas pra te passar. mas penso que com uma configuração semelhante a essa vc já pode ter bons resultados. Um abraço!!!
http://www.aabbgraphics.blogspot.com
Videotutoriais e artigos
Jorge, acho que os objetos mais redondos que temos no jogo que a gente tá fazendo são as rodas dos carros, elas são baseadas em cilindros de 20 faces, mas acredito que 12 faces já sejam suficientes pra ter uma sensação de objeto aredondado. Aplique o smooth no mesh deixando todas as faces ao redor no mesmo grupo. Esta é a roda dos Astra Hatch da V8 Light que o Rafael Lucien fez Luck, aplicar um meshsmooth pode ser uma solução pra ir observando o comportamento da malha, mas no final vai ter que converter tudo pra mesh pro engine poder ler, e o número de faces vai crescer do mesmo jeito. E pra jogo eu sempre acho melhor fazer as coisas na mão, determinar quantas faces vai ter e fazer o cilindro e trabalhar com o mesh puro.
Ok galera, muito obrigado a todos vocês que me ajudaram....queria colocar uma imagem para todos vcs olharem, como faço isso ? Se eu soubesse o e-mail de cada um podia mandar algumas imagens pelo seus respectivos e-mails para vcs opinarem.... Valeu.....
entao, pra mandar ima imagem aqui primeiro vc tem que hospeda-la num servidor qualquer, se nao me engano, no forum de imagens dos leitores tem um minitutorial e uma lista de rovedores pra vc armazenar as fotos, o mais popular é o photobucket. depoi com as fotos já hospedadas, vc vai usar BBcodes para inserir a imagem nas mensagens. os bbcodes geralmente estao entre colchetes [] e em pares, o primeiro definindo o inicio do comando e o segundo definindo o fim, parecido com as tags do html. por exemplo, se eu quisesse inserir a imagem cooler2.jpg que está no site www.arthurbuccioli.ubbi.com.br eu colocaria o seguinte codigo: assim a minha imagem seria exibida no fórum. lembrando que a opcao desativar bbcode nesta mensagem nao pode estr marcaa, senao o codigo so aparece como texto, assim como este codigo exemplo que te mostrei. Um abraço!!!
http://www.aabbgraphics.blogspot.com
Videotutoriais e artigos

Faça o login para poder comentar

Usuários conectados

Total de mensagens publicadas pelos membros da comunidade: 710606.

Total de membros registrados: 138072

Últimos membros registrados: Virk, fabriciostm, mariaalrb, machadowr, cavalcantesuetam, oxyscrema, ennecopro, bodybloom.

Usuário(s) on-line na última hora: 817, sendo 18 membro(s) e 799 visitante(s).

Membro(s) on-line na última hora: Le_Andro, Renatto, Fabio Amorim, Nuno, Reinaldo Silva, Eduardo Ramos, Gabriel.C, Frederico Wagner N. R., Augusto Peixoto, Duda, Moura, Pedro Juliato, Thiago Couto, Ale Marques, Felipe Duarte, Ricardo Paranhos, Luana Chen, Virk.

Legenda: Administrador, Especial, Moderador, Parceiro .

3D1 © Três D1 © 1999-2024. Todos direitos reservados.