Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
9-1103555406
Макс
2004-12-20 18:10
2005.03.20
vectorgeometry


4-1107547186
AlTsy
2005-02-04 22:59
2005.03.20
SendMessage в "чужую" программу


14-1109612601
}|{yk
2005-02-28 20:43
2005.03.20
По поводу Евровидения-2005


3-1108713884
Sour
2005-02-18 11:04
2005.03.20
В триггере узнать какие поля обновились


14-1109338938
diww
2005-02-25 16:42
2005.03.20
глючит ICQ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский