-
Короче, создал я в максе модель машины, наложил на неё несколько текстур, загрузил её в GLScene, наложил на неё те же текстуры - а видно только одну, ито растянута по всей модели. Пробовал рендерить текстуру - новая проблема - качество плохое и весит много. Гдето я слышал про файлы с расширением *.skin в которых хранятся пути к текстурам и их координаты данной модели, и в делфи не надо загружать текстуры, а тока файл *.skin (в нем же все координаты и пути).
Кто знает, помогите найти прогу для создания этих скинов, или линк дайте, ато рендерить - это долго и некачественно и память жрёт.
-
А ты про текстурные координаты понятие имеешь? И про то что понятие "материал" и текстура - совершенно разные вещи? И то что ты - "наложил на неё несколько текстур" - ты на самом деле назначил кучу материалов, а GLScene (и большинство двигов) поддерживают на одном меше - один материал. Мультитекстурирование же - совсем инай технология там несколько текстур накладываются используя одни и те же текстурные координаты. Материал (в понятиях МАКСа) же привязан к полигонам\фэйсам и чаще всего пользует тайтлы - шкурки для рисутка материала. Так что - текстуры ты не делал и даже не приближался к текстурированию...
Чтобы текстурировать модель надо вообще-то развертку в МАКСе сделать. Т.е. - задать текстурные координаты для каждого полигона модели. Как это делать - я тебе рассказывать не буду - сам найдешь - куча инфы в и-нете. Потом меш с разверкой грузится в ту же GLScene и ему назначается ОДНА текстура (битмап нарисованный по развертке) - задающая ВСЮ поверхность модели... Которая ляжет на меш в соответствии с разверткой. Это в общих чертах о текстурированных моделях... Не вдаваясь в детали и частные случаи..
В общем - учите азы, млин...
А всякие проги для скинов тебе не помогут.
-
Я делал в максе развёртку, но это долго, к тому же некачественно и текстура весит много. Короче не помогло.
А вот про мультитекстурирование я забыл, если ты чё-нить знаешь про него а GLScene, то обьясни мне пожалуйста.
-
Забыл!
Машину то я уже можно так сказать текстрировал, с ней развёртку провести-то можно, а вот трассы для моей игры, - одной развёрткой не поможешь. Дело в том что трасса это 3ds файл, там и дорога, деревья, всякие предметы, так что развёртка тут точно не поможет, а если поможет, то всё равно надо булет сделать хотя-бы текстур 20!
Надо както мультитекстурировать, помоги! Плз!:)
-
> Мультитекстурирование же - совсем инай технология там несколько > текстур накладываются используя одни и те же текстурные > координаты.
Серьезно чтоли??
-
> @!!ex © (12.01.07 20:38) [4]
Это я к тому, что например вот такой код: glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, 0);
glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.5, 0.5); задает разные текстурные координаты на разные текстуры одного полигона. Я полагаю, вы просто опечатались и имели ввиду что-то другое.
-
> glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, 0); > glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.5, 0.5);
А что это за код? Опиши поподробнее: куда писать и как с ним работать?
-
> Samarik (12.01.07 21:59) [6]
Опечатался. Не одного полигона, а одной вершины.....
Этот код устанавливает вершине координаты текстуры 0 (0,0) а текстуре 1 той же вершины координаты (0.5,0.5). Куда его писать.... Перед отрисовкой вершины.:)) Куда это писать в GLScene - не скажу, не знаю... Fosgen думаю на это лучше ответит.
-
Суть я понял, осталось только научиться это делать:)
-
Samarik (12.01.07 22:36) [8] Значит так... Если я что-то понял - то треки к своей гонке ты делаешь ЕДИНЫМ мешем... Мдя... Ну по хорошему надо назначать материалы в МАКСе и опосля при загрузке во FreeForm ставить UseMeshMaterials в True. Должно помочь. А по хорошему - надо разбирать такой трек на отдельные объекты и делать редактор\генератор треков. Тогда для каждого объекта можно будет сделать развертку и нормально его оттекстурировать.
"Я делал в максе развёртку, но это долго, к тому же некачественно и текстура весит много."
Мда это меня порадовало... Разумеется, нормально (т.е. - качественно) сделать развертку - надо время потратить, да еще и навык (знания) иметь.
А причем тут вес текстуры вот я не понял. Если ты сравнивал битмапы тайтлов, которыми ты материалы в МАКСе "затекстурил" и нормальную развертку - это ты не то сравнивал. В зависимости от масштаба в игре твоей машины, ей хватит либо 512 х 512 либо (по уши) 1024 х 1024. При формате текстуры в jpg с максимальным качеством - весить она будет сущие копейки...
Далее, по поводу мультитекстурирования. Если не вдаваться в "чистый" OGL (ну не хотелось мне в него вдаваться), то чтобы задать иные текстурные координаты надо баловаться с параметрами текстуры в библиотеке:
Material.Texture.MappingSCoordinates Material.Texture.MappingTCoordinates TextureOffset TextureScale
Честно говоря я сам практически не возился. Так что к каким эффектам что приведет - почти не подскажу.
По поводу приведенного кода:
> glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, 0); > glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.5, 0.5);
Писать сие надо в обработчик события OnRender, для объекта DirectOpenGL, который в GLScene имеется. Причем писать - с умом. Если я что-то понимаю - придется обрабатывать таким образом ВСЕ вершины одного меша загруженного во FreeForm (а там он может быть и не один), да ко всему - устанавливать связь переменных типа GL_TEXTURE0_ARB с материалами в библиотеках GLScene. Кроме прочего, насколько я сталкивался GLScene, по умолчанию в инициализации OpenGL-контекста не активирует расширения ARB Так что это - тоже надо делать ручками.
Если что-то из описанного - непонятно, то извиняйте. Значит вы просто рано этими вопросами занялись. :)
-
ЛЮДИ пож объясните как из 3д макса в GLScene вместе с текстурами и чтобы быстро и легко
-
ЛЮДИ пож объясните как из 3д макса в GLScene вместе с текстурами модель загрузить и чтобы быстро и легко
-
в сцене есть такая херня типа нада в свойствах быблы матов написать путь к папке с текстурами, или экспорти модель из макса прямо в папку с текстурами и в сцене оттуда грузи, они автоматически наложаца
|