Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Вниз

Текстурирование объектов   Найти похожие ветки 

 
Poison man   (2004-02-25 08:00) [0]

Хелло, Мастера!
При создании своей игрушки возникла большая проблема с текстурированием объектов. Сам пытался разобраться, но ничего не вышло. Обращаюсь к вам.
Растолкуйте, пожалуйста, почему не работает следующий код:

type
.............
.............
.............
var
 Infra:array [1..5] of TFreeForm; //Массив объектов
 N_Infra:integer;                //Счетчик объектов
 Path1, Path2:string;           //Пути к объектам и текстурам
.............

procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
if OpenDialog1.Execute then Path1:=OpenDialog1.FileName;
end;

procedure TForm2.SpeedButton2Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then Path2:=OpenPictureDialog1.FileName;
end;

procedure TForm2.SpeedButton4Click(Sender: TObject);
begin
Infra[N_Infra]:=TFreeForm(Form1.GLScene1.Objects.AddNewChild(TFreeForm));
Infra[N_Infra].LoadFromFile(path1);
Infra[N_Infra].Material.Texture.Image.LoadFromFile(Path2);
Infra[N_Infra].Material.Texture.Disabled:=False;
Infra[N_Infra].Materail.Texture.TextureMode:=tmModulate;

Inc(N_Infra);
end;

end.

Если все ставлю на одной форме (и GLScene, и диалоги), то все ОК. Если же диалоги по выбору моделей и
текстур вешаю на отдельную форму, то объект грузится в сцену, управляется и т.д., а текстуры нет. В чем ошибка?


 
Alek Aaz ©   (2004-02-25 14:34) [1]

Черт его знает... Переменные Path2 и Path1 глобальные?
ИМХО. Нужно делать через GLMaterialLibrary. Грузишь в нее сразу все текстуры, а в диалогах проставляешь какую конкретно грузить.


 
Poison man   (2004-02-25 19:56) [2]

У меня эти переменные объявлены тут:

 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form2: TForm2;
 Path1, Path2:string;
 Infra:array [1..500] of TFreeForm;
 N_Infra:integer;

implementation
.....................
.....................

А GLMaterialLibrary я пробовал так:
На первую форму (ту, что с GLScene) ставил эту самую Library,
а во второй форме уже загружал в нее при необходимости текстуру.
Вот так:

Form1.GLMaterialLibrary2.Materials.Add;
Form1.GLMaterialLibrary2.Materials[N_Infra].Name:="Texture"+inttostr(N_Infra);
Form1.GLMaterialLibrary2.Materials[N_Infra].Texture.Image.LoadFromFile(Path2);

А присваивал материал объекту так:

Infra[N_Infra].Material.MaterialLibrary:=Form1.GLMaterialLibrary2;
Infra[N_Infra].Material.LibMaterialName:="Texture"+inttostr(N_Infra);

И, понятное дело, ставил Texture.Disabled:=false; и в библиотеке материалов, и в самом объекте.

Но толку нет. Текстур как не было, так и не появилось.


 
Alek Aaz ©   (2004-02-26 16:54) [3]

не, я тебе здесь не помощник...



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.045 c
1-1086616990
Gemini
2004-06-07 18:03
2004.06.20
А как программно раскрыть и закрыть узлы в TreeView?


14-1086216097
hiperLogun
2004-06-03 02:41
2004.06.20
XP Menu


1-1086378897
rrew
2004-06-04 23:54
2004.06.20
mytexteditor.exe textfile.txt


1-1086667253
Глеб
2004-06-08 08:00
2004.06.20
Ошибка Access Violation


1-1086669113
Анатолий
2004-06-08 08:31
2004.06.20
BDE снесли без унинстала, как его удалить из реестра?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский