Gostaria de saber se é possível configurar um nevoeiro nas coordenadas de um jogador (onde há nevoeiro ao redor do jogador para torná-lo mais em terceira pessoa) a principal razão pela qual pergunto isso é porque eu tenho meu jogador mais no canto superior direito da tela. a tela
Aqui está um código que pode lhe dar um guia sobre o que estou fazendo:
glEnable(GL_FOG) GLfloat FogColor[] = {0.8,0.8,0.8,1.0};
glFogfv(GL_FOG_COLOR,FogColor);
glFogi(GL_FOG_MODE,GL_LINEAR);
glFogf(GL_FOG_START,30);
glFogf(GL_FOG_END,);
glHint(GL_FOG_HINT,GL_NICEST);
e eu quero que o nevoeiro siga um jogador com uma posição como dito em
posX,posY,posZ
Se alguém puder transformar isso em algum código de exemplo que seria muito útil, obrigado
Se isso não for possível, como eu configuraria o nevoeiro para ficar em torno de uma determinada posição da câmera, como mostrar no canto superior direito da câmera em vez do centro?
Aqui está uma imagem da tela do jogo para que você possa ver do que estou falando:
Use coordenadas de nevoeiro. http://www.opengl.org/registry/doc/fog_coord.txt
Normalmente, o valor do nevoeiro é calculado usando um fator de distância do olho ao pixel 'c'. Com efeito, a densidade do nevoeiro é uma função da distância.
f = exp (-d * c) - GL_EXP2
f = exp (- (d * c) ^ 2) - GL_EXP
f = (ec) / (es) - GL_LINEAR
As coordenadas de neblina permitem definir o valor 'c' da equação e especificar valores diretamente para isso. Se você deseja configurar o embaçamento para que 0 -> sem embaçamento, 1,0 -> mais embaçamento, faça:
Então, quando você renderizar sua pessoa, use glFogCoordfEXT ()
Editar: Uma alternativa sem extensão é desativar o nevoeiro ao renderizar tudo e, em seguida, ativar o nevoeiro com distâncias de início / fim apropriadas ao renderizar seu personagem.
fonte