Jeg arbejder helt vildt på at få siden op at stå - men tro mig det er et stort arbejde. Sidens navn er nu offentligt gjort og hedder følgende:
www.opengl-delphi.dkEn dansk side for folk der har hang til at lave 3D Grafik...
Nå, men nok om det! Har jeg forstået dig rigtigt så har du erhvervet dig bogen \"Delphi developers guide to OpenGL\" (et godt valg - den eneste)...
Men kan ikke få hans eksempler til at virke...
Dette eksempel forudsætter at der forefindes følgende i dit projekt:
OpenGL1: TOpenGL;
Light1: TLight;
Transform1: TTransform;
Skriv i din form\'s onCreate event følgende:
...
procedure TForm1.FormCreate(Sender: TObject);
begin
glenable(gl_lighting);
transform1.tranz := -10.0;
end;
...
Skriv så dette i din forms onPaint event:
...
procedure TForm1.FormPaint(Sender: TObject);
begin
glclear(gl_color_buffer_bit or gl_depth_buffer_bit);
glviewport(0,0,clientheight,clientheight);
transform1.apply;
opengl1.swap;
opengl1.errorcheck(\'FormPaint\');
end;
...
Dette i din forms onResize event:
...
procedure TForm1.FormResize(Sender: TObject);
begin
if opengl1.smaller then FormPaint(sender);
end;
...
og dette i Transform1 onPaint event:
...
procedure TForm1.Transform1Paint(Sender: TObject);
begin
//her kan indsættes et mesh til eventuelt icon for dit lys - hvilket er en stor fordel!!!
light1.apply;
end;
...
Prøv så at ændre Light1.position til True;
...
skriv så følgende i din forms onkeydown event:
...
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_up: transform1.tranz := transform1.tranz+0.5;
vk_down: transform1.tranz := transform1.tranz-0.5;
vk_left: transform1.tranx := transform1.tranz+0.5;
vk_right: transform1.tranx := transform1.tranz-0.5;
end;
formpaint(sender);
end;
...
Det var vist det! når du compiler og trykker på pil-op skulle lyset flytte sig væk fra viewporten og modsat vej på pil-ned. Pil-venstre flytter lyset til venstre og pil-højre flytter lyset i modsat retning.
ZeroHero