Конференция "Игры" » Skin'ы для 3D моделей [Delphi, GLScene, Windows]
 
  • Samarik (11.01.07 17:11) [0]
    Короче, создал я в максе модель машины, наложил на неё несколько текстур, загрузил её в GLScene, наложил на неё те же текстуры - а видно только одну, ито растянута по всей модели. Пробовал рендерить текстуру - новая проблема - качество плохое и весит много. Гдето я слышал про файлы с расширением *.skin в которых хранятся пути к текстурам и их координаты данной модели, и в делфи не надо загружать текстуры, а тока файл *.skin (в нем же все координаты и пути).

    Кто знает, помогите найти прогу для создания этих скинов, или линк дайте, ато рендерить - это долго и некачественно и память жрёт.
  • Fosgen (12.01.07 18:53) [1]
    А ты про текстурные координаты понятие имеешь?
    И про то что понятие "материал" и текстура - совершенно разные вещи?
    И то что ты - "наложил на неё несколько текстур" - ты на самом деле назначил кучу материалов, а GLScene (и большинство двигов) поддерживают на одном меше - один материал. Мультитекстурирование же - совсем инай технология там несколько текстур накладываются используя одни и те же текстурные координаты.
    Материал (в понятиях МАКСа) же привязан к полигонам\фэйсам и чаще всего пользует тайтлы - шкурки для рисутка материала.
    Так что - текстуры ты не делал и даже не приближался к текстурированию...

    Чтобы текстурировать модель надо вообще-то развертку в МАКСе сделать. Т.е. - задать текстурные координаты для каждого полигона модели. Как это делать - я тебе рассказывать не буду - сам найдешь - куча инфы в и-нете. Потом меш с разверкой грузится в ту же GLScene и ему назначается ОДНА текстура (битмап нарисованный по развертке) - задающая ВСЮ поверхность модели... Которая ляжет на меш в соответствии с разверткой. Это в общих чертах о текстурированных моделях... Не вдаваясь в детали и частные случаи..

    В общем - учите азы, млин...

    А всякие проги для скинов тебе не помогут.
  • Samarik (12.01.07 19:12) [2]
    Я делал в максе развёртку, но это долго, к тому же некачественно и текстура весит много. Короче не помогло.

    А вот про мультитекстурирование я забыл, если ты чё-нить знаешь про него а GLScene, то обьясни мне пожалуйста.
  • Samarik (12.01.07 19:27) [3]
    Забыл!

    Машину то я уже можно так сказать текстрировал, с ней развёртку провести-то можно, а вот трассы для моей игры, - одной развёрткой не поможешь. Дело в том что трасса это 3ds файл, там и дорога, деревья, всякие предметы, так что развёртка тут точно не поможет, а если поможет, то всё равно надо булет сделать хотя-бы текстур 20!

    Надо както мультитекстурировать, помоги! Плз!:)
  • @!!ex © (12.01.07 20:38) [4]

    > Мультитекстурирование же - совсем инай технология там несколько
    > текстур накладываются используя одни и те же текстурные
    > координаты.


    Серьезно чтоли??
  • @!!ex © (12.01.07 20:41) [5]

    > @!!ex ©   (12.01.07 20:38) [4]

    Это я к тому, что например вот такой код:

    glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, 0);
    glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.5, 0.5);



    задает разные текстурные координаты на разные текстуры одного полигона.

    Я полагаю, вы просто опечатались и имели ввиду что-то другое.
  • Samarik (12.01.07 21:59) [6]

    > glMultiTexCoord2fARB(GL_TEXTURE0_ARB, 0, 0);
    > glMultiTexCoord2fARB(GL_TEXTURE1_ARB, 0.5, 0.5);


    А что это за код? Опиши поподробнее: куда писать и как с ним работать?
  • @!!ex © (12.01.07 22:12) [7]

    > Samarik   (12.01.07 21:59) [6]

    Опечатался. Не одного полигона, а одной вершины.....

    Этот код устанавливает вершине координаты текстуры 0 (0,0)  а текстуре 1 той же вершины координаты (0.5,0.5). Куда его писать.... Перед отрисовкой вершины.:)) Куда это писать в GLScene - не скажу, не знаю...
    Fosgen думаю на это лучше ответит.
  • Samarik (12.01.07 22:36) [8]
    Суть я понял, осталось только научиться это делать:)
  • Fosgen (18.01.07 20:39) [9]
    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
    Так что это - тоже надо делать ручками.

    Если что-то из описанного - непонятно, то извиняйте. Значит вы просто рано этими вопросами занялись. :)
  • ProG © (23.04.07 15:29) [10]
    ЛЮДИ пож объясните как из 3д макса в GLScene вместе с текстурами
    и чтобы быстро и легко
  • ProG © (23.04.07 15:32) [11]
    ЛЮДИ пож объясните как из 3д макса в GLScene вместе с текстурами модель загрузить
    и чтобы быстро и легко
  • Samarik (23.04.07 18:25) [12]
    в сцене есть такая херня типа нада в свойствах быблы матов написать путь к папке с текстурами, или экспорти модель из макса прямо в папку с текстурами и в сцене оттуда грузи, они автоматически наложаца
 
Конференция "Игры" » Skin'ы для 3D моделей [Delphi, GLScene, Windows]
Есть новые Нет новых   [119250   +30][b:0][p:0.001]