Jest taki problem dwie kule, jedna większa druga mniejsza,mniejsza działa jak słońce (czyli "świeci" :) i oświetla drugą kule, większa kula jest scieniowana no i rzuca cien, dla utrudnienia słoneczko jeszcze sie obraca wokół większej. Rozbije to na dwa podproblemy: scieniowanie kuli i animacja ruchu kulki. Z góry dziękuje za pomoc. Interesuje mnie algorytm cieniowania oraz metoda animacji ruchu bryły
Najlepiej byłoby użyć DirectX lub jeszcze lepiej OpenGL.
Jeżeli jednak potrzebujesz konkretnego algorytmu to poszukaj:
- ray-tracing
- gouard shading (chyba tak się pisze)
- flat shading (co do tego to ew. mógłbym poszukać algorytmu, bo gdzieś w książce mam, jednak efekty nie najciekawsze)
co do tych efektów radzę zobaczyć na gotowce biblioteki Open GL
pod delphi jest komponent wykorzystujący tę bibliotekę..
a nieda sie tego zrobić w Delphi że aż trzeba sięgać po oGL. ale chyba już coś wymyśliłem korzystając z rzutu równoległego ortogonalnego i nie-, więc sprawe cieniowania mam już załatwioną; zostaje mi jeszcze jak ruszyć "słoneczko" wokół kuli na definiowanej wysokości i odległości.
wszystko da się w delphi jednak wybór biblioteki ma wpływ na szybkość działania programu...
Czy może mi ktoś powiedzieć czemu ten fragment programu nic nierobi??
procedure Tprojekt.putpixel(a:integer;b:integer;c:TColor);
begin
image1.canvas.pixels[a+(image1.width div 2),-b+(image1.height div 2)]:=c;
end;
procedure Tprojekt.oswietlenie(a:integer;b:integer);
var k:TColor;
rp,m,n:integer;
R:byte;
i:real;
begin
k:=clblack;
rp:=1;
R:=GetRValue(k);
while rp!!!