Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.20;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.151 c
14-1109022973
Igor_thief
2005-02-22 00:56
2005.03.20
Снова про тот же вирус


4-1107995867
FAQ
2005-02-10 03:37
2005.03.20
Как можно из Дельфи узнать скорости вращения вентиляторов ?


14-1109455157
Vasya.ru
2005-02-27 00:59
2005.03.20
Воскресные задачки


14-1109533310
Piter
2005-02-27 22:41
2005.03.20
Gmail и аттачи


3-1108557114
Arazel
2005-02-16 15:31
2005.03.20
Как показать на DELPHI связаную таблицу?