![]() |
Как узнать размер меша?
Привет!
Подскажите, как узанть загруженного меша: m=LoadMesh("mesh.3ds") необходимо узнать размер m, по x, y, z. И в догонку езе вопрос: Как можно конверить из одной системы измерения в другую, а именно: я использовал при моделинге в максе одну систему измерения(сантиметры), теперь вставляю объект в Blitz3d, здесь другая система (General unit)... Как выполнить преобразование в блитце? |
Re: Как узнать размер меша?
untonee
Scale именно меша всегда равен 1,1,1 а размер всмысле длина,высота и тд делается так :) (я просто именно в блице не помню как) перебираются все вертексы делается 6 переменых X_min,X_max,Y_min и тд положение каждого вертекса проверяется на мин,макс и если выходит за границы то пишется в мин,макс положение етого вертекса потом X_dist = abs(X_min) + abs(X_max) и тд и получаем то что надо 2) приравнивай условные еденицы к примеру в пусть будет 1 условная еденица в блице равна 1 см вот и дерзай, хотя я использую 1 у.е. как 1 метр |
Re: Как узнать размер меша?
2 Jimon: Есть и такое мнение...
2 untonee: 1. MeshWidth, MeshHeight, MeshDepth. 2. ScaleMesh, ScaleEntity, фраза "а мы будем называть "ГенерикЮнитсы" метрами!"- и вперед. Повторять не-своё коронное высказывание про необходимость обращения к прилагающимся материалам вслух уже не буду, ибо это банально. Но знайте: я его несколько раз подряд произнес про себя. :) |
Re: Как узнать размер меша?
вот чего то я не понимаю в идеологии создателя блица
меш ето набор вертексов,индексов и текстурных координат + текстурки нафига хранить в месте с мешем матрицу его трансформации ? а потом еще и у ентити будет матрица трансформации ... в итоге на один вертекс мы получаем аж две матрицы когда можно обойтись одной и зачем ? :) |
Re: Как узнать размер меша?
Цитата:
|
Re: Как узнать размер меша?
Цитата:
Но вот чего-то отложилось у меня, что после загрузки это уже Entity!!! Да уж... Всегда спешу! Цитата:
|
Re: Как узнать размер меша?
Цитата:
и что ? |
Re: Как узнать размер меша?
Цитата:
|
Re: Как узнать размер меша?
HolyDel
ну если прописать ScaleMesh m,2,2,2 то передвинутся все вершины меша ... тоесть матрицы для меша отдельной в блице нету значит гуд :) заблуждался чето |
Re: Как узнать размер меша?
А можно узнать размер не-меша (MD2, BSP и т.д.)?
|
Re: Как узнать размер меша?
Michael
BSP,MD2 ето формат моделей почему они будут не мешем ? меш ето набор треугольников который рендерится ... |
Re: Как узнать размер меша?
Джимон, ты не прав.
Ответ: средствами Блитц никак. |
Re: Как узнать размер меша?
Вот еще вопрос.
Можно ли в Blitz3D изменять размер у анимированной модели. Кости biped экспорт в b3d. В самом Максе уменьшить без искажений не получается, т.к. модификатор skin не позволяет. |
Re: Как узнать размер меша?
tormoz
ну теоретически я прав ? или хоч сказать что я не могу загрузить MD2 как меш кинуть его в кеш мешей и создать кучу ентити ? ps. разве в блице так низя ? :) в ирлихте мона :) ps2. что мешает узнать размер обьекта по AABBOX ? |
Re: Как узнать размер меша?
Цитата:
|
Re: Как узнать размер меша?
Господа, особенно Джимон, пожалуйста! Релятивистский флуд на тему "...А вот у нас на Колыме МД2- это меш..." неконструктивен, да ко всему является еще и оффтопом.
... По САБЖ-у: ИМХО, размеры любого обьекта можно узнать в редакторе перед экспортом, вручную записать их в файл, а потом считать из файла в Блице. Более того: таким образом можно хранить намного больше данных об обьекте, чем предоставляют средства как Блица, так и мифического Иррлича. ;) |
Re: Как узнать размер меша?
AABBOX
ето воображаемая коробка по осям она обычно применяется для быстрых колизий :) т.е. ето бокс в которую меш вписывается но грани етого бокса паралельны осям |
Re: Как узнать размер меша?
C моей точки зреня ЕТО:
Цитата:
пример X_min=2; X_max=6 (width=4, вроде понятно как считать;) ). короче X_dist=X_max-X_min. для отрицательных X понятно что будет работать и Jimon-овский вариант. Теперь по AABBOX. Как я понял, ето задается программно, и как с помощью етого определить размер объекта :dontknow: . А мне между прочим тоже интересно, можно как-нить узнать размер объекта (помимо mesh-a), программным способом (не чтением из файла) |
Re: Как узнать размер меша?
http://www.gamedev.ru/terms/AABB
AABB :) (ну иногда называется aabbox в некоторых двигах) оно задается именно ентити если ентити не вращать - тоесть углы 0,0,0 то получаем что высота,ширина и длина етого AABB являются также высотой,шириной и длиной меша етого ентити да кстати вот тут коечто есть http://gamemaker.webservis.ru/articles/engine/d8.htm |
Re: Как узнать размер меша?
а как узнать размер AnimMesh ? MeshWidth,MeshHeight, MeshDepth Эти функций возвращают -120 000. И еще почему EntityPickMode mode,2 не работает для АнимМесш?
|
Re: Как узнать размер меша?
уже не раз обсуждалась проблема аниммешов, ето не один объект, а несколько пипарентенных к ентити хендл которого и представляет хендл аниммеша.
надо пользоваться рекурсией чтобы можно было принимать текстуру, цвет, альфу, режим "пиканься" и т.д. размер аниммеша можно узнать так, находим максимальное иминимальное значение вертексов каждого чайлда, прибавляем к етому смещение относительно родителя и находим таким образом максималные и минимальные координаты по каждой из трех осей, потом из максимальных вычитаем минимальную и полуцчаем размер по какой-либо из оси. |
Re: Как узнать размер меша?
Цитата:
Вот так примерно: Код:
Function AnimEntityPickMode(Mesh, Mode) |
Re: Как узнать размер меша?
HolyDel я написал вот такое ну она почемуто не работает типа переполнение памяти говорит.
Код:
Function AnimEntityWidth#(aent) |
Re: Как узнать размер меша?
stack overflow?
вот алгоритм находи ВСЕ чилды нужног нам аниментити. переираем все его чилды и находим левую и правую границу. Вот, я написал кртину чтоб было понятнее. http://likosoft.ucoz.ru/ameshsize.PNG вот код, только идея, на работоспособность не проверял. ПС. етот ентити должен быть неотскален. Код:
|
Re: Как узнать размер меша?
Вот как я определяю размеры тел из макса с учётом скейла
Пример для кубика Код:
dimens_x# = MeshWidth #(child)*0.5*EntityScaleX#(child) |
Re: Как узнать размер меша?
ДА обычный меш то легко моно тросто размер умновжить на процент скалинга и бедет тебе счастье... Меня то Анемированые меши интересуют...
|
Re: Как узнать размер меша?
Cyan не работает
Код:
Function AnimEntityPickMode(Mesh, Mode) |
Re: Как узнать размер меша?
вроде должноработать, попробуй так:
Код:
Function AnimEntityPickMode(Mesh, Mode) |
Re: Как узнать размер меша?
не работает
|
Re: Как узнать размер меша?
а ты с какими цифрами вызываеш?
надеюсь с 2, а то в противных случаях придеться еще и радиус или коробку задавать. |
Re: Как узнать размер меша?
Код:
.... |
Re: Как узнать размер меша?
1. необязательно каждый цинкл проводить изминение пикабелити этих объектов. достаточно ето сделать один раз, во время их создания.
ПС. а можно весь код в студию? |
Там очень много что канкретно нужно?
С простыми (не анемироваными) мешами все ок, а с анемироваными не получается |
Re: Как узнать размер меша?
1. как показывается выделение юнитов
2. ВЕСЬ код от Pick%= CameraPick(Cam,MouseX(),MouseY()) до If Pick%= Unit\Model. 3. вынеси плиз AnimEntityPickMode(Unit\Model,2), туда, где создаются юниты. |
Re: Как узнать размер меша?
Код:
Pick%= CameraPick(Cam,MouseX(),MouseY()) |
Re: Как узнать размер меша?
|
Re: Как узнать размер меша?
черт, как я сразу недопер.
ведь функция возвращает хендл пикнутого ентити и етот хендл несовпадает с хендлом родителя. надо проверять нет ли ентити с таким хендлом среди детей. Код:
function IsMyChild(ent,child) |
Re: Как узнать размер меша?
HolyDel спасибо но МоКа тебя опередил и с этим :)
|
Часовой пояс GMT +4, время: 06:50. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot