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

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

Вернуться   www.boolean.name > Программирование игр для компьютеров > BlitzMax > 3D-программирование

3D-программирование miniB3D, OpenGL

Ответ
 
Опции темы
Старый 11.07.2009, 23:35   #1
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
TriMesh - создание.

//перенесите темы в 3д плиз. ) ошибься)

В общем, запутался с физиксом.
Стоит такая задача:

Я создаю прямо в игре меш - то есть ни откуда не загружаю, именно в игре создаю.

Проблема такая - как заменить функцию 3dmax - ResetXForm - в ксорсе под бмаксом и почему функция по поводу создания тримеша не работает - заикается на именно самом создании :

Function BodyCreateMesh:Int(mesh:Int)
Local nsurf:Int = xCountSurfaces(mesh)
Local nvert:Int = 0
Local nface:Int = 0
For Local ns:Int = 0 To nsurf-1
Local surf:Int = xGetSurface(mesh, ns)
nface:Int = nface + xCountTriangles(surf)
nvert:Int = nvert + xCountVertices(surf)
Next

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

Local nvv:Int = xCountVertices(surf)
For Local nvc:Int = 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:Int = pxCreateTriMesh(vbank, fbank, nvert, nface, 0)
vbank = Null
fbank = Null
Return bbb%
End Function
Кто-нибудь знает? Я с физиксом мало знаком, да и с ксорсом тоже)...

Последний раз редактировалось Данил, 12.07.2009 в 09:37.
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 11:00   #2
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: TriMesh - создание.

Нашел заменение этой функции:

Global VB:Byte Ptr = xGetMeshVB(Cube)
Global VB_size:Int = xGetMeshVBSize(Cube)
Global IB:Byte Ptr = xGetMeshIB(Cube)
Global IB_size:Int = xGetMeshIBSize(Cube)
Global Cube_Body:Int = pxCreateTriMesh(VB, IB, VB_size, IB_size, 0)
Но - такая же ерунда. Следовательно, вывод:
виноват resetXform.

Я провел эксперимент - взял модель в максе, применил resetXform . запускаю в ксорсе функцию по созаднию тримеша- работает! .

создал в ксорсе новый меш , приаддмешил к нему вышестоящую модель - не работает.

следовательно вывод - вся соль в resetXform!


// add

Global Cube:Int = xCreatexLoadMesh("Media/Test/1.b3d")

Global VB:Byte Ptr = xGetMeshVB(Cube)
Global VB_size:Int = xGetMeshVBSize(Cube)
Global IB:Byte Ptr = xGetMeshIB(Cube)
Global IB_size:Int = xGetMeshIBSize(Cube)
Global Cube_Body:Int = pxCreateTriMesh(VB, IB, VB_size, IB_size, 0)

если делать так - то работает.

Но мне нужно сделать это через пустой меш, т.е.:

Global Cube:Int = xCreateMesh()
Global Mesh:Int = xLoadMesh("Media/Test/1.b3d")
xAddMesh(mesh,Cube)

Global VB:Byte Ptr = xGetMeshVB(Cube)
Global VB_size:Int = xGetMeshVBSize(Cube)
Global IB:Byte Ptr = xGetMeshIB(Cube)
Global IB_size:Int = xGetMeshIBSize(Cube)
Global Cube_Body:Int = pxCreateTriMesh(VB, IB, VB_size, IB_size, 0)

т.е. через пустой меш создать тримеш, а к пустому добавить модель.

мб так обхяснил норм)

Последний раз редактировалось Данил, 12.07.2009 в 11:21.
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 12:42   #3
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: TriMesh - создание.

На удивление, разобрался.

Global VB:Byte Ptr = xGetMeshVB(Cube)
Global VB_size:Int = xGetMeshVBSize(Cube)
Global IB:Byte Ptr = xGetMeshIB(Cube)
Global IB_size:Int = xGetMeshIBSize(Cube)
Global Cube_Body:Int = pxCreateTriMesh(VB, IB, VB_size, IB_size, 0)

вот ЭТО вот работает только в глобальном режиме, в виде функции, почему-то ,не канает о_О
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 12:51   #4
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 25.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,262
Написано 5,127 полезных сообщений
(для 14,827 пользователей)
Ответ: TriMesh - создание.

Да чо за бред какой-то, меш-то сам одинаковый, глобальный у него хендл или нет.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 13:28   #5
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: TriMesh - создание.

Да сам не особо врубаюсь, что сделал, и почему все заработало
(Offline)
 
Ответить с цитированием
Старый 12.07.2009, 14:01   #6
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 772 пользователей)
Ответ: TriMesh - создание.

ты наверняка хранил функцию в отдельном подключаемом файле, и инклуд вынес выше создания физического мира. недавно тока со мной такая шляпа случилась)) минут 30 дебажил код, пока не дошло)
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо H@NON за это полезное сообщение:
Nex (12.07.2009), NitE (12.07.2009)
Старый 12.07.2009, 15:33   #7
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,693 пользователей)
Ответ: TriMesh - создание.

Блин, точно ведь! Я тупой, сцуко )
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание уровней andriy_lysko 3D-программирование 34 13.02.2011 14:18
подскажите функцию создания hull и trimesh в C++ + Xors3D + PhysX maxim87 C++ 10 07.03.2010 13:05
Создание облаков Strelok3848 3D-программирование 23 26.01.2008 20:26
СОЗДАНИЕ 3D RPG XBOBER Проекты на Blitz3D 4 16.02.2007 14:16


Часовой пояс GMT +1, время: 12:01.


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