![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
GlScene Тень [Delphi, Windows]
-=SS=- © (2004-12-22 18:34:00)Возможно ли ?
Если да то подскажите как ?
Зараннее благодарен
kerby (2004-12-24 14:45:00) [1]сделай проще
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;
DeadMeat (2004-12-24 13:55:00) [2]Щас под рукой делфи нету, но так... на вскидку. Лучше вынеси GLShadowPlane1 из GlDummyCube1, и поставь не TagObject, а (насколько мне изменяет память) TargetObject:=GlDummyCube1;
И вообще, GLShadowPlane1 тоже самое (почти), что и GlPlane1. Так что можно его им заменить.
-=SS=- (2004-12-24 12:24:00) [3]
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;
kerby (2004-12-24 11:21:00) [4]код в студию
-=SS=- (2004-12-24 11:13:00) [5]Может я чего - то туплю но что - то у меня ничего не получается :(
kerby (2004-12-24 10:29:00) [6]ты просил структуру:
1)создаешь tgldummycube
2)в нем создаешь доску(tglplane) и фигуры(например freeform)
3) создаешь tglshadowplane с координатами и размерами как доска(tglplane) у него target указываешь на доску(tglplane)
PS/ Не забудь источник света
-=SS=- (2004-12-24 10:22:00) [7]:) Да... Буду теперь разбиратся...
> 1)dummycube-доска
> -фигуры
> 2)shаdowplane-координаты доски
> -target-доска
PS:Это как то хоть сделать ?
Можно на мыло примерчик (хотя бы с одной фигурой) плиз...
DeadMeat (2004-12-24 00:32:00) [8]А потом сможешь прикрутить и TGLShadowVolume, чтобы тень падала и на другие фигуры тоже...
Сделаешь блики, бампмэппинг, зеркальную (совсем слегка) поверхность самоей доски.
После всех этих украшательств сделай, чтобы они сами ходили, делали игру какую-нибудь. Но каждый раз разную, и долгую.
Все это оформишь как скринсейвер...
Это так. Идея. Должно получиться весьма красиво. Я сам хотел сделать нечто подобное, но все никак руки не доходили...
Удачи. Бум ждать.
---
...Death Is Only The Begining...
kerby (2004-12-23 12:53:00) [9]для твоего случая лучше всего shadowplane
1)dummycube-доска
-фигуры
2)shаdowplane-координаты доски
-target-доска
-=SS=- (2004-12-23 11:53:00) [10]Спасибо ...
Изучаю 3d графику... За основу взял GLScene. Как известно изучать необходимо на конкретном примере. Ничего проще как 3d шахматы придумать не смог. Так вот хочу сделать освещение с тенью. Чтобы от фигур на доску падала тень. Как это лутше сделать ? При этом какая иеархия объектов должна быть в GLScene1: TGLScene ?
Зараннее благодарен за оказаное внимание.
DeadMeat (2004-12-22 23:24:00) [11]Так спрашивай. Но конкретно. Так проще будет.
---
...Death Is Only The Begining...
-=SS=- (2004-12-22 23:05:00) [12]
> DeadMeat © (22.12.04 19:04) [1]
Спасибо да действительно нашёл ... Буду разбиратся ... правда пока что - то непонятно как это всё работает
-=SS=- (2004-12-22 23:05:00) [13]
> DeadMeat © (22.12.04 19:04) [1]
Спасибо да действительно нашёл ... Буду разбиратся ... правда пока что - то непонятно как это всё работает :(
DeadMeat (2004-12-22 19:04:00) [14]Возможно... Причем для этого (насколько мне известно) есть 5-пять методов:
1) TGLShadowPlane
2) TGLShadowVolume
3) TGLZShadows
4) Какой-то там с текстурами (точо не помню команду)
5) Самому
Тебя какой интересует?
Сразу скажу, что по первым 3-трем есть демки в основном пакете GLScene.
---
...Death Is Only The Begining...