Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Вниз

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. Это можно как-нибудь улучшить ? А так вообще не плохо.


 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.034 c
4-1101218492
snake1977
2004-11-23 17:01
2005.01.09
Активность кнопки


8-1096797823
Abcdef
2004-10-03 14:03
2005.01.09
HBITMAP


8-1092253140
Константинов
2004-08-11 23:39
2005.01.09
Измерение уровня звукового сигнала.


11-1085054241
Ann
2004-05-20 15:57
2005.01.09
исходники mirror, mckObjs, mckCtrls, mcKACMIn, mckSoundctl


4-1100957096
Nomolos
2004-11-20 16:24
2005.01.09
Аналог папки Fonts





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский