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

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

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

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

Ответ
 
Опции темы
Старый 23.02.2010, 03:18   #1
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Xors3D + PhysX Проблемы

По истечении некоторого времени решил вернутся к B3D чтоб так сказать немножко поигратся. Сразу появились проблемы.
За попытки создания Trimesh или Hull меня нещадно награждали MAV`ом.
Спасибо Knightmare за его терпение, теперь все проблемы решены.
Теперь по подробнее:
Xors3D хоть и похож на Blitz3D, но работает иначе (во многих местах даже грамотнее).
Cледовательно и работает с физ. враппером он иначе.
Корень проблемы - банки данных Blitz3D.
Лечится так:
  1. Качаем последние DLL
    http://mycop.xors3d.com/px.zip
  2. Меняем в Decls все символы * на % (просто заменой в Блокноте)
    * - Банк данных Blitz3D
    % - число (хендл или айди) который как раз нам нужен
    !!! Важно понимать, что после этого враппер будет непригоден для использования в чистом Blitz3D
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 8 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
ABTOMAT (27.02.2010), Arles (27.02.2010), baton4ik (11.03.2010), BlackOut (23.02.2010), EvilChaotic (23.02.2010), H@NON (23.02.2010), Leowey (05.12.2010), St_AnGer (23.02.2010)
Старый 03.03.2011, 16:44   #2
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
Ответ: Xors3D + PhysX Проблемы

Ссылка уже не работает, у кого-нибудь это осталось? Потому что у меня тоже не работает хулл.
__________________
Самый первый и самый великий программист - это Бог.
(Offline)
 
Ответить с цитированием
Старый 03.03.2011, 18:10   #3
Leowey
Знающий
 
Аватар для Leowey
 
Регистрация: 08.11.2010
Адрес: Москва
Сообщений: 285
Написано 78 полезных сообщений
(для 182 пользователей)
Ответ: Xors3D + PhysX Проблемы

Меняем в Decls все символы * на % (просто заменой в Блокноте)
Не? (и ещё несколько символов)
(Offline)
 
Ответить с цитированием
Старый 03.03.2011, 18:26   #4
Ganociy
Разработчик
 
Аватар для Ganociy
 
Регистрация: 02.06.2009
Адрес: Город Герой Ленинград
Сообщений: 392
Написано 33 полезных сообщений
(для 74 пользователей)
в деклс враппера физики?

Блин! Что делать?..
__________________
Самый первый и самый великий программист - это Бог.

Последний раз редактировалось moka, 03.03.2011 в 22:42. Причина: Пиши одним сообщением. Такой дабл постинг легко может удаляться..
(Offline)
 
Ответить с цитированием
Старый 04.03.2011, 22:44   #5
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,354
Написано 2,470 полезных сообщений
(для 6,850 пользователей)
Ответ: Xors3D + PhysX Проблемы

Так. Связка PhysX+Xors3D ныне не актуальна, но если вы всё же предпочитаете PhysX буллету, то вам надо знать:
Автор враппера (Render) положил болт на враппер и он больше не разрабатывается.
Исходники можно лицезреть тут: http://mycop.xors3d.com/public/PXW/PhysXWrapper.zip

Последняя версия PhysX для Xors3D лежит тут: http://mycop.xors3d.com/public/PXW/PXW_Xors3d.zip

Тримеш делать так:
Function xCreateTrimesh(mesh%,mass#=0)
If mesh <> 0
    Local VBs 
xGetMeshVB(mesh)
    
Local VB_sizes xGetMeshVBSize(mesh)
    
Local IBs xGetMeshIB(mesh )
    
Local IB_sizes=xGetMeshIBSize(mesh)
    
Local Trimesh=pxCreateTriMesh(VBsIBsVB_sizesIB_sizesmass)
    Return 
Trimesh
End 
If
End Function 
Хулл делать так:
Function xCreateHull(mesh%,mass#)
If mesh <> 0
    Local VB 
xGetMeshVB(mesh)
    
Local VB_size xGetMeshVBSize(mesh)
    
Local cube_body pxBodyCreateHull(VBVB_sizemass)
    Return 
cube_body
End 
If
End Function 
На всякий случай прикладываю эти файлы дабы жили дольше и не затерялись со временем.
Вложения
Тип файла: zip PhysXWrapper.zip (89.8 Кб, 925 просмотров)
Тип файла: zip PXW_Blitz3d.zip (1.55 Мб, 929 просмотров)
Тип файла: zip PXW_Xors3d.zip (1.55 Мб, 911 просмотров)
Тип файла: exe PhysX(driver).exe (1.44 Мб, 1196 просмотров)
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Эти 9 пользователя(ей) сказали Спасибо Randomize за это полезное сообщение:
ant0N (02.10.2011), Arles (09.03.2011), Egor Rezenov (05.03.2011), FlameSword (19.02.2017), H@NON (09.09.2011), maxturbo (27.05.2011), Mhyhr (18.08.2011), St_AnGer (04.03.2011), vlactelin (05.09.2011)
Старый 04.03.2011, 23:12   #6
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Xors3D + PhysX Проблемы

ух... Жалко нельзя поставить 100 штук "полезно". Наконец то меня перестанут доставать вопросами "где взять драйвера для физикс враппера?", "где взять враппер?", "где взять исходники?", "а как выглядит функция тримеша?" и т.д.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо St_AnGer за это полезное сообщение:
Colossus (22.02.2013), Leowey (31.05.2011)
Старый 24.07.2012, 21:48   #7
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Xors3D + PhysX Проблемы

По мере изучение такого союза сам написал пару функций. Инклюдим и пользуемся.
Function xConvertTerrainToPx(terrain,sx#,sy#,sz#)
	nSize = xTerrainSize (terrain)
	bank = CreateBank(nSize*nSize*4)
	For z=1 To nSize-1
		For x = 1 To nSize-1
			y# = xTerrainHeight(terrain,x,z)
			PokeFloat bank,(z*(nSize)+x)*4,y
		Next
	Next
	body# = pxCreateTerrain(nSize,bank, sx, sy, sz)
	FreeBank(bank)
	Return body
End Function
;--------------------------------------------------------------------
;;===========================xMesh to Hull======================================================
Function xConvertMeshToHull%(mesh%, mass#)

    Local nsurf = xCountSurfaces(mesh)
    Local nvert = 0
    For ns = 0 To nsurf-1
        Local surf = xGetSurface(mesh,ns)
        nvert = nvert + xCountVertices(surf)
    Next
         vbank = CreateBank(nvert*4*3)
    nv = 0
    For ns = 0 To nsurf-1
        surf = xGetSurface(mesh,ns)
        nvv = xCountVertices(surf)
        For nvc = 0 To nvv - 1
             PokeFloat vbank,nv*12+0,xVertexX(surf,nvc)
             PokeFloat vbank,nv*12+4,xVertexY(surf,nvc)
             PokeFloat vbank,nv*12+8,xVertexZ(surf,nvc)
            nv = nv+1
        Next
    Next
    Local bbb%= pxBodyCreateHull(vbank, nvert, mass)
    FreeBank vbank
    Return bbb
End Function

;============================xMesh to triMesh===================================================
Function xConvertMeshToTrimesh(mesh, mass# = 0)
           nsurf = xCountSurfaces(mesh)
	nvert = 0
	nface=0
	For ns = 0 To nsurf-1
		Local surf = xGetSurface(mesh,ns)
		nface = nface+xCountTriangles(surf)
		nvert = nvert +xCountVertices(surf)
	Next

	fbank = CreateBank(nface*4*3)
	nf = 0
	vbank = CreateBank(nvert*4*3)
	nv = 0
	pnvv = 0
	For ns = 0 To nsurf-1
		surf = xGetSurface(mesh,ns)
		nfv = xCountTriangles(surf)
		For nfc = 0 To nfv -1
			PokeInt fbank,nf*12+0,xTriangleVertex(surf,nfc,0)+pnvv+ns
			PokeInt fbank,nf*12+4,xTriangleVertex(surf,nfc,1)+pnvv+ns
			PokeInt fbank,nf*12+8,xTriangleVertex(surf,nfc,2)+pnvv+ns
			nf=nf+1
		Next

		nvv = xCountVertices(surf)
		For nvc = 0 To nvv - 1
			PokeFloat vbank,nv*12+0,xVertexX(surf,nvc)*xEntityScaleX(mesh)
			PokeFloat vbank,nv*12+4,xVertexY(surf,nvc)*xEntityScaleY(mesh)
			PokeFloat vbank,nv*12+8,xVertexZ(surf,nvc)*xEntityScaleZ(mesh)
			nv = nv+1
		Next
		pnvv=pnvv+nvv-1
	Next
	bbb%=pxCreateTriMesh(vbank, fbank, nvert, nface,mass)
	FreeBank vbank
	FreeBank fbank
	Return bbb%
End Function

Function pxEntityScaleX#(ent%)  
    row=0 
    el1# = xGetMatElement(ent,row,0)  
    el2# = xGetMatElement(ent,row,1)  
    el3# = xGetMatElement(ent,row,2)  
    Return Sqr(el1*el1+el2*el2+el3*el3)  
End Function 
Function pxEntityScaleY#(ent%)  
    row=1 
    el1# = xGetMatElement(ent,row,0)  
    el2# = xGetMatElement(ent,row,1)  
    el3# = xGetMatElement(ent,row,2)  
    Return Sqr(el1*el1+el2*el2+el3*el3)  
End Function
Function pxEntityScaleZ#(ent%)
    row=2 
    el1# = xGetMatElement(ent,row,0)  
    el2# = xGetMatElement(ent,row,1)  
    el3# = xGetMatElement(ent,row,2)  
    Return Sqr(el1*el1+el2*el2+el3*el3)  
End Function
;-----------------------------------------------------------------------------------
Function xpxBodySetEntity(ent,bod,x#=0,y#=0,z#=0)
xPositionEntity ent,pxBodyGetPositionX(bod)+x,pxBodyGetPositionY(bod)+y,pxBodyGetPositionZ(bod)+z
xRotateEntity ent,pxBodyGetRotationPitch(bod),pxBodyGetRotationYaw(bod),pxBodyGetRotationRoll(bod)
End Function
__________________
(Offline)
 
Ответить с цитированием
Эти 4 пользователя(ей) сказали Спасибо burovalex за это полезное сообщение:
jfkkk (13.05.2013), moka (25.07.2012), tirarex (10.05.2013), und3rgr0und (27.01.2014)
Старый 10.05.2013, 14:04   #8
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Xors3D + PhysX Проблемы

использую эту связку двигов и вот недавно встал вопрос : работает ли cloth и если да то можно код как создать тряпку в ксорсе с помощью физикса
(Offline)
 
Ответить с цитированием
Старый 12.05.2014, 06:59   #9
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Xors3D + PhysX Проблемы

pxCreateTriMesh
Почитал, что автор Render для BMax-а написал отдельный загрузчик Ткани pxCreateClothSpec

Сейчас я просто заменил строку Функции xConvertMeshToTrimesh на аналогичную загрузочку Ткани.
Ошибок загрузки нет.
Но при pxUpdateCloth() - ошибка.
Предполагаю что к Ткани не закреплёна Модель.

Global cloth_mesh=xLoadMesh("..\Media\pol.b3d")
cloth_tex=xLoadTexture("..\Media\rug512.jpg")
xEntityTexture cloth_mesh,cloth_tex
xEntityFX cloth_mesh
,16    ;ЭТО ВАЖНО чтобы плоскость отображалась с двух сторон
xScaleMesh cloth_mesh
,0.1,0.1,0.1
xPositionMesh cloth_mesh
,0,8,0

Global cloth_body=xConvertMeshToCloth(cloth_mesh)
Global 
cloth_nvert=pxClothGetNumVertices(cloth_body)    ;оптимизация чтобы не
Global cloth_vbank=CreateBank(cloth_nvert*4*3)        ;повторять в цикле

pxClothAttachVertexToPos
(cloth_body,399,-1,8,0)
pxClothAttachVertexToPos(cloth_body,440,1,8,0)
pxClothSetBendingStiffness(cloth_body,1)

~ ~ ~
Function 
xConvertMeshToCloth(mesh)
    
nsurf=xCountSurfaces(mesh)
    
nvert=0
    nface
=0
    
For ns=0 To nsurf-1
        Local surf
=xGetSurface(mesh,ns)
        
nface=nface+xCountTriangles(surf)
        
nvert=nvert +xCountVertices(surf)
    
Next
    
    fbank
=CreateBank(nface*4*3)
    
nf=0
    vbank
=CreateBank(nvert*4*3)
    
nv=0
    pnvv
=0
    
For ns=0 To nsurf-1
        surf
=xGetSurface(mesh,ns)
        
nfv=xCountTriangles(surf)
        For 
nfc=0 To nfv -1
            PokeInt fbank
,nf*12+0,xTriangleVertex(surf,nfc,0)+pnvv+ns
            PokeInt fbank
,nf*12+4,xTriangleVertex(surf,nfc,1)+pnvv+ns
            PokeInt fbank
,nf*12+8,xTriangleVertex(surf,nfc,2)+pnvv+ns
            nf
=nf+1
        Next
        
        nvv
=xCountVertices(surf)
        For 
nvc=0 To nvv-1
            PokeFloat vbank
,nv*12+0,xVertexX(surf,nvc)*xEntityScaleX(mesh)
            
PokeFloat vbank,nv*12+4,xVertexY(surf,nvc)*xEntityScaleY(mesh)
            
PokeFloat vbank,nv*12+8,xVertexZ(surf,nvc)*xEntityScaleZ(mesh)
            
nv=nv+1
        Next
        pnvv
=pnvv+nvv-1
    Next
    bbb
%=[b]pxCreateClothSpec[/b](vbank,fbank,nvert,nface)
    
FreeBank vbank
    FreeBank fbank
    
Return bbb%
End Function 
эта писанина ныне не актуальна:

Пока вот думаю как закрепить Ткань на Модель.
Есть функция pxClothGetNormals(Cloth%, nbank*), но не знаю как её применить (в архиве bmax-а должен быть пример).

Посмотрел в исходник враппера, там в файле Blitzpx.cpp
на 3105 строке:
regularCloth->entityData = 0;

почему то не приписывается Entity к Cloth, хотя можно было бы (наверное) через функцию (при создании Ткани)


Обновление Ткани и её Модели читать ниже \/

Последний раз редактировалось LLI.T.A.L.K.E.R., 12.05.2014 в 10:28. Причина: оптимизация банка
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tirarex (12.05.2014)
Старый 12.05.2014, 07:37   #10
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Xors3D + PhysX Проблемы

Загрузку Модели и создания Ткани читайте выше ^

УРА!
Заработала Ткань в Xors3D!

Благодаря moka написал функцию повертексного обновления Модели исходя из точек Тела.

Полёт нормальный! На Celeron, GeforceFX 5700 - квс(fps) снижается лишь на 15. (с ~102 на ~87)


{КОД}
    
pxRenderPhysic(60,0)
    
pxClothUpdateMesh(cloth_body,cloth_mesh)
{
КОД}


Function 
pxClothUpdateMesh(body,mesh)
    
pxClothGetVertexPos(body,cloth_vbank,cloth_nvert)
    
surf=xGetSurface(mesh,0)
    For 
nvc=0 To cloth_nvert-1
        xVertexCoords surf
,nvc,PeekFloat(cloth_vbank,nvc*12+0),PeekFloat(cloth_vbank,nvc*12+4),PeekFloat(cloth_vbank,nvc*12+8)
    
Next
End 
Function 
медиа ресурсы искать в PhysX-архиве Blitz_samples (там ещё папка Cloth(PRO) лежит)

для google: Xors3D PhysX wrapper pxCreateCloth pxUpdateCloth pxClothSetVertexPos pxClothGetNormals

Последний раз редактировалось LLI.T.A.L.K.E.R., 12.05.2014 в 09:23. Причина: оптимизировал создания вертекс-банка вне цикла
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
jfkkk (13.05.2014), St_AnGer (12.05.2014), tirarex (12.05.2014)
Старый 12.05.2014, 15:04   #11
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Xors3D + PhysX Проблемы

Мав на bbb%=pxCreateClothSpec(vbank,fbank,nvert,nface)
(Offline)
 
Ответить с цитированием
Старый 12.05.2014, 19:28   #12
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Xors3D + PhysX Проблемы

Сообщение от tirarex Посмотреть сообщение
Мав на bbb%=pxCreateClothSpec(vbank,fbank,nvert,nface)
но у меня на двух ЭВМ работает (winxp)

Сделал наглядный пример .bb и .exe - форматы.
Можно проверить на разных системах.

скопируйте Userlibs\Blitzpx.dll в основную папку примера
(а для использования в Blitz3D в папку его Userlibs)
Миниатюры
Нажмите на изображение для увеличения
Название: pxcloth.jpg
Просмотров: 1118
Размер:	75.0 Кб
ID:	20517  
Вложения
Тип файла: rar x3d_pxcloth.rar (3.53 Мб, 721 просмотров)

Последний раз редактировалось LLI.T.A.L.K.E.R., 12.05.2014 в 20:28.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
jfkkk (13.05.2014), Randomize (08.10.2018)
Старый 12.05.2014, 19:32   #13
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Xors3D + PhysX Проблемы

Может я что то не так делаю , скинь семпл .
(Offline)
 
Ответить с цитированием
Старый 12.05.2014, 20:05   #14
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Xors3D + PhysX Проблемы

Проверил на третьем ЭВМ - Win7 тоже всё норм. Думаю не будет только у меня одного работать, с моими конфигурациями.
(Offline)
 
Ответить с цитированием
Старый 12.05.2014, 20:12   #15
tirarex
Бывалый
 
Аватар для tirarex
 
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений
(для 866 пользователей)
Ответ: Xors3D + PhysX Проблемы

Заработало только с твоим деклз !
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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