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

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

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

Ответ
 
Опции темы
Старый 12.01.2009, 23:49   #1
-=Jack=-
ПроЭктировщик
 
Аватар для -=Jack=-
 
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений
(для 44 пользователей)
Смех Subset'ы

Я пишу поддержку файлов формата 3ds для своего движка. Возникла проблема с текстурированием. При загрузке из файла Х меш разбивается на субсеты, каждому из которых соответствует текстура. Вот проблема в том, что я не знаю, как разбить созданный программно меш на субсеты.

Заранее спасибо!
__________________
Я бы изменил мир, но Бог не даёт исходников...
(Offline)
 
Ответить с цитированием
Старый 13.01.2009, 18:10   #2
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Subset'ы

тебе че надо: рендерить нужный сабсэт нужной тексой?
__________________

(Offline)
 
Ответить с цитированием
Старый 13.01.2009, 18:17   #3
-=Jack=-
ПроЭктировщик
 
Аватар для -=Jack=-
 
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений
(для 44 пользователей)
Ответ: Subset'ы

Нет, мне нужно разбить меш на сабсеты. Но я вроде разобрался, что для этого нужно юзать SetAttributeTable, сейчас проверяю, работает ли...
__________________
Я бы изменил мир, но Бог не даёт исходников...
(Offline)
 
Ответить с цитированием
Старый 14.01.2009, 21:33   #4
-=Jack=-
ПроЭктировщик
 
Аватар для -=Jack=-
 
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений
(для 44 пользователей)
Ответ: Subset'ы

Не работает Если я загружаю меш из X, то Mesh.GetAttributeTable возвращяет нулевой массив mr.DIMAS, ты же вроде тоже двиг пишешь, что ты ещё загрузку мешей из других форматов не делал?
__________________
Я бы изменил мир, но Бог не даёт исходников...
(Offline)
 
Ответить с цитированием
Старый 14.01.2009, 22:17   #5
mr.DIMAS
Дэвелопер
 
Аватар для mr.DIMAS
 
Регистрация: 26.12.2006
Адрес: Санкт-Петербург
Сообщений: 1,572
Написано 547 полезных сообщений
(для 1,540 пользователей)
Re: Subset'ы

пока еще не добрался, но уже на днях собираюсь написать. слух раз надо разбить на сабсэты то сделай по такому алгоритму
struct vertex
{
D3DXVECTOR3 p; // позиция вершины
D3DXVECTOR3 n; //нормаль
D3DXVECTOR2 t; //координаты тексы
unsigned long subsetN; //номер принадлежности к определенному сабсэту
};
struct _3dsmesh
{
vertex data[65536];
LPDIRECT3DTEXTURE9 pTexture[7];
};
воть и далее мочим загрузку из 3ds'a и забиваем структуру данными из файла(надеюсь ты знаешь как это сделать). а subsetN устанавливаем в соответствии с определенными объектом. например
_3dsmesh mesh;
... загрузка меша(координаты вершин, нормалей и текстурных координат)
... thisObject = первый_меш_в_файле и т.д.
if(thisObj == "Рука")
{
D3DXCreateTextureFromFile(pd3dd,путь_к_текстуре_ру ки_указанный_в_3ds'e,mesh.pTexture[0]);
mesh.subsetN = 0
};
примерно так.
зы. может быть очень завернул - ногами не бить
__________________

(Offline)
 
Ответить с цитированием
Старый 15.01.2009, 00:02   #6
-=Jack=-
ПроЭктировщик
 
Аватар для -=Jack=-
 
Регистрация: 10.01.2009
Адрес: хз
Сообщений: 177
Написано 18 полезных сообщений
(для 44 пользователей)
Ответ: Subset'ы

мм... не то. Я загружаю всю инфу из файла(координаты, тексы и принадлежность к сабсетам). Меня вот что интересует. Как разделить сам меш на субсеты и этим субсетам присвоить определённые треугольники, так, чтобы я мог вызвать Mesh.DrawSubset для этого. При загрузке файлов X это происходит автоматически, а вот как это сделать программно?

Насчёт Mesh.GetAttributeTable:
Для того, чтобы нормально обращятся к этой функции, нужно сначала оптимизировать меш. И вроде как через Mesh.SetAttributeTable можно назначить каждому атрибуту(как я понял, это и есть сабсэты) ночальный треугольник и их количество и начальную вершину и их количество. Только я вот не пойму: мне что нужно будет вызывать оптимизацию при любом изменении вершинного/индексного буфера?
__________________
Я бы изменил мир, но Бог не даёт исходников...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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