Проблема заключается в следующем: нужно текстурировать несколько фигур текстурой из одного файла. Причём, допустим, фрагмент 1*2 нужно наложить на первый объект, следующий кусок текстуры — на второй объект, и так далее.
Есть альтернативный вариант: рассовать эти куски по разным файлам и грузить отдельно, но, во-первых, тот вариант мне больше нравится, а во-вторых, я в Open GL-е недавно и не могу наладить пример из книги Игоря Тарасова, в котором загружайются 2 или более текстур. Причём пример с одной текстурой работает хорошо.
Помогите, плз. Если в книге опечатка, то подскажите книгу лучше.
Этот пример не работает.
Это к вопросу о загрузке 2-х и более текстур.
Что требуется в идеале: из одного bmp-файла, представляющего из себя полоску 24*1, нужно загрузить 24 РАЗНЫХ квадратика с изображениями шашек и тенями, падающими в разные стороны (в зависимости от положения на поле фигуры меняется её текстура — иллюзия 3d
Аноним — это я.
Путём сложных логических умозаключений пришёл к выводу, что траблы не в выводе 2 и более текстур, а в натягивании хотя бы одной на объект.
Вот код, который работает:
Здравствуйте, DeniSS1, Вы писали:
DSS>Аноним — это я. DSS>Путём сложных логических умозаключений пришёл к выводу, что траблы не в выводе 2 и более текстур, а в натягивании хотя бы одной на объект. DSS>Вот код, который работает:
В этом коде у Вас текстур вообще нет. Тут Вы напрямую рисуете изображение в буфер.
Это очень медленно, если нужно рисовать много.
Обратите внимание на функцию resize в которой выставляется нужная проекция.
И так же на то что отключен DEPTH_TEST, ALPHA_TEST, материалы, освещение.
Для 2d это обычно не нужно.
А>Что требуется в идеале: из одного bmp-файла, представляющего из себя полоску 24*1, нужно загрузить 24 РАЗНЫХ квадратика с изображениями шашек и тенями, падающими в разные стороны (в зависимости от положения на поле фигуры меняется её текстура — иллюзия 3d
Прочтите про функцию glTexCoord2d внимательней. Это ключ к Вашей проблеме.
Здравствуйте, 8bit, Вы писали:
8>Вот код который работает как Вам надо:
Спасибо, но этот код при исполнении посылает меня куда-то в ассемблер со словами: "First-chance exception in ещё одна проверка.exe (OPENGL32.DLL): 0xC0000005: Access Violation."
Здравствуйте, DeniSS1, Вы писали:
DSS>Спасибо, но этот код при исполнении посылает меня куда-то в ассемблер со словами: "First-chance exception in ещё одна проверка.exe (OPENGL32.DLL): 0xC0000005: Access Violation."
Посмотрите в дебаге в чем проблема-то... Этот код 100% рабочий.