Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2008, 09:28   #1
loozer
 
Регистрация: 04.12.2008
Сообщений: 5
Восклицание OpenGL, освещение

Ребят есть у кого нить проста прога осевщения обекта с использование OpenGL??????скиньте ПЖЛСТ!
loozer вне форума Ответить с цитированием
Старый 05.12.2008, 17:43   #2
hkdkest
Заблокирован
 
Регистрация: 28.11.2008
Сообщений: 6
По умолчанию

в прошлом году в иституте такие проги писали , не могу найти =(
hkdkest вне форума Ответить с цитированием
Старый 07.12.2008, 15:30   #3
loozer
 
Регистрация: 04.12.2008
Сообщений: 5
По умолчанию

плохо...очень надо(((
loozer вне форума Ответить с цитированием
Старый 17.12.2008, 19:09   #4
loozer
 
Регистрация: 04.12.2008
Сообщений: 5
Восклицание Подскажите как сделать чтоб освещение было не только по вертикали но и по горизотале!!!!

var
p: TGLArrayf4;
d: TGLArrayf3;
www,www1,ppp:real;
xx,yy,zz:real;

Form1: TForm1;
ghRC:HGLRC;
ghDC:HDC;
key:array [1..256] of word;
dx,dy,x,y,vx,vy,vzouble;
texture:tbitmap;

implementation
function bSetupPixelFormat(DC:HDC):boolean;
var
pfd:PIXELFORMATDESCRIPTOR;
ppfd:PPIXELFORMATDESCRIPTOR;
pixelformat:integer;
begin
ppfd := @pfd;
ppfd.nSize := sizeof(PIXELFORMATDESCRIPTOR);
ppfd.nVersion := 1;
ppfd.dwFlags := PFD_DRAW_TO_WINDOW xor
PFD_SUPPORT_OPENGL xor
PFD_DOUBLEBUFFER;
ppfd.dwLayerMask := PFD_MAIN_PLANE;
ppfd.iPixelType := PFD_TYPE_RGBA;
ppfd.cColorBits := 16;
ppfd.cDepthBits := 16;
ppfd.cAccumBits := 0;
ppfd.cStencilBits := 0;
pixelformat := ChoosePixelFormat(dc, ppfd);
if pixelformat=0 then
begin
MessageBox(0, 'ChoosePixelFormat failed', 'Error', MB_OK);
bSetupPixelFormat:=FALSE;
exit;
end;
if SetPixelFormat(dc, pixelformat, ppfd)=false then
begin
MessageBox(0, 'SetPixelFormat failed', 'Error', MB_OK);
bSetupPixelFormat:=FALSE;
exit;
end;
bSetupPixelFormat:=TRUE;
end;

{$R *.dfm}
procedure Draw;
var
quadObj:GLUquadricObj;
i:integer;
begin
x:=x+dx;

glClear(GL_DEPTH_BUFFER_BIT xor GL_COLOR_BUFFER_BIT);//очистка области рисования
quadObj:=gluNewQuadric; //создание стандартного объекта
glColor3f(0,0,2);//установка цвета RGB
gluQuadricDrawStyle(quadObj, GLU_line);//стиль рисования
gluSphere(quadObj, 7,10,10);//параметры КРУГА
gluDeleteQuadric(quadObj);
SwapBuffers(ghDC);

end;


procedure TForm1.FormCreate(Sender: TObject);
type
PPixelArray = ^TPixelArray;
TPixelArray = array [0..0] of Byte;

var
Bitmap : TBitmap;
Data : PPixelArray;
BMInfo : TBitmapInfo;
I, ImageSize : Integer;
Temp : Byte;
MemDC : HDC;

begin
dx:=0.01;
dy:=0.01;
x:=0;
y:=0;
// начальные координаты лампочки
xx:=-10;
yy:=-1;
zz:=-1;

ghDC := GetDC(Handle);
if bSetupPixelFormat(ghDC)=false then Close();
ghRC := wglCreateContext(ghDC);
wglMakeCurrent(ghDC, ghRC);
glClearColor(0.0, 0.0, 0.0, 0.0);
glViewport( 0, 0, Width, Height );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glOrtho(-10,10, -10,10, -10,10);//пространство для рисования
gluLookAt(0,6,2, 0,1,0, 0,1,0);
glMatrixMode( GL_MODELVIEW );
glShadeModel(GL_SMOOTH);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);//создать лампочку
p[0]:=-xx;
p[1]:=-yy;
p[2]:=-zz;
p[3]:=1;
d[0]:=-100;
d[1]:=-10;
d[2]:=-10;
www:=0;
www1:=0;
glLightfv(GL_LIGHT0,GL_POSITION,@p) ;
glLightfv(GL_LIGHT0,GL_SPOT_DIRECTI ON,@d);
glrotatef(10,10,10,1); //модель изображения
end;

procedure TForm1.Formclose(Sender: TObject; var Action: TCloseAction);
begin
//освобождения блятской памяти
if ghRC<>0 then
begin
wglMakeCurrent(ghDC,0);
wglDeleteContext(ghRC);
end;
if ghDC<>0 then
ReleaseDC(Handle, ghDC);

end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
www:=www+0.5; //скорость ист.света
if www>360 then
begin
www:=0;
end;
p[0]:=sin(www/(2*pi))*15;
p[1]:=cos(www/(2*pi))*15;
glLightfv(GL_LIGHT0,GL_POSITION,@p) ;
draw;
end;


end.
loozer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
3D и OpenGl Dj_smart Gamedev - cоздание игр: Unity, OpenGL, DirectX 12 29.10.2017 11:31
OpenGL yanl Компьютерное железо 0 16.11.2008 00:52
OpenGL Witaliy Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 01.05.2008 21:05
OpenGL prizrak1390 Свободное общение 2 07.04.2008 13:43
OpenGL Nbveh Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 25.10.2007 18:56