Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Tutorial 3D]O que é um Normal?
+2
willyruduit
Rodrigo Santiago
6 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial 3D]O que é um Normal?
Título: Normais
Tags: 3D, Modelos, Normais.
Essa é uma daquelas coisas que você vai vendo e vai passando por cima, e sabe-se lá quando você vai parar para entender o que é isso.
O mundo 3D é formado basicamente por : Faces, Luz e Camera , estendido com Modelos, Textura, Céu, Névoa e etc. Por incrível que pareca, normal está dentro do "básico".
Conceito
Normal é o resultante angular de uma face. ( ). Pra que isso então? É para que a placa de vídeo entenda como a luz deve ser refletida numa face. Ela é constituída por 3 números que variam de -1 á 1. Cada um representa o angulo em x y z de uma forma resumida. Lembre-se que normal é um VETOR que aponta para um lado veja:
Bem, ela muitas vezes é calculada automaticamente, por isso você ainda sobrevive sem saber o que ela é. Só que, ela é tão poderosa que pode fazer qualquer , modelo, mas qualquer mesmo ficar 100 vezes mais eficaz sem alterar UMA UNICA FACE. Ou seja, 100% do desempenho.
Veja :
O primeiro modelo tem 500 faces, o segundo possui 2000 , e sim, o terceiro possui 500!
Como isso foi possível? Simplesmente porque normal é dada por vértices e não por faces. Cada face tem sua resultante normal. E o padrão é usar a resultante normal da face em cada um dos pontos da face, já nesse modo, cada face usa em seus respectivos pontos a média das normais de cada face. Ou seja, se um ponto estiver em 3 faces, ele vai pegar as normais de cada face, fazer uma media e usa-la.
Explanação:
Na figura 1. O ponto A,B e C possuem a mesma Normal, que é a da face que estão. F e E também possuem a mesma normal, porém, diferente da normal de ABC, e o mesmo para G e D. Já na figura 2, F, A e G possuem a mesma normal, que é, a média das normais das 3 faces que pertencem. E e B também possuem a mesma normal, porem diferente de FAG, por isso o degradê parece, e por isso também que é difícil ver a interseção das faces.
E então como eu uso isso no game maker?
O Seguinte código calcula a normal de uma face :
Extra
No blender você pode fazer esse efeito no modo de edição : model -> faces -> shade smooth , E exportar para .obj.
Lembre-se, as vezes, usar o modo padrão pode ser mais viável, por exemplo, para representar algum equipamento de ferro, ou algo quadrado.
Até a próxima.
Esse tutorial foi uma colaboração para o Theguitarmester .
Tags: 3D, Modelos, Normais.
Normal
Essa é uma daquelas coisas que você vai vendo e vai passando por cima, e sabe-se lá quando você vai parar para entender o que é isso.
O mundo 3D é formado basicamente por : Faces, Luz e Camera , estendido com Modelos, Textura, Céu, Névoa e etc. Por incrível que pareca, normal está dentro do "básico".
Conceito
Normal é o resultante angular de uma face. ( ). Pra que isso então? É para que a placa de vídeo entenda como a luz deve ser refletida numa face. Ela é constituída por 3 números que variam de -1 á 1. Cada um representa o angulo em x y z de uma forma resumida. Lembre-se que normal é um VETOR que aponta para um lado veja:
Bem, ela muitas vezes é calculada automaticamente, por isso você ainda sobrevive sem saber o que ela é. Só que, ela é tão poderosa que pode fazer qualquer , modelo, mas qualquer mesmo ficar 100 vezes mais eficaz sem alterar UMA UNICA FACE. Ou seja, 100% do desempenho.
Veja :
O primeiro modelo tem 500 faces, o segundo possui 2000 , e sim, o terceiro possui 500!
Como isso foi possível? Simplesmente porque normal é dada por vértices e não por faces. Cada face tem sua resultante normal. E o padrão é usar a resultante normal da face em cada um dos pontos da face, já nesse modo, cada face usa em seus respectivos pontos a média das normais de cada face. Ou seja, se um ponto estiver em 3 faces, ele vai pegar as normais de cada face, fazer uma media e usa-la.
Explanação:
Na figura 1. O ponto A,B e C possuem a mesma Normal, que é a da face que estão. F e E também possuem a mesma normal, porém, diferente da normal de ABC, e o mesmo para G e D. Já na figura 2, F, A e G possuem a mesma normal, que é, a média das normais das 3 faces que pertencem. E e B também possuem a mesma normal, porem diferente de FAG, por isso o degradê parece, e por isso também que é difícil ver a interseção das faces.
E então como eu uso isso no game maker?
O Seguinte código calcula a normal de uma face :
- Código:
//calculate_normals(x1,y1,z1,x2,y2,z2,x3,y3,z3)
var xa,ya,za,xb,yb,zb,xc,yc,zc;
xa=argument0;
ya=argument1;
za=argument2;
xb=argument3;
yb=argument4;
zb=argument5;
xc=argument6;
yc=argument7;
zc=argument8;
cpx=((za-zb)*(ya-yc))-((ya-yb)*(za-zc));
cpy=((xa-xb)*(za-zc))-((za-zb)*(xa-xc));
cpz=((ya-yb)*(xa-xc))-((xa-xb)*(ya-yc));
r=sqrt((cpx*cpx)+(cpy*cpy)+(cpz*cpz));
nx=cpx/r;
ny=cpy/r;
nz=cpz/r;
Extra
No blender você pode fazer esse efeito no modo de edição : model -> faces -> shade smooth , E exportar para .obj.
Lembre-se, as vezes, usar o modo padrão pode ser mais viável, por exemplo, para representar algum equipamento de ferro, ou algo quadrado.
Até a próxima.
Esse tutorial foi uma colaboração para o Theguitarmester .
Última edição por Rodrigo Santiago em Qua 03 Jun 2015, 06:59, editado 1 vez(es)
Rodrigo Santiago- Games Ranking :
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios :
x 0 x 0 x 0
x 3 x 1 x 3
x 0 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
Muito legal, Sempre tive vontade de aprender esse mundo 3D mas como sou muito ruim em modelar e desenhar nunca testei nada mas vale ler tutos como este para sentir vontade de iniciar!
Muito legal sua abordagem
Muito legal sua abordagem
willyruduit- Games Ranking :
Notas recebidas : B-B-B-A-A
Data de inscrição : 02/08/2013
Reputação : 33
Número de Mensagens : 306
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
Quando vi o nome desse tutorial e quem tinha postado, já pensei: "Deve ter sido por causa daquela conversa lá no chat, em que demonstrei minha 'total sabedoria' sobre Normals"
Agora eu consegui entender um pouco o que é Normals e para que serve, que é para fazer o efeito Smooth(ou desfocar as faces do modelo, de certo modo), só que não consegui entender ao certo como funciona. confira comigo:
Quer dizer que, se um vértice estiver cercado por três faces, será feita a média da 'normal' desses três vértices, certo? mas, esse valor servirá para que? para iluminar qual das faces, ou, iluminar no vértices, mas, como funciona essa iluminação? isso eu não consegui entender.
Ah, e esta bem bom o tutorial.
Agora eu consegui entender um pouco o que é Normals e para que serve, que é para fazer o efeito Smooth(ou desfocar as faces do modelo, de certo modo), só que não consegui entender ao certo como funciona. confira comigo:
Está certo isso?cada face usa em seus respectivos pontos a média das normais de cada face. Ou seja, se um ponto estiver em 3 faces, ele vai pegar as normais de cada face, fazer uma media e usa-la.
Quer dizer que, se um vértice estiver cercado por três faces, será feita a média da 'normal' desses três vértices, certo? mas, esse valor servirá para que? para iluminar qual das faces, ou, iluminar no vértices, mas, como funciona essa iluminação? isso eu não consegui entender.
Ah, e esta bem bom o tutorial.
Re: [Tutorial 3D]O que é um Normal?
Quer dizer que, se um vértice estiver cercado por três faces, será feita a média da 'normal' desses três vértices, certo? mas, esse valor servirá para que? para iluminar qual das faces, ou, iluminar no vértices, mas, como funciona essa iluminação? isso eu não consegui entender
Adicionei ,Explanação no tutorial, acho que você vai entender "pra que servirá a média".
Rodrigo Santiago- Games Ranking :
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios :
x 0 x 0 x 0
x 3 x 1 x 3
x 0 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
Agora eu consegui entender a lógica melhor, é que eu esqueço de lembrar que embora pareça que o um triangulo/face esteja dividindo o vértice com outro, que na verdade ele não está, ainda mais que eu uso o editor do Blender, e nele você vê como o mesmo vértice.
Mas agora entendi:
Sem usar esse arredondamento(qual o nome disso? é smooth mesmo?), a direção de luminosidade dele apontará conforme a direção da face como um todo, com os três vértices(se for um triângulo) apontando para a mesma direção, já com o arredondamento, ele fará um degradê na direção apontada, conforme as novas "normals" dos 3 vértices.
Seria isso então?
E obrigado novamente, ficou ainda melhor, só não entendi porque o nome de "explanação".
Mas agora entendi:
Sem usar esse arredondamento(qual o nome disso? é smooth mesmo?), a direção de luminosidade dele apontará conforme a direção da face como um todo, com os três vértices(se for um triângulo) apontando para a mesma direção, já com o arredondamento, ele fará um degradê na direção apontada, conforme as novas "normals" dos 3 vértices.
Seria isso então?
E obrigado novamente, ficou ainda melhor, só não entendi porque o nome de "explanação".
Re: [Tutorial 3D]O que é um Normal?
Sim. Está correto. Vai até ajudar a outros entenderem.
Eu tinha que colocar algum identificador de mudança
Eu tinha que colocar algum identificador de mudança
Rodrigo Santiago- Games Ranking :
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios :
x 0 x 0 x 0
x 3 x 1 x 3
x 0 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
theguitarmester escreveu:
Agora eu consegui entender um pouco o que é Normals e para que serve, que é para fazer o efeito Smooth(ou desfocar as faces do modelo, de certo modo), só que não consegui entender ao certo como funciona. confira comigo:Está certo isso?cada face usa em seus respectivos pontos a média das normais de cada face. Ou seja, se um ponto estiver em 3 faces, ele vai pegar as normais de cada face, fazer uma media e usa-la.
Esse video mostra com muita clareza como o Smooth Shading, justamente suavizar os "cantos" do modelo funciona, caso entenda um pouco de inglês acredito que não tenha problema nenhum em entender: https://www.youtube.com/watch?v=PMgjVJogIbc
gabrielsch- Games Ranking :
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Reputação : 28
Número de Mensagens : 1230
Prêmios :
x 0 x 0 x 0
x 1 x 2 x 0
x 1 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
Excelente contribuição.
Movido para seção dos tutoriais aprovados.
=)
Movido para seção dos tutoriais aprovados.
=)
fredcobain- Games Ranking :
Data de inscrição : 14/04/2011
Reputação : 163
Número de Mensagens : 692
Prêmios :
x 0 x 3 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
Muito bom sua aula...
seria legal um exemplo solido (engine)como na vez em que vc criou uma lista de tutoriais 3d de iniciante ao avançado ( ainda esperndo a ultima, não achei o tópico kk ) mais ainda sim, está ótimo.
Ps. o exemplo, é pq pessoas tipo eu, não se dá muito bem com o 3D.
seria legal um exemplo solido (engine)como na vez em que vc criou uma lista de tutoriais 3d de iniciante ao avançado ( ainda esperndo a ultima, não achei o tópico kk ) mais ainda sim, está ótimo.
Ps. o exemplo, é pq pessoas tipo eu, não se dá muito bem com o 3D.
Re: [Tutorial 3D]O que é um Normal?
Isaque Onix, rapaz, deu uma vontade de fazer a terceira parte ...
O gms está mais rápido. Tem o compiler, tem arquivos inclusos, a leitura ficou muito melhor também. Tem shaders também, já da pra fazer muitas coisas.
Só falta a colisão 3d(sem dll). Mas existem milhares de formas de fazer isso.
Hum... Quem sabe aparece uma coisa nova pelo forum
O gms está mais rápido. Tem o compiler, tem arquivos inclusos, a leitura ficou muito melhor também. Tem shaders também, já da pra fazer muitas coisas.
Só falta a colisão 3d(sem dll). Mas existem milhares de formas de fazer isso.
Hum... Quem sabe aparece uma coisa nova pelo forum
Rodrigo Santiago- Games Ranking :
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Reputação : 73
Número de Mensagens : 1281
Prêmios :
x 0 x 0 x 0
x 3 x 1 x 3
x 0 x 0 x 0
Re: [Tutorial 3D]O que é um Normal?
hehehe realmente o GM deu uma baita evoluída.
Aguardando novidades!
Aguardando novidades!
Tópicos semelhantes
» Oi Galerinha, aqui um tutorial básico de um jogo de luta que eu fiz! [TUTORIAL]
» [Tutorial] 39dll Tutorial - Part II(Final)
» [Tutorial] 39dll Tutorial - Part I
» spriter normal e diagonal
» Sobre os cargos ausentes
» [Tutorial] 39dll Tutorial - Part II(Final)
» [Tutorial] 39dll Tutorial - Part I
» spriter normal e diagonal
» Sobre os cargos ausentes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos