Форум: "Игры";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
ВнизGlScene Тень Найти похожие ветки
← →
-=SS=- © (2004-12-22 18:34) [0]Возможно ли ?
Если да то подскажите как ?
Зараннее благодарен
← →
DeadMeat © (2004-12-22 19:04) [1]Возможно... Причем для этого (насколько мне известно) есть 5-пять методов:
1) TGLShadowPlane
2) TGLShadowVolume
3) TGLZShadows
4) Какой-то там с текстурами (точо не помню команду)
5) Самому
Тебя какой интересует?
Сразу скажу, что по первым 3-трем есть демки в основном пакете GLScene.
---
...Death Is Only The Begining...
← →
-=SS=- © (2004-12-22 23:05) [2]
> DeadMeat © (22.12.04 19:04) [1]
Спасибо да действительно нашёл ... Буду разбиратся ... правда пока что - то непонятно как это всё работает
← →
-=SS=- © (2004-12-22 23:05) [3]
> DeadMeat © (22.12.04 19:04) [1]
Спасибо да действительно нашёл ... Буду разбиратся ... правда пока что - то непонятно как это всё работает :(
← →
DeadMeat © (2004-12-22 23:24) [4]Так спрашивай. Но конкретно. Так проще будет.
---
...Death Is Only The Begining...
← →
-=SS=- © (2004-12-23 11:53) [5]Спасибо ...
Изучаю 3d графику... За основу взял GLScene. Как известно изучать необходимо на конкретном примере. Ничего проще как 3d шахматы придумать не смог. Так вот хочу сделать освещение с тенью. Чтобы от фигур на доску падала тень. Как это лутше сделать ? При этом какая иеархия объектов должна быть в GLScene1: TGLScene ?
Зараннее благодарен за оказаное внимание.
← →
kerby (2004-12-23 12:53) [6]для твоего случая лучше всего shadowplane
1)dummycube-доска
-фигуры
2)shаdowplane-координаты доски
-target-доска
← →
DeadMeat © (2004-12-24 00:32) [7]А потом сможешь прикрутить и TGLShadowVolume, чтобы тень падала и на другие фигуры тоже...
Сделаешь блики, бампмэппинг, зеркальную (совсем слегка) поверхность самоей доски.
После всех этих украшательств сделай, чтобы они сами ходили, делали игру какую-нибудь. Но каждый раз разную, и долгую.
Все это оформишь как скринсейвер...
Это так. Идея. Должно получиться весьма красиво. Я сам хотел сделать нечто подобное, но все никак руки не доходили...
Удачи. Бум ждать.
---
...Death Is Only The Begining...
← →
-=SS=- © (2004-12-24 10:22) [8]:) Да... Буду теперь разбиратся...
> 1)dummycube-доска
> -фигуры
> 2)shаdowplane-координаты доски
> -target-доска
PS:Это как то хоть сделать ?
Можно на мыло примерчик (хотя бы с одной фигурой) плиз...
← →
kerby (2004-12-24 10:29) [9]ты просил структуру:
1)создаешь tgldummycube
2)в нем создаешь доску(tglplane) и фигуры(например freeform)
3) создаешь tglshadowplane с координатами и размерами как доска(tglplane) у него target указываешь на доску(tglplane)
PS/ Не забудь источник света
← →
-=SS=- © (2004-12-24 11:13) [10]Может я чего - то туплю но что - то у меня ничего не получается :(
← →
kerby (2004-12-24 11:21) [11]код в студию
← →
-=SS=- © (2004-12-24 12:24) [12]
var
Form1: TForm1;
GlDummyCube1 : TGlDummyCube;
GlPlane1 : TGlPlane;
GlCube1 : TGlCube;
GLShadowPlane1 : TGlShadowPlane;
GlLight1 : TGLLightSource;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
GlDummyCube1 := TGlDummyCube(GLScene1.Objects.AddNewChild(TGLDummyCube));
GlPlane1 := TGlPlane(GlDummyCube1.AddNewChild(TGLPlane));
GlPlane1.Width := 9;
GlPlane1.Height := 9;
GlCube1 := TGLCube(GlDummyCube1.AddNewChild(TGLCube));
GlCube1.Position.Y := 1;
GLShadowPlane1 := TGlShadowPlane(GlDummyCube1.AddNewChild(TGLShadowPlane));
GLShadowPlane1.Width := 9;
GLShadowPlane1.Height := 9;
GLShadowPlane1.TagObject := GlPlane1;
GlLight1 := TGLLightSource(GlDummyCube1.AddNewChild(TGLLightSource));
GlLight1.Position.X := 2;
GlLight1.Position.Y := 2;
← →
DeadMeat © (2004-12-24 13:55) [13]Щас под рукой делфи нету, но так... на вскидку. Лучше вынеси GLShadowPlane1 из GlDummyCube1, и поставь не TagObject, а (насколько мне изменяет память) TargetObject:=GlDummyCube1;
И вообще, GLShadowPlane1 тоже самое (почти), что и GlPlane1. Так что можно его им заменить.
← →
kerby (2004-12-24 14:45) [14]сделай проще
procedure TForm1.FormCreate(Sender: TObject);
var dc:TGLDummyCube;
var sp:TGLSphere;
var pl:tglplane;
var sh:TGLShadowPlane;
begin
dc:=TGLDummyCube(GLScene1.Objects.AddNewChild(TGLDummyCube));
with dc do
begin
end;
sp:=TGLSphere(dc.AddNewChild(TGLSphere));
with sp do
begin
Position.SetPoint(0,3,0);
end;
sh:=TGLShadowPlane(GLScene1.Objects.AddNewChild(TGLShadowPlane));
with sh do
begin
Width:=10;
Height:=10;
PitchAngle:=50;
ShadowedLight:=GLLightSource1;
ShadowingObject:=dc;
Material.Texture.Image.LoadFromFile("test.bmp");
Material.Texture.Disabled:=false;
end;
end;
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.035 c