Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2012, 15:25   #1
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию lib3ds текстурирование

Всем привет, использую библиотеку lib3ds для загрузки .3ds модели, могу наложить на неё текстуру или изменить цвет....однако, модель состоит из 4-х мешей, а при наложении или текстура или цвет налаживается на всю модель, хотелось бы узнать как реализовать наложение текстуры в определённое место (так же чтобы тестура на модели была выбранного размера) и цвет налаживался на определённую часть модели.
загрузка модели:
Код:
 model=LIB3DS::lib3ds_file_open(WndThread::directory+"compose.3DS");
for(int i=0;i<model->meshes->Count;i++)
        mesh.Add(model->meshes[i]);
    for(int i=0;i<model->materials->Count;i++)
        material.Add(model->materials[i]);
наложение цветовой текстуры
Код:
int r;
             Random ^ rnd=gcnew Random();
             r=rnd->Next();
             image1=gcnew Bitmap(5,5);
             colorDialog1->ShowDialog();
             for(int i=0;i<5;i++)
             {
                 for(int k=0;k<5;k++)
                 {
                     image1->SetPixel(k,i,colorDialog1->Color);
                 }
             }
             image1->Save(System::IO::Path::GetDirectoryName(System::Reflection::Assembly::GetEntryAssembly()->Location)+"\\colors\\"
                            +Convert::ToString(r)+".jpg",ImageFormat::Jpeg);
             Lib3dsMesh ^tmpmesh=gcnew Lib3dsMesh();
             tmpmodel=gcnew Lib3dsFile();
             mat=gcnew Lib3dsMaterial();
             mat=LIB3DS::lib3ds_material_new("C_Color");
             mat->texture1_map->name=System::IO::Path::GetDirectoryName(System::Reflection::Assembly::GetEntryAssembly()->Location)+"\\colors\\"
                 +Convert::ToString(r)+".jpg";
             int ind=0;
             for(int i=0;i<files_in_dir.Count;i++)
             {
                 model=LIB3DS::lib3ds_file_open(Convert::ToString(files_in_dir[i]));
                 for(int k=0;k<model->meshes->Count;k++)
                 {
                     tmpmesh=model->meshes[k];
                     LIB3DS::lib3ds_file_insert_material(tmpmodel,mat,0);
                     LIB3DS::lib3ds_file_insert_mesh(tmpmodel,tmpmesh,ind);
                     ind++;
                 }
             }
             model=tmpmodel;
             modelrefresher();
Если нужна информация по классам библиотеки, скажите я скину.
revaldo666 вне форума Ответить с цитированием
Старый 10.08.2012, 13:29   #2
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

!Вверх!!!!!
revaldo666 вне форума Ответить с цитированием
Старый 10.08.2012, 20:02   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

я бы тебе помог, самому нужно сделать нечто подобное (в общем-то и собираюсь), но только я в гипсе, а одной рукой писать не очень...
counter вне форума Ответить с цитированием
Старый 13.08.2012, 14:34   #4
revaldo666
Форумчанин
 
Регистрация: 24.06.2010
Сообщений: 251
По умолчанию

Возник ещё один вопрос, когда загружаю текстуру я могу поменять её размер, однако текстура отображается плиткой, как сделать чтобы текстура отображалась только один раз?
revaldo666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
текстурирование Darcangel Общие вопросы Delphi 7 07.08.2012 05:15
DirectX HLSL Текстурирование Celestia Мультимедиа в Delphi 1 03.02.2011 08:59
Текстурирование фона infectioni Помощь студентам 1 30.11.2010 22:08
Текстурирование дерева в сцене OpenGL Miha85193 Мультимедиа в Delphi 0 29.03.2010 18:19
Текстурирование в OpenGL BattleMage Помощь студентам 0 28.04.2009 15:27