![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Начало тумана [OpenGL]
Кефир87 © (2005-09-11 23:58:00)Никакие матричные преобразования не влияют на начало тумана, оно почему-то всегда в начале координат. А камера двигается и уплзает в туман. Ничего не видно. Как двигать туман? Ведь не буду же я все переделывать чтоб двигать сцены вокруг нуля 8)
Вот мои потуги:
procedure TCamera.Look;
begin
if stay_over then
begin
pos := targ^;
pos.y := 60;
pos.z := pos.z - 0.01;
end;
glDisable(GL_FOG);
glMatrixMode(GL_PROJECTION);
glLoadIdentity;
gluPerspective(fov, 4/3, 0.1, 10000.0);
gluLookAt(pos.x, pos.y, pos.z, targ^.x, targ^.y, targ^.z, 0.0, 1.0, 0.0);
glMatrixMode(GL_MODELVIEW);
glTranslatef(pos.x, pos.y, pos.z);
glEnable(GL_FOG);
end;
DR0N (2005-09-12 00:13:00) [21]Может я чего не допонял, но если задвать туман вот так:
procedure SetFog(Color : Integer; Fog_Start, Fog_End : single); stdcall;
var fogColor : Array [0..3] of GLFloat;
begin
fogColor[0]:=1.0*GetRValue(Color);
fogColor[1]:=1.0*GetGValue(Color);
fogColor[2]:=1.0*GetBValue(Color);
fogColor[3]:=1.0;
glEnable(GL_FOG);
glFogi (GL_FOG_MODE, GL_LINEAR);
glHint (GL_FOG_HINT, GL_NICEST);
glFogf (GL_FOG_START, Fog_Start);
glFogf (GL_FOG_END, Fog_End);
glFogfv (GL_FOG_COLOR, @fogColor);
end;
То как камеру не ставь он всегда будет как надо =)