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

Вниз

Glscene Как создавать TGLFreeForm в рантайме ?   Найти похожие ветки 

 
массив   (2004-09-09 01:25) [0]

Делаю так :

var
 B1 : TGLBDCEBody;
 F1 : TGLFreeForm;

...

 F1 := TGLFreeForm.Create(GLDummyCube1);
 B1 := (F1.Behaviours.GetOrCreate(TGLBDCEBody)) as TGLBDCEBody;
 B1.Friction := 5;
 B1.Shape    := csFreeform;
 B1.Manager  := DCEManager1;
 F1.MaterialLibrary := GLMaterialLibrary1;
 F1.LoadFromFile("..\..\media\Map.3ds");
 F1.BuildOctree;


В результате Map.3ds почему-то невидна. Хотя Octree создаются, и пройти через них нельзя. А из за того, что Map.3ds невидна, то просто упираешься в определённых местах в воздух, и не можешь пройти. В чём я ошибаюсь ?


 
miek   (2004-09-09 08:06) [1]

Нужно в свойствах библиотеки указывать texturepaths


 
kerby   (2004-09-09 10:40) [2]

F1:=TGLFreeform(GlDummycube1.AddNewChild(TGLFreeform));
with F1 do
begin

//параметры

end;


 
dimodim   (2004-09-09 22:45) [3]


>  B1.Manager  := DCEManager1;

?


 
DeadMeat ©   (2004-09-09 23:57) [4]

Это новинка... Недавно внесли... Крутая весчь однако...

---
...Death Is Only The Begining...


 
массив   (2004-09-10 01:44) [5]


> kerby   (09.09.04 10:40) [2]
> F1:=TGLFreeform(GlDummycube1.AddNewChild(TGLFreeform));

Спасибо ! Так работает.


> dimodim   (09.09.04 22:45) [3]
>
> >  B1.Manager  := DCEManager1;
>
> ?

Это из демки dceDemo.dpr в папке Demos. Появилась на CVS четыри дня назад.


> DeadMeat ©   (09.09.04 23:57) [4]
> Это новинка... Недавно внесли... Крутая весчь однако...

Там используется Map.3ds, а я этот файл переделал, сделав в нём
"дверь", и этажи. Теперь можно выходить наружу и подниматься на крышу. :)
Причём работает всё давольно шустро, можно создать микрорайон домов из пятнадцати, создавая их в цикле со сдвигом.

В принципе можно сваять что-то типа Сэма. Огромное плоское пространство, и на нём редкие объекты. Плохо только, что эта штука не поддерживает вращения ( или я просто не нашёл ? ), так, что ГТА с его машинами и мотоциклами сделать неполучится.

Но всё равно это прорыв, которого так долго ждали большевики.


 
DeadMeat ©   (2004-09-10 18:34) [6]

Какое вращение?

А вообще лучше использовать OpenBSP проект. Там есть компилятор и он может из *.MAP файлов делать *.BSP но своим образом. Также поддерживает карты от Doom3, MultiThreading, RecyleMM и много чего еще будет поддерживать...

---
...Death Is Only The Begining...


 
массив   (2004-09-11 01:13) [7]


> DeadMeat ©   (10.09.04 18:34) [6]
> Какое вращение?

Вращение автомобиля в процессе катастрофы. Его наклоны при движении по наклонным поверхностям, заносы, прыжки, и прочее.

Это для актёра достаточно только перемещения по трём координатам, а для машины или мотоцикла, нужна ещё физика вращения. Не инерция, а моменты инерции, не скорость, а угловая скорость, и так далее. Понимаешь ?


 
DeadMeat ©   (2004-09-11 01:18) [8]

Ну тады ODE...

Глянь тут
http://www.k00m.sexidude.com/LastDemo.rar

---
...Death Is Only The Begining...


 
DeadMeat ©   (2004-09-11 01:18) [9]

Есть еще Newton physics.
Но на него примеров мало...

---
...Death Is Only The Begining...


 
массив   (2004-09-11 05:55) [10]

ODE - слишком сложно в использовании. Кода много писать надо, как чего грузить, как сохранять - непонятно.
DCE как раз подкупает простотой.


 
DeadMeat ©   (2004-09-11 11:29) [11]

Ну в начале да. Но там (у ODE) есть куча примеров...
Да и к тому же встроенный ODE тоже не очень то и плох, вот только глючит его иногда. Зато просто подключать к объектам...

---
...Death Is Only The Begining...


 
массив   (2004-09-12 01:29) [12]

Посмотерел http://www.k00m.sexidude.com/LastDemo.rar
Управление левое, изменить нельзя. Исходника нет. А если бы и был, то коду наверное на мегабайт, как в других демках того же автора. Как он только, бедный, ошибки ищет в таких огромных исходниках ?
А если бы надо было добавить ещё несколько машин ? В общем это путь для героев.

В DCE добавил в элипс модель из ХалфЛайфа, на скорости практически не сказалось. Только выглядит как-то нереалистично. Как будто человек в воздухе висит.

Хочу сделать, чтобы камера не заезжала в стены. Как это делают ? Как можно проверить есть ли между камерой и Актёром посторонние объекты или нет ?


 
DeadMeat ©   (2004-09-12 12:08) [13]

Насчет гонок, то исходник есть. Если надо, то пиши, я его тебе вышлю... Но там действительно засада...

Сделай ей такой же DCE Behavior...
Только отдельный, чтобы без гравитации...

---
...Death Is Only The Begining...


 
массив   (2004-09-13 01:30) [14]


> DeadMeat ©   (12.09.04 12:08) [13]
> Насчет гонок, то исходник есть. Если надо, то пиши, я его
> тебе вышлю... Но там действительно засада...

Благодарю, но ненадо. Раз засада, то лень разбираться.
Программы этого автора, на мой взгляд, образцовые примеры неправильного проектирования проэктов. Надо не валить всё в кучу, а по мере нарастания кода, оформлять его в виде отдельных компонентов, да модулей, для удобных работы. Тогда бы получилась некая надстройка над GLScene.


> Сделай ей такой же DCE Behavior...
> Только отдельный, чтобы без гравитации...

А если стена заедет между актёром и камерой ? Думаю лучше сделать вторую камеру на уровне глаз, и если с первой камеры Актёр невиден, то автоматически переключаться на вторую. Только вот как проверить видимость Актёра с камеры пока не знаю.

Чтобы Актёр не казался висящим в воздухе, сделал ему тень. TGLShadowPlane. Только возникают проблемы с прыжками и подениями. Если прыгаешь с небоскрёба, то тень же не должна быть под ногами, а должна быть где-то далеко внизу.
Другая проблема с тенью, если стоишь на наклонной поверхности, то часть тени оказывается внутри неё, и пропадает из виду.

В каких файлах в ХалфЛайфе хранится оружие ? А то модели какие-то безоружные. А в некоторых файлах оружие есть, но оно почему-то вместе с руками.


 
DeadMeat ©   (2004-09-13 10:05) [15]


Только вот как проверить видимость Актёра с камеры пока не знаю

Есть такая функция IsVolumeClipped. Так вот с помощью нее можно проверить виден объект или нет.
Ей нужен rcci, который можно получить следующим образом:
1) Ставишь перед объектом TGLDirectOpenGL
2) В его OnRender берешь rci.rcci и передаешь в IsVolumeClipped


В каких файлах в ХалфЛайфе хранится оружие ? А то модели какие-то безоружные. А в некоторых файлах оружие есть, но оно почему-то вместе с руками

Ой... Щас точно не помню. Приду домой гляну...
А насчет того, что вместе с руками, так это для вида от первого лица...
Глянь мою демку с конкурса по Paratrooper на http://code.rpro.ru
Там я использовал одну из моделек...


 
DeadMeat ©   (2004-09-13 10:06) [16]

По поводу теней.
Есть два варианта:
1) TGLVolumeShadows
2) Отключай GL_DEPTH_TEST перед рисованием тени. Хотя это намного тяжелее сделать...


 
массив   (2004-09-14 02:04) [17]


> DeadMeat ©   (13.09.04 10:05) [15]
>
> Только вот как проверить видимость Актёра с камеры пока
> не знаю
>
> Есть такая функция IsVolumeClipped. Так вот с помощью нее
> можно проверить виден объект или нет.
> Ей нужен rcci, который можно получить следующим образом:
> 1) Ставишь перед объектом TGLDirectOpenGL
> 2) В его OnRender берешь rci.rcci и передаешь в IsVolumeClipped

Оказывается можно проще :
 Caption := (GLSceneViewer1.Buffer.GetPickedObject(GLSceneViewer1.Width div 2, GLSceneViewer1.Height div 2) as TGLCustomSceneObject).Name;

Только возникает проблема. Когда Актёр прыгает, то он уходит из центральной точки GLSceneViewer"а.


> DeadMeat ©   (13.09.04 10:06) [16]
> По поводу теней.
> 2) Отключай GL_DEPTH_TEST перед рисованием тени. Хотя это
> намного тяжелее сделать...

А где он там отключается в TGLShadowPlane ?


> 1) TGLVolumeShadows

Если речь о TShadowVolume, то тормозит он.


> Глянь мою демку с конкурса по Paratrooper на http://code.rpro.ru

Что-то не нашёл там. Только условия конкурса. Какой прямой линк ?

Где бы надыбать домов, всяких, стен, башен, мостов, и прочих сооружений ? Чтобы там треугольников поменьше было.
И каким бы редактором эти объекты на карте расставить ?


 
DeadMeat ©   (2004-09-14 19:51) [18]


> Какой прямой линк ?

http://code.rpro.ru/konkurses/paratrooper.rar


> А где он там отключается в TGLShadowPlane ?

В принципе он сам оключается в NoZWrite.
Можно еще сделать glDisable (GL_DEPTH_TEST) в его обработчике OnBeginRenderingShadows и вернуть (glEnable (GL_DEPTH_TEST) в OnEndRenderingShadows.
Еще как вариант поставить перед ним и после него TGLDirectOpenGL и в нем сделать тоже самое...
Сложность заключается в том, что все это надо скомпоновать с другими элементами сцены...

---
...Death Is Only The Begining...


 
массив   (2004-09-15 01:39) [19]

Насчёт изготовления пуль - непойму, как сделать, чтобы на них не действовала гравитация ? А то падают они у меня на землю, почти сразу после выстрела.
Приложить же силу противоположенную гравитации - не пойму как.

Или как вообще должны выглядеть выстрелы ? Можно как в Сэме, с медленно летящими пулями, а можно как в GTA, с просто тёмными полосками - следами выстрелов. Как лучше ?
В ГТА реалистичнее, но увернуться от такого выстрела - невозможно.


 
массив   (2004-09-17 04:53) [20]


> DeadMeat ©   (14.09.04 19:51) [18]
>
> > Какой прямой линк ?
>
> http://code.rpro.ru/konkurses/paratrooper.rar

Там оказывается все демки, которые им присылали. А я сразу не понял. Запустил какую-то, там коровки бегают, запустил другую, там что-то типа паратрупера, вообще позор. Думаю, зачем это ?

А тут решил ещё раз, посмотреть и понял в чём дело. :) В конкурсе победил паратрупер. :)))))

Кстати, у тебя дым от выстрела тормозит. Где то от 200fps до 30. Это можно как-нибудь улучшить ? А так вообще не плохо.


 
массив   (2004-09-17 10:29) [21]



 
DeadMeat ©   (2004-09-17 17:10) [22]

Конечно можно...
В настройках есть все... (ну или почти все)

---
...Death Is Only The Begining...


 
массив   (2004-09-18 01:15) [23]


> DeadMeat ©   (17.09.04 17:10) [22]

Небольшой совет.

Ты пишешь :
 if (updatepower=true) and ...
А между тем это-же можно записать и так:
 if updatepower and
Экономия в семь ненужных символов. Сама фраза "= True" просто не имеет смысла. Это как прибавлять ноль или умножать на единицу.


 
DeadMeat ©   (2004-09-18 14:19) [24]

Да знаю, знаю... Мне многие это говорят. Но я просто привык. Да и на взгляд, сразу видно... ;)
Привычка - дело страшное... У меня там еще много таких косяков...

---
...Death Is Only The Begining...



Страницы: 1 вся ветка

Текущий архив: 2005.01.09;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.043 c
14-1103403608
none
2004-12-19 00:00
2005.01.09
Любите ли Вы орфографию, и шибко ли?


3-1102482943
self001
2004-12-08 08:15
2005.01.09
выделить цветом поле в dbgrid


9-1085626647
Kair
2004-05-27 06:57
2005.01.09
GLScene


8-1096901011
sergvc
2004-10-04 18:43
2005.01.09
Распечатать изображение на принтере


4-1101283739
Sav1977
2004-11-24 11:08
2005.01.09
Windows