#2 Re: Вопросы и ответы » Уничтожение объектов » 2022-03-21 18:42:51

Да я так и делаю Proxy object Proxy actor, но несмотря на то, что мои деревья, тава, кусты - бревна obj все равно когда их становиться видно фпс падает вдвое, думаю уже бросать проект

#3 Re: В процессе разработки » Xtreme3D Editor » 2022-03-21 18:40:37

Ну вы же делаете gm 3d на совершенно новых технологиях с нуля?

#4 Вопросы и ответы » Теневые карты » 2022-03-19 19:21:18

Глеб
Ответов: 2

Все же так и не удалось сделать тени на карте, может быть проблема в том, что freeform не показывает на себе тени? Это работает только на примитивах? Или я что-то не так делаю?

#5 Re: Вопросы и ответы » Порядок прорисовки » 2022-03-19 19:16:56

Да, но только оговорка - ниже alpha test будет не отображаться вообще, а выше будет считаться полностью непрозрачным, верно?

#6 Re: Вопросы и ответы » Уничтожение объектов » 2022-03-19 18:57:48

Нет это не баг я проверил. Дело в том что после уничтожения объекта в степе на следующих строчках еще были функции с этим объектом
То есть уничтожение объекта должно быть самой последней ссылкой в степе на объект-xtreme. Если будет еще этот объект вызываться после в степе тогда игра зависнит или вылетит

#7 Re: Вопросы и ответы » Уничтожение объектов » 2022-03-19 18:19:07

Просто в одном объекте не создашь количество нужных xtreme-объектов приближенной к бесконечности, в отличии от создания нового объекта-gm. Таких может быть бесчисленное множество. А делать все в объекте engine дает скончаемое количество (так как каждый xtreme-объект имеет свое имя).
К тому же я использую direction объекта для его поворота по Y и x y гамака, для передвижения. Остается только ObjectSetPosition(object,x,Y,y); Мне это нужно для движения и вычислений функций гамака, которые не стыкуются с объектами xtreme (например instance_nearest(x,y,object)) и их проще выставить в комнате (если они привязаны к x y). Есть какой-то другой способ о котором я не знаю?
Это может быть не баг если после события аларм происходит чтение из события степа объекта. Это может быть так? У меня в событии аларм уничтожается объект, а в степе еще есть функции с этим объектом.

#8 Re: Вопросы и ответы » Уничтожение объектов » 2022-03-19 17:41:04

я делаю вот так: ObjectDestroy(object);instance_destroy();
У меня есть разные объекты самого гамака и объекты xtreme внутри их
Я использую o_engine для создания объектов xtreme, потом создаю объект gm и в нем Proxy нужного объекта, чтобы каждый раз не загружать новый, потом его удаляю после использования (взрыва), но при удалении вылетает в редактор или зависает до завершения программы, я убрал удаление xtreme объекта и больше не вылетает. Но объект xtreme остается.

#9 Вопросы и ответы » Уничтожение объектов » 2022-03-19 17:06:18

Глеб
Ответов: 9

Столкнулся с проблемой уничтожения объектов. Когда это происходит игра вылетает после зависания. Но оставлять объекты мне не нужно, их может быть бесчисленное количество. В справке написано что уничтожать объекты безопасно если нету потомков и у некоторых объектов свои функции уничтожения. У меня нету у этих объектов потомков, но все равно вылетает из игры. Как очистить эти объекты? Ведь нужно экономить память, потому что если их не удалять а просто скрывать то это наверное приведет к неблагоприятному.

#10 Re: Вопросы и ответы » Порядок прорисовки » 2022-03-19 14:13:04

Ясно. Спасибо)
А как бороться с z-буфером? Когда полупрозрачные изображения на моделях пересекают друг-друга. Например куст состоит из двух полигонов, повернутых на разные углы, например на 0 и на 90. При вращении модели один полигон перекрывает другой.
В gm это решалось draw_set_alpha_test и reset_volume

#11 Вопросы и ответы » Порядок прорисовки » 2022-03-19 13:52:57

Глеб
Ответов: 5

Возникла проблема с порядком прорисовки моделей. Я так понял в Xtreme этот порядок определяется по времени создания, то есть, то, что было создано раньше прорисовывается в первую очередь. Такое очень нужно когда используешь прозрачную воду или что-то еще. Модель, погруженная частью в воду сверху прорисовывается, а под водой остальную часть не видно. Можно ли как-то повлиять на этот порядок? В gm это определялось глубиной объектов. Те кто поверх идут с меньшей глубиной depth.

#12 Re: Вопросы и ответы » Окно Xtreme 3d » 2022-03-19 13:48:49

Да нет, спасибо, уже не нужно. Я протестил в отдельном окне, все равно туман присутствует. Смысла нету, только проблемы с назначением клавишь. Например я не нашел замены функции if mouse_check_button(mb_left) и так далее. Вернулся в стандартное окно gm.

#13 Re: Вопросы и ответы » Окно Xtreme 3d » 2022-03-18 19:14:20

Спасибо большое Тимур) Кто бы мог подумать что нужно этот фокус отключить чтобы заработало)
Нужно бы в справочке указать.
А нету функции для разделения нажатия клавиши и зажатия клавиши? В языке gm это два разных понятия...

#14 Re: Вопросы и ответы » Материалы не назначаются » 2022-03-16 10:07:27

Можешь подсказать? Что я делаю не так с окном Xtreme?

#15 Вопросы и ответы » Окно Xtreme 3d » 2022-03-16 01:19:25

Глеб
Ответов: 5

Я создал новое отдельное окно функцией Xtreme. Подключил вид к нему. Но графики нету. Всё как написано в справке. Какие тут подводные камни?

set_automatic_draw(0);
window_set_visible(0);
randomize();
dll_init('xtreme3d.dll');
EngineCreate();

global.dt = 1.0 / room_speed;

window_xtreme=WindowCreate(0,0,display_get_width(),display_get_height(),false);

view1 = ViewerCreate(0, 0, display_get_width(), display_get_height(), WindowGetHandle(window_xtreme));

Появляется окно, но в нем ничего нету, при закрытии окна в редактор не возвращается (ничего не происходит).
В "диспетчере зад" идет фоном, приходиться в ручную отключать.
В событии закрытия окна поставил game_end(), в событии game end уничтожил окно перед уничтожением движка.
Очень нужно, в стандартном окне gm появляется какой-то туман.

#17 Re: Вопросы и ответы » Материалы не назначаются » 2022-03-13 10:02:54

mdtree1=FreeformCreate('models/trees/tree1.obj',0,0,global.scene);
mdlist1=FreeformCreate('models/trees/list1.obj',0,0,global.scene);
mdtree2=FreeformCreate('models/trees/tree2.obj',0,0,global.scene);
mdlist2=FreeformCreate('models/trees/list2.obj',0,0,global.scene);
вот так решил вопрос

#18 Вопросы и ответы » Материалы не назначаются » 2022-03-13 09:14:47

Глеб
Ответов: 4

Материалы не назначаются объектам, в чем может быть проблема?
При запуски игры деревья полностью белого цвета, без материалов.

mattrees=MaterialLibraryCreate();
MaterialLibrarySetTexturePaths(mattrees,'textures/trees');
MaterialLibraryActivate(mattrees);

MaterialCreate('matfortree1','textures/trees/tree1.png');
MaterialCreate('matfortree2','textures/trees/tree2.png');
MaterialCreate('matforlist1','textures/trees/list1.png');
MaterialCreate('matforlist2','textures/trees/list2.png');
MaterialSetOptions('matfortree1',false,true);
MaterialSetOptions('matforlist1',false,true);
MaterialSetOptions('matfortree2',false,true);
MaterialSetOptions('matforlist2',false,true);
MaterialSetBlendingMode('matforlist1',3);
MaterialSetBlendingMode('matforlist2',3);
MaterialSetFaceCulling('matforlist1',2);
MaterialSetFaceCulling('matforlist2',2);
mdtree1=FreeformCreate('models/trees/tree1.obj',mattrees,mattrees,global.scene);
mdlist1=FreeformCreate('models/trees/list1.obj',mattrees,mattrees,global.scene);
mdtree2=FreeformCreate('models/trees/tree2.obj',mattrees,mattrees,global.scene);
mdlist2=FreeformCreate('models/trees/list2.obj',mattrees,mattrees,global.scene);
ObjectSetMaterial(mdtree1,'matfortree1');
ObjectSetMaterial(mdlist1,'matforlist1');
ObjectSetMaterial(mdtree2,'matfortree2');
ObjectSetMaterial(mdlist2,'matforlist2');

ActorFaceGroupSetMaterial не помогает

#20 Вопросы и ответы » Материалы для Актёров » 2022-03-12 07:39:14

Глеб
Ответов: 2

Не удается установить материал для анимированных актёров стандартными способами.
Возможно это делается как-то по особому (через шейдер)?

#21 Re: Вопросы и ответы » Туман на весь экран » 2022-03-11 08:38:25

Какие это могут быть средства?
Бывает ли трехмерная векторная графика?
В отличии от пиксельной, как корел дро например и фотошоп?

#22 Re: Вопросы и ответы » Анимированные модели » 2022-03-11 06:07:34

https://github.com/KozGit/Blender-2.8-M … port-addon
в общем разобрался

Python: Traceback (most recent call last):
  File "C:\Users\Professional\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\io_scene_md5_28.py", line 1260, in invoke
    bpy.ops.message.messagebox('INVOKE_DEFAULT', message = msgLines )
  File "C:\Program Files\Blender Foundation\Blender 2.93\2.93\scripts\modules\bpy\ops.py", line 130, in __call__
    ret = _op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
TypeError: Converting py args to operator properties: : keyword "message" unrecognized

location: <unknown location>:-1

Пришлось перейти на 2.8 Блендер

Теперь проблема с экспортом меша
Требует чтобы все веса были не нулевыми, зачем это нужно? Ведь какая-то часть модели может быть статична?
Причем анимация экспортируется на ура, а меш вот такую фигню выдает
Теперь (3000 граней на дереве) нужно назначать веса им, и чтобы ни одна грань не осталась

#23 Re: Вопросы и ответы » Анимированные модели » 2022-03-11 01:35:01

Спасибо, буду искать аддон для md5, я так понимаю он сохраняет отдельно модель и анимацию, а как он с вершинной, там же каждый кадр это отдельная модель? С костями это я понимаю, только матрицу трансформации использовать.
Короче я так понял без поддержки разработчиков не создам игру, нужно было на программиста учиться. Как вы кстати относитесь что я все время вопросы задаю?

#24 Re: Вопросы и ответы » Теневые карты » 2022-03-11 01:23:40

У меня 1680 на 1050, если я выставлю такой размер комнаты, то как будет работать на мониторах с другим разрешением? Как одоптировать под любой монитор, нужно в настройках окна задать по размерам дисплея.
В функциях вида нашел в справке только как взять ширину и высоту, где указать полноэкранный?
Я так понимаю нужно window_set_fullscreen true и window_set_size display_get_width и аналогично для высоты, я вас правильно понял?
Ещё в конце добавил две строчки кода
room_width=display_get_width();
room_height=display_get_height();
А саму комнату в настройках оставил 500 на 500, мне так удобнее расставлять объекты, чтобы было ограничение на краях карты.
И все же вы не дали ответ на самый главный вопрос, где тени то? Что я не так сделал?

matterrain=MaterialLibraryCreate();
MaterialLibraryActivate(matterrain);

MaterialCreate('mTerrain1', 'textures/terrain/tex_river_rakovka.jpg'); 
MaterialSetOptions('mTerrain1',false,false);
shmap1=BumpShaderCreate();
BumpShaderSetDiffuseTexture(shmap1,'mTerrain1');
BumpShaderSetMaxLights(shmap1,8);
MaterialCreate('mShader1','');
MaterialSetShininess('mShader1',32);
MaterialSetAmbientColor('mShader1',c_dkgray,1);
MaterialSetDiffuseColor('mShader1',c_white,1);
MaterialSetSpecularColor('mShader1',c_white,1);
MaterialSetShader('mShader1',shmap1);

BumpShaderSetShadowMap(shmap1,global.shadowmap);
BumpShaderSetShadowBlurRadius(shmap1,2);

map1=FreeformCreate('models/terrain/river_rakovka.obj',matterrain,matterain,global.scene);
ObjectSetMaterial(map1,'mShader1');
ObjectSetPosition(map1,250,0,250);

FreeformBuildOctree(map1);
OdeStaticCreate(map1);
OdeAddTriMesh(map1,0);

вот я применил к местности шейдерный материал, но в игре просто он серый, а теней нет от танка. Танк 100% в древе шадоукастерс

#25 Re: Вопросы и ответы » Теневые карты » 2022-03-11 01:18:46

Странно, почему у вас нету текстуры ландшафта? И как размер комнаты может повлиять на размер окна? У меня действие происходит (терраин по размерам 500 на 500). Вот я и решил ограничить комнату. Так всегда делал.
Это нужна специальная функция для настройки вида? Разрешение и полноэкранный режим?
В чем проблема навигации? Когда мышку до краев доводили перемещение осуществлялось или были какие-то проблемы? Приближение отдаление колёсиком. Зажать пкм и двигать мышь в право влево и будет поворот.
На счет теней я так делал, но вместо этого весь терраин просто затемнился но теней от танка нет.

Подвал доски

Под управлением FluxBB