Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 15.02.2012, 21:40   #106
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопросы про Xors3D

Направление оси по которой у тебя колесо смещается. То бишь вектор который смотрит в том же направлении. А нулевой вектор параллелен любому, поэтому оно и смещается куда хочет, наверно.
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 00:02   #107
Sashka007
ПроЭктировщик
 
Аватар для Sashka007
 
Регистрация: 11.11.2008
Адрес: Тольятти
Сообщений: 153
Написано 10 полезных сообщений
(для 24 пользователей)
Ответ: Вопросы про Xors3D

Всем привет, подскажите пожалуйста, у меня неадекватно работают коллизии:

For i=1 To 30 Step 2
sta.map = New map
sta\mesh=xCopyEntity(map_l)
xPositionEntity sta\mesh,0,(-xMeshHeight(sta\mesh)+19.7)*i,0
xEntityColor sta\mesh,255/((i+1)/3),255/((i+1)/3),255/((i+1)/3)
xEntityType sta\mesh,2
sta\dist=340
Next

For i=0 To 30 Step 2
sta.map = New map
sta\mesh=xCopyEntity(map_r)
xPositionEntity sta\mesh,0,(-xMeshHeight(sta\mesh)+19.7)*i,0
xEntityColor sta\mesh,255/((i+1)/3),255/((i+1)/3),255/((i+1)/3)
xEntityType sta\mesh,2
sta\dist=340
Next

Где то они работают, где то тело сквозь проходит, где то наполовину входит в другое. Кстати если xCopyEntity заменить на xCopyMesh и также xPositionEntity на xPositionMesh, то все нормально, но мне не нужен такой вариант.
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 19:57   #108
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы про Xors3D

Нужно просчитать пересечения куба и машинки.
поставил:
	xEntityPickMode tank\center_cube,3 
	xEntityPickMode tank\model,3, 0, True
далее просчитываю(внедряю второй цикл):

For tankE.tank = Each tank ;CHooSER
			If Not tank\model=tankE\model Then 
		
                 	If xEntityPick(tank\center_cube, 10)=tankE\model  Then End
	               
                        EndIf
		Next
результата нет. если же делаю xEntityPick(tank\center_cube, 10)>0, то всё работает.
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 21:17   #109
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопросы про Xors3D

А не проще добавить машинке и кубику физическую форму и не маяться херней? Ведь в итоге если получится, то получится тоже самое и не факт, что быстрей или хотя бы лучше.
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 21:38   #110
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы про Xors3D

не. мне надо только просчитать, что они пересеклись, без использования физической модели.
(Offline)
 
Ответить с цитированием
Старый 16.02.2012, 22:46   #111
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Вопросы про Xors3D

BBDECL int BBCALL xMeshesIntersect  ( Entity *  entity1,  
  Entity *  entity2  
 )   

Returns true if the specified meshes are currently intersecting. 

Parameters:
entity1 First entity handle  
entity2 Second entity handle  

BBDECL int BBCALL xMeshesBBIntersect  ( Entity *  entity1,  
  Entity *  entity2  
 )   

Returns true if the specified meshes bounding boxes are currently intersecting. 

Deprecated:
Use xEntitiesBBIntersect() instead. 
Parameters:
entity1 First entity handle  
entity2 Second entity handle
Читай справку. Да?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Krep_Kospit (17.02.2012)
Старый 17.02.2012, 10:14   #112
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы про Xors3D

хм, за это спасибо. не знал.
хотя проблема моя решилась поворотом объектов на 180 градусов.
(Offline)
 
Ответить с цитированием
Старый 23.02.2012, 22:03   #113
Krep_Kospit
Оператор ЭВМ
 
Регистрация: 16.01.2012
Сообщений: 30
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы про Xors3D

такой вопрос... создаю машинки:

;;;;FIRST CAR
first_car=xLoadAnimMesh("models\first_car.fbx")
xhideentity first_car
Global logoTexture = xLoadTexture("\textures\first_car_tex.jpg")
CreateTank(first_car,  logoTexture, Rand(-200,300),40,Rand(-200,300), 1, 10, 2500, 20, 40,10)
For i=0 To 5
	CreateTank(first_car,  logoTexture, Rand(-200,300),40,Rand(-200,300), 0, 10, 2500, 20, 40,10)
Next
;;;;FIRST CAR
сама функция:

Function CreateTank(model, textureT,x#,y#,z#, is_player, hp,  max_speed, step_speed, max_rotate_wheels,steer_step)
	
;create tank
	;[Block]
	tank.tank= New tank
	tank\model = model
	xEntityTexture tank\model, textureT
	xPositionEntity(tank\model, x,y,z, True)
	xEntityAddBoxShape tank\model,	300, 20,21,49
	tank\is_player=is_player 
	tank\hp=hp
	
;VEHICLE
	xEntityCreateVehicle(tank\model)
	xEntityDisableSleeping(tank\model)
	tank\max_speed = max_speed
	tank\step_speed = step_speed
	tank\cur_speed = 0
	tank\max_rotate_wheels = max_rotate_wheels
	tank\steer_step = steer_step
;VEHICLE end
	
	
	;0 - pivot for hand
	;1 - hand
	;2 - pivot for weapon
	;3 - weapon
	;LEFT_HAND START
	tank\left_weapon[0] = xFindChild(tank\model, "pivot2")
	tank\left_weapon[1] = xLoadAnimMesh("models\hand.fbx") 
	
	xExtractAnimSeq tank\left_weapon[1], 0,100
	xExtractAnimSeq tank\left_weapon[1], 100,200
	
	;weapon
	tank\left_weapon[3] = xLoadAnimMesh("models\axe.fbx") 
	tank\left_weapon[2] = xFindChild(tank\left_weapon[1], "Box001")
	xPositionEntity (tank\left_weapon[3], xentityx(tank\left_weapon[2]), xentityy(tank\left_weapon[2]),xentityz(tank\left_weapon[2]))
	xentityparent (tank\left_weapon[3], tank\left_weapon[2])
	;weapon end
	xScaleEntity tank\left_weapon[0], 1,1,1
	xEntityParent (tank\left_weapon[2],xFindChild(tank\left_weapon[1], "bone004"))
	xEntityParent (tank\left_weapon[1], tank\left_weapon[0], False)
	xEntityTexture tank\left_weapon[0], logoTexture
	;LEFT_HAND End
	
	;Right_HAND START
	tank\Right_weapon[0] = xFindChild(tank\model, "pivot1")
	tank\Right_weapon[1] = xLoadAnimMesh("models\hand.fbx") 
	
	xExtractAnimSeq tank\right_weapon[1], 0,100
	xExtractAnimSeq tank\right_weapon[1], 200,300
	
	
	;weapon
	tank\Right_weapon[3] = xLoadAnimMesh("models\axe.fbx") 
	tank\Right_weapon[2] = xFindChild(tank\Right_weapon[1], "Box001")
	xPositionEntity (tank\Right_weapon[3], xentityx(tank\Right_weapon[2]), xentityy(tank\Right_weapon[2]),xentityz(tank\Right_weapon[2]))
	xentityparent (tank\Right_weapon[3], tank\Right_weapon[2])
	;weapon end
	xScaleEntity tank\Right_weapon[0], 1,1,1
	xEntityParent (tank\Right_weapon[2],xFindChild(tank\Right_weapon[1], "bone004"))
	xEntityParent (tank\Right_weapon[1], tank\Right_weapon[0], False)
	xEntityTexture tank\Right_weapon[0], logoTexture
	;Right_HAND End
	
	
	
	tank\target=0
	number=number+1
	tank\cur_number = number
	
	;CUBE
	;[Block]
	;0 - left
	;1 - right
	;2 - center
	;3 - first
	tank\cube[2]=xcreatecube()
	xEntityParent (tank\cube[2],tank\model, False)
	xPositionEntity (tank\cube[2], xentityx(tank\model), xentityy(tank\model),xentityz(tank\model)-35, True)
	xscaleentity tank\cube[2], 1,1,1
	xentityalpha tank\cube[2],0;.3
	
	tank\cube[0]=xcreatecube()
	xPositionEntity tank\cube[0], xentityx(tank\model)+20, xentityy(tank\model),xentityz(tank\model)-35
	xEntityParent tank\cube[0],tank\model
	xscaleentity tank\cube[0], 1,1,1
	xentityalpha tank\cube[0],0;.3
	
	tank\cube[1]=xcreatecube()
	xPositionEntity tank\cube[1], xentityx(tank\model)-20, xentityy(tank\model),xentityz(tank\model)-35
	xEntityParent tank\cube[1],tank\model
	xscaleentity tank\cube[1], 1,1,1
	xentityalpha tank\cube[1],0;.3
	
	tank\cube[3]=xcreatecube()
	xPositionEntity tank\cube[3], xentityx(tank\model), xentityy(tank\model),xentityz(tank\model)-55
	xEntityParent tank\cube[3],tank\model
	xscaleentity tank\cube[3], 1,1,1
	xentityalpha tank\cube[3],0;.3
	
	;[End Block]
	
	tank\b=xcreatecube();pick
	xscaleentity tank\b, 12,6,17;12,6,25
	xEntityParent tank\b,tank\model,False
	xPositionEntity (tank\b, xentityx(tank\model), xentityy(tank\model),xentityz(tank\model), True)
	xentityalpha tank\b,0;.3
	xEntityPickMode tank\b,3
	
	;[End Block]
;CREATE WHEELS
	;[Block]
	
	For l = 0 To 5
		wheel.wheel = New wheel
		
		If l=5 Then wheel\entity = xFindChild(tank\model, "wheel5")
		If l=3 Then wheel\entity = xFindChild(tank\model, "wheel3")
		If l=1 Then wheel\entity = xFindChild(tank\model, "wheel1")
		If l=4 Then wheel\entity = xFindChild(tank\model, "wheel4")
		If l=2 Then wheel\entity = xFindChild(tank\model, "wheel2")
		If l=0 Then wheel\entity = xFindChild(tank\model, "wheel0")
		
		xEntityParent wheel\entity, tank\model
		
		xEntityTexture wheel\entity, wheelT
	    wheel\max_Rotation = 15000
		xEntityAddWheel(tank\model, wheel\entity)
		xEntityWheelSetConnectionPoint(tank\model, l, xEntityX(wheel\entity), xEntityY(wheel\entity), xEntityZ(wheel\entity))
		xEntityWheelSetAxle(tank\model, l, -1.0, 0.0, 0.0)
		xEntityWheelSetRadius(tank\model, l, 1.0)
		xEntityWheelSetMaxSuspensionForce(tank\model, l, wheel\max_Rotation)
		xEntityWheelSetSuspensionLength(tank\model, l, 1.5)
		xEntityWheelSetSuspensionStiffness(tank\model, l, 3.8)
		xEntityWheelSetSuspensionDamping(tank\model, l,2.22)
		xEntityWheelSetSuspensionCompression(tank\model,l, 0.3)
		xEntityWheelSetFriction(tank\model, l, 300)
		xEntityWheelSetRollInfluence(tank\model, l, 0.18);
	Next
	;[End Block]
;CREATE WHEELS END
; tank creation end
	SeedRnd xmillisecs()
End Function
получаю в итоге: все создаваемые машины появляются в одной и той же точке. Это решается, если вместо tank\model = model пишу tank\model = xCopyEntity(model). Но мне кажется, что в этом случае программа загружается дольше, чем должна. Можно как-то оптимизировать код?
(Offline)
 
Ответить с цитированием
Старый 10.03.2012, 15:18   #114
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Вопросы про Xors3D

Само-ответ: хотя ладно, сделаю опцию Тени вкл./откл. Всё равно на слабых системах их бессмысленно нагружать.

Кроме PSSM теней в Xors3D других нет?
А то с PSSM у меня на нетбуке MAV указывает на строку в файле xors3d.bb
xRenderWorld_(tween#, renderShadows%)
Когда отключаю лампочки - стандартный пример shadows.bb запускается.

Ещё есть тени на FastExt, а "так же" ProShadows - но они завязаны на FastExt либе, которой нужна инициализация Graphics3D... Но на Xors3D ведь задаётся xGraphics3D - в этом и не связываются вещи.

(как и на Blitz3Dx9 - команда bGraphics3D - туда тоже дополнительные либы не прикрутить)


Придётся использовать чистый Blit3D с FastExt.. Пока самый лучший для меня вариант на счёт теней.

ЗЫ: Но всё же сравнил скорость отрисовки на Blitz3Dx9 и Blitz3D с 1500 подвижными ящиками - DX9 быстрей в 1.5~2 раза.
Пример Xors3D army.bb тоже нормально двигается, не то что с 4-6 аним_моделями в чистом блитзе с большими тормозами.
(Offline)
 
Ответить с цитированием
Старый 12.03.2012, 14:51   #115
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Вопросы про Xors3D

FastExt тени не имеют ничего общего к Xors3d.
Встроенные тени работают, но хз как там с PSSM.
Советую писать их самому - так будет больше контроля. Да и опыту наберёшься.
(Offline)
 
Ответить с цитированием
Старый 13.03.2012, 16:08   #116
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Вопросы про Xors3D

Я имел в виду, что FastExt тени мне нравятся (и работают на слабых системах) - жаль что Xors3D с ними не совместим.
(Offline)
 
Ответить с цитированием
Старый 13.03.2012, 19:29   #117
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Вопросы про Xors3D

Потому что эти тени реализованы на древнейшей технологии, которая кстати в новых устройствах, потихоньку выпиливается.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (13.03.2012)
Старый 08.06.2012, 18:57   #118
Spy4433
ПроЭктировщик
 
Аватар для Spy4433
 
Регистрация: 16.04.2008
Сообщений: 161
Написано 36 полезных сообщений
(для 63 пользователей)
Ответ: Вопросы про Xors3D

возник вопрос про чилды и их пивот

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

AMD Phenom(tm) II X6 3.20GHz 8GB GTX 550(1Gb)
(Offline)
 
Ответить с цитированием
Старый 09.06.2012, 00:14   #119
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопросы про Xors3D

может трансформация мира координат поможет (xTForm)? хотя скорее всего Я не совсем понял вопрос
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 09.06.2012, 03:41   #120
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Вопросы про Xors3D

Если знаешь где центр чилда должен быть, то примени MoveMesh на этот чилд чтобы подвинуть в центр модели, а затем MoveEntity чтобы подвинуть этот чайлд на нужное положение где он находился прежде.
Таким образом сместишь все данные установив центр, и поставишь обратно чайлд где он был.
Либо если есть исходник модели - ты что-то намудрил с экспортом конкретно.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 02:48.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com