Главная страница
    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.049 c
3-1085726300
nike_fest
2004-05-28 10:38
2004.06.20
Перенос данных из файла в базу INTERBASE


1-1086617993
zakvaska
2004-06-07 18:19
2004.06.20
Помогите с таймером


1-1086365046
BestMaster
2004-06-04 20:04
2004.06.20
FFT/CFFT Componet (Fast Furie Transformation/Complex Fast Furien)


3-1085643265
Kraw
2004-05-27 11:34
2004.06.20
Программирование TDBGrid


3-1085737503
DIS
2004-05-28 13:45
2004.06.20
Поиск





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский