Fusion Makers
Faça login para usufruir de todos nossos recursos. Ainda não tem uma conta? Inscreva-se já!
Conectar-se

Esqueci minha senha

Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
2 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 2 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 65 em Sex 01 Abr 2016, 22:48
Estatísticas
Temos 255 usuários registrados
O último usuário registrado atende pelo nome de LuckN

Os nossos membros postaram um total de 5264 mensagens em 574 assuntos

Shaders, sombra e imagem 2d para o OpenGL

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Sab 20 Ago 2011, 19:25

Olá galera,

Sou novo no forum, e estou gostando muito do site.

Atualmente estou desenvolvendo um jogo 3D feito no OpenGL Collection. As extensões somadas fornecem uma otima base para o desenvolvimento de jogos com o OpenGL, mas existem 3 coisas que eu gostaria de fazer no meu jogo e não achei uma forma de resolver:

1- Shader: Eu gostaria de adicionar shaders, tanto para as texturas, como na frame do openGL. Gostaria de colocar alguns shader como Bloom, HDR, Efeitos visuais de fogo, cellshading, etc...

2- Sombra: Gostaria de saber se existe algum modo de de calcular sombra em tempo real (independente da qualidade). Mesmo que fosse algo estilo Mario (apenas uma bola preta em baixo do personagem) até algo mais complexo que realmente projete a sombra no formato correto em outros modelos 3D.

3- Imagens 2D: Todo jogo, mesmo sendo 3D, tem partes em 2D como balões de dialogo, contador de HP, Menu, etc... A extensão sprite object do OpenGL, posiciona uma imagem 2D no universo 3D, mas eu gostaria que essa imagem 2D ficasse sempre "por cima" do mundo 3D.

Se alguém souber uma forma de fazer algum desses itens, seja por meiod e uma extensão, por meio de script, por meio de eventos, sei la... por favor ajudem.

Obrigado a atenção
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por sominterre em Sab 20 Ago 2011, 19:49

interessante!Infelizmente não tenho nada que precise.


BEM-VINDO AO FÓRUN!
avatar
sominterre
Usuário

Mensagens : 314
Data de inscrição : 08/02/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Sonic_BR em Sab 20 Ago 2011, 20:27

Olha,eu não mecho muito com 3D (aliás,não mecho nada xD) mas se você colocar algum Active ou qualquer outra extensão que fique logicamente na frente da extensão da base do OpenGL,deve funcionar...



_____________________


Aww yeah!
Achei uma "apostila" de pixel art!

Sonic_BR
Usuário

Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 18
Localização : Vitória da Conquista-BA

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Sgt. Lucas em Sab 20 Ago 2011, 20:30

Bem-vindo ao fórum! Very Happy

O 2d sempre por cima você se refere a HUD? Eu conheço uma engine que tem isso.
Se for tipo um HUD me fala que eu te passo ela. Wink

Não sou muito bom de OpenGL(sou horrível), quem entende muito disso é o Matheus!

EDIT: É desse jeito que o Sonic BR disse Laughing
avatar
Sgt. Lucas
Usuário

Mensagens : 322
Data de inscrição : 11/09/2010
Idade : 18
Localização : Teresina

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Sab 20 Ago 2011, 23:20

Gente, obrigado por responder ao topico.

Perdão pela ignorancia, mas não sei o que é um HUD. O problema de usar um Active ou qualquer coisa do tipo, é q o OpenGL Collection não deixa nada ficar a frente dele. Mesmo que fique em uma layer mais baixa, na hora da execução, ele sempre fica a frente do resto!
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Sonic_BR em Dom 21 Ago 2011, 00:43

HUD tudo que fica na frente do 3D ou seja,a barra de life,o score,o mapa e etc...
Você não foi ignorante não ^^

Hm...Então Sargento Lucas,passa a engine pra ele =)



_____________________


Aww yeah!
Achei uma "apostila" de pixel art!

Sonic_BR
Usuário

Mensagens : 477
Data de inscrição : 25/04/2010
Idade : 18
Localização : Vitória da Conquista-BA

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Matheus290 em Dom 21 Ago 2011, 01:58

Primeiramente bem-vindo ao forum! Sinta-se em casa, mas seja um bom menino (xD)

NecroToad escreveu:1- Shader: Eu gostaria de adicionar shaders, tanto para as texturas, como na frame do openGL. Gostaria de colocar alguns shader como Bloom, HDR, Efeitos visuais de fogo, cellshading, etc...

Bom cara, não faço idéia. Eu acho que dá pra fazer mas precisa do HWA. O LeoDigaum pode te explicar melhor sobre isso.


NecroToad escreveu:2- Sombra: Gostaria de saber se existe algum modo de de calcular sombra em tempo real (independente da qualidade). Mesmo que fosse algo estilo Mario (apenas uma bola preta em baixo do personagem) até algo mais complexo que realmente projete a sombra no formato correto em outros modelos 3D.

A sombra só aquela bola preta mesmo. Você pode criar na forma de textura e posicionar no X=X do Active (no plano 2D), Y=0 e Z=Y do Active (no plano 2D). Depois altere o angulo da textura (não lembro qual. Vai testando lá).

O recomendado seria você usar sprite do OpenGL (não o Collection, aquele que é um Cubo Vermelho). Sim, ele é compatível com as outras extensões. Aí você coloca a sombra POR ELE. Dá uma olhada no 3D Maze para você entender como faz isso.


NecroToad escreveu:3- Imagens 2D: Todo jogo, mesmo sendo 3D, tem partes em 2D como balões de dialogo, contador de HP, Menu, etc... A extensão sprite object do OpenGL, posiciona uma imagem 2D no universo 3D, mas eu gostaria que essa imagem 2D ficasse sempre "por cima" do mundo 3D.

É a mesma coisa da sombra. Só que aí, você posiciona os sprites em 1 a mais da posição atual da câmera (você terá que usar Seno e Cosseno pra isso). Ou seja, (Posição X da câmera + Cos do Angulo da Câmera) e Posição Y da câmera - Sin do Angulo da Câmera). Aí você vai colocando os sprites na posição X e Y que você quiser.


Última edição por Matheus290 em Dom 21 Ago 2011, 17:33, editado 1 vez(es)



_____________________


Quer aprender em videos a criar jogos no MMF2/CF2.5? Clique aqui e conheça o canal da Fusion Makers no Youtube!

Conheça o Dropbox.
avatar
Matheus290
Administrador
Administrador

Mensagens : 709
Data de inscrição : 18/02/2010
Idade : 23
Localização : Bauru SP

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Sgt. Lucas em Dom 21 Ago 2011, 10:03

Hm...Então Sargento Lucas,passa a engine pra ele =)

Não fui eu que fiz a engine, e ela é de tiro em primeira pessoa(só a mãozinha).
Link:
http://dl.dropbox.com/u/30017410/Leukar%20Engine%20%28LIMITED%203D%20ENGINE%29.mfa

Eu estou estudando ela, o problema é que não tem texturas em 3D...
com exceção do cenário. Para testar você tem que apagar o leitor de nível e usar os sprites: "porta_chave1", "parede_base", "parede_ladrinho" e etc... que já vem tudo no arquivo.

Beleza então! Wink
Espero ter ajudado.
avatar
Sgt. Lucas
Usuário

Mensagens : 322
Data de inscrição : 11/09/2010
Idade : 18
Localização : Teresina

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Dom 21 Ago 2011, 12:23

Sonic_BR e Sgt. Lucas,

Obrigado pela dica, estou lnge do meu PC ate amanhã, então não poderei testar o exemplo, mas assim q for possivel eu teste e posto aqui os resultados! Wink


Matheus,

Bom cara, não faço idéia. Eu acho que dá pra fazer mas precisa do HWA. O LeoDigaum pode te explicar melhor sobre isso.

Pois eh, eu vi o exemplo dele no tópico do projetão, que ele mostra um modelo com cellshading. Se ele pudesse dar uma dica seria o ideal.



A sombra só aquela bola preta mesmo. Você pode criar na forma de textura e posicionar no X=X do Active (no plano 2D), Y=0 e Z=Y do Active (no plano 2D). Depois altere o angulo da textura (não lembro qual. Vai testando lá).

O recomendado seria você usar sprite do OpenGL (não o Collection, aquele que é um Cubo Vermelho). Sim, ele é compatível com as outras extensões. Aí você coloca a sombra POR ELE. Dá uma olhada no 3D Maze para você entender como faz isso.

Pois eh, eu imaginava q teria q fazer por "bolas preta" mesmo o efeito. Desculpe mas não entendi a sua sugestão para usar o OpenGL original (OpenGL não Collection) ao inves do Collection, qual a vantagem dele? Porque minha engine tem muitos modelos pesados que o openGL Collection trabalha melhor!
Existe alguma forma de calcular tudo pelo openGL Collection mas fazer as imagens serem exibidas no OpenGL Original?



É a mesma coisa da sombra. Só que aí, você posiciona os sprites em 1 a mais da posição atual da câmera (você terá que usar Seno e Cosseno pra isso). Ou seja, (Posição X da câmera + Cos do Angulo da Câmera) e Posição Y da câmera - Sin do Angulo da Câmera). Aí você vai colocando os sprites na posição X e Y que você quiser.

Vlw cara, tb era o que eu esperava, mas fiquei curioso se tinha alguma forma mais inteligente e menos gambiarra. Talvez se pudessemos pegar a imagem final calculada pelo OpenGL Collection e passar ela para ser exibida em outra extensão (OpenGL Original, Surface, Overlay, etc...) Pudessemos fazer o HUD colocando objetos na frente dessa extensão (ja q o OpenGL não suporta nenhum objeto na frente dele).
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por leodigaum em Dom 21 Ago 2011, 14:05

Estou meio ausente do forum pois começaram as aulas da facul e já tem uns trabalhos pra fazer, mas bem, eu tava lendo, sim, tudo isso é possivel, sombra seria o mais simples, so precisa usar o OpenGl Lighting e configurar a cor da sombra, ou da luz, e a posição da fonte de luz... etc.

Quanto aos shaders, isso ae é um tanto complexo e eu venho estudando no meu tempo vago, se vc deseja fazer efeitos no aplicativo, vc tera que usar HWA e utilizar os pacotes de efeitos utilizando no frame ou nos actives porem a extensao OpenGl não é compativel com HWA,porem o OpenGL tem seu proprio meio de executar os efeitos shaders, os shaders são ativados da seguinte forma.

OpenGL
1. New Program: x
Compile vertex shader: "seu_vertex_shader.fx" (program: x)
Compile fragment shader: "seu_fragment_shader.fx" (program: x)

2. Link shader program: x

3. User shader program: x


Veja que utilizei "seu_vertex_shader.fx" e "seu_fragment_shader.fx" e setei como program "X", esses nomes e variavel podem ser alterados conforme a sua necessidade, porem vc precisa criar os dois arquivos shaders e nomea-los como .fx, um exemplo basico de toon shader é este:

Código:

varying vec3 vNormal;
varying vec3 vVertex;
            void main(void)
{
 vVertex = gl_Vertex.xyz;
 vNormal = gl_Normal; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;}

Para o arquivo de vertex, e:

Código:
varying vec3 vNormal;
varying vec3 vVertex;

#define shininess 20.0

void main (void)
{
       
// Material Color:
vec4 color0 = vec4(0.8, 0.0, 0.0, 1.0);
       
// Silhouette Color:
vec4 color1 = vec4(0.0, 0.0, 0.0, 1.0);
       
// Specular Color:
vec4 color2 = vec4(0.8, 0.0, 0.0, 1.0);
           
// Lighting
vec3 eyePos = vec3(0.0,0.0,5.0);
vec3 lightPos = vec3(0.0,5.0,5.0);

vec3 Normal = normalize(gl_NormalMatrix * vNormal);
vec3 EyeVert = normalize(eyePos - vVertex);
vec3 LightVert = normalize(lightPos - vVertex);
vec3 EyeLight = normalize(LightVert+EyeVert);

// Simple Silhouette
float sil = max(dot(Normal,EyeVert), 0.0);
if (sil < 0.3) gl_FragColor = color1;
else
  {
  gl_FragColor = color0; 

  // Specular part
  float spec = pow(max(dot(Normal,EyeLight),0.0), shininess); 

  if (spec < 0.2) gl_FragColor *= 0.8;
  else gl_FragColor = color2; 
 
  // Diffuse part
  float diffuse = max(dot(Normal,LightVert),0.0);
  if (diffuse < 0.5) gl_FragColor *=0.8; 
  }
}
Para o arquivo de fragment, para obter outros codigos de shaders compativeis com essa extensão basta pesquisar por GLSL shaders.

Quanto aos sprites 2d, eu ainda n parei pra mexer nessa parte mas creio que seja facil resolver posicionando sempre os sprites na posição Z que corresponde a distancia entre o ponto de visão e a camera.


então é isso ^^
...
avatar
leodigaum
Usuário

Mensagens : 116
Data de inscrição : 12/06/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Dom 21 Ago 2011, 14:50

leodigaum,

Muito obrigado pela resposta. Acredito que com isso poderei temrinar meu teste.

So fiquei com uma duvida, no seu exemplo, vc trabalha com o vertex shader e o fragment shader, vcpode me explica a diferença entre ambos?
esse codigo q vc postou é qual linguagem de programação?


Sobre as sombras, o OpenGL Light pode apenas escurecer e clarear as faces dos objetos, mas eu gostaria de ume feito visual mais preciso de sombra, veja esse link:
youtube.com/watch?v=6wWCsCwbI_A

O OpenGL Light faz a sombra como é mostrado no começo do video! Eu gostaria de fazer um corpo projetar sombra sobre outro, ou sobre ele mesmo.

obrigado!
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por leodigaum em Dom 21 Ago 2011, 17:19

Bem, os shaders do OpenGL so trabalham com Vertex shader e Fragment shader, vertex são shaderes aplicados nos Vertex e Lines (pontos e linhas do objeto 3d) e fragment são os triangulos ou faces que formam um objeto 3d, o codigo é feito em GLSL que é uma linguagem processada pelas placas de video programadas para opengl.

Quanto ao efeito de sombra, o OpenGL Lighting tem todos esses parametros pra vc configurar e criar seu sombreamento, na extensão vc escolheria o tipo de luz e escolheria SpotLithg (ponto de luz) para fazer algo parecido com o video, porem eu ainda não mexi com isso, n posso lhe dizer de uma forma concreta como fazer, mas é capaz sim.

Porem vc pode fazer um metodo um tanto complexo, vc pode criar o mesmo objeto e inclina-lo ate a posição da sombra e usar apenas uma cor no que seria a sombra, no caso, preto.

create Objeto3D
create Objeto3D 2

Set angle Objeto3D 2: (Angle Objeto3D)+90


algo assim... pra melhorar, eh so setar uma semi-transparencia na copia q sera a sombra.
avatar
leodigaum
Usuário

Mensagens : 116
Data de inscrição : 12/06/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Dom 21 Ago 2011, 17:32

leodigaum,

Muito obrigado pela resposta novamente, testarei com calma tudo q foi dito e posto os feedbacks assim q possivel.

Uma ultima duvida, tem como colocar shader na imagem que foi renderizada no OpenGL, ou inves de colocar o shader nos modelos e nas texturas?
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Matheus290 em Dom 21 Ago 2011, 17:37

NecroToad, quando eu disse pra usar o OpenGL sozinho, eu disse pra usar ele JUNTO com as extensões do Collection. Ou seja, OpenGL (do cubo vermelho) junto com OpenGL MS3D, OpenGL Lighting e etc...

Tendeu?

LeoDigaum, dá pra fazer sombra no chão tipo os jogos atuais? Por exemplo:



Eu achava que só dava pra fazer com bola preta! Shocked



_____________________


Quer aprender em videos a criar jogos no MMF2/CF2.5? Clique aqui e conheça o canal da Fusion Makers no Youtube!

Conheça o Dropbox.
avatar
Matheus290
Administrador
Administrador

Mensagens : 709
Data de inscrição : 18/02/2010
Idade : 23
Localização : Bauru SP

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Dom 21 Ago 2011, 21:03

Matheus290,

Legal, bom saber que você pode juntar o OpenGL Collection com o OpenGL sozinho. Você tem algum exemplo que eu possa abrir e ver as linhas de programação que juntam o OpenGL Collection com o OpenGL sozinho?
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Matheus290 em Seg 22 Ago 2011, 12:49

Nem precisa de nada disso. É só você tirar o OpenGL Base e colocar o OpenGL sozinho no lugar.



_____________________


Quer aprender em videos a criar jogos no MMF2/CF2.5? Clique aqui e conheça o canal da Fusion Makers no Youtube!

Conheça o Dropbox.
avatar
Matheus290
Administrador
Administrador

Mensagens : 709
Data de inscrição : 18/02/2010
Idade : 23
Localização : Bauru SP

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por leodigaum em Seg 22 Ago 2011, 13:42

Lembrando que para utilizar shaders é necessario utilizar o OpenGL( ao inves do OpenGL base) só ele tem as opções para gerar programas de GLSL.
avatar
leodigaum
Usuário

Mensagens : 116
Data de inscrição : 12/06/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Seg 22 Ago 2011, 13:58

Legal galera,

A parte de shader e de exibir imagens em 2D ja foram resolvidas!

A unica coisa que falta fazer, que eu não estou conseguindo de forma alguma, é fazer uma sombra realista como no video q eu postei, e como na imagem que o Matheus postou!
Eu ja tentei mexer em todos os parametros do OpenGL Lighting, e ja tentei mexer nas configurações do OpenGL sozinho e não funcionou também!
Realmente não sei como resolver, e não entendo muito de script para pode dizer com certeza se é possivel ou não!

Outra coisa,a lguem sabe onde eu posso baixar shader para OpenGL para eu testar se deu certo mesmo?
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Matheus290 em Seg 22 Ago 2011, 23:18

Não tem como. Acho que a única forma seria usando OpenGL com XLua.

Ou sei lá.

Se fosse em apenas lugares planos, daria pra fazer como o LeoDigaum fez, pegar um modelo idêntico ao personagem, deixar ele com ZScale no 0 e rotacionar pra ficar plano.

Mas aí, se chega numa parede, ou numa escada, não funciona. Fica aquela sombra estranha.

Acho que só com XLua mesmo.



_____________________


Quer aprender em videos a criar jogos no MMF2/CF2.5? Clique aqui e conheça o canal da Fusion Makers no Youtube!

Conheça o Dropbox.
avatar
Matheus290
Administrador
Administrador

Mensagens : 709
Data de inscrição : 18/02/2010
Idade : 23
Localização : Bauru SP

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por NecroToad em Ter 23 Ago 2011, 15:42

leodigaum,

Vc entende de XLua o suficiente para criar um shadow mapping assim? Será que poderia me dar uma força?
avatar
NecroToad
Usuário

Mensagens : 40
Data de inscrição : 20/08/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por leodigaum em Ter 30 Ago 2011, 12:36

Entendo xLua n, to aprendendo linguagem C# agora na facul ^^
avatar
leodigaum
Usuário

Mensagens : 116
Data de inscrição : 12/06/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Shaders, sombra e imagem 2d para o OpenGL

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum