| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > [OpenGL] текстуры |
| Автор: Solomon 3.5.2008, 17:09 |
| Всем добрый день Столкнулся вот с какой проблемой. есть картинка 2D(рис 1 в прикрепленном файле) После её прорисовки получаеться непонятный глюк (рис 2. в прикрепленном файле) если же увеличить размер по X на 2 и более пикселей, то все рисуеться отлично, если уменьшаем по х то получаеться таже муть... может кто сталкивался с данной проблемой и может помочь.. p.s. Да, я знаю что OpenGL работает со степенями 2-х, но надо такие размерности |
| Автор: FIaR 3.5.2008, 18:54 |
| А так по идее и должно рисоваться |
| Автор: just_geek 4.5.2008, 11:01 |
| Воспользоватся расширением http://www.nvidia.com/dev_content/nvopenglspecs/GL_ARB_texture_non_power_of_two.txt Замечу, что хоть ссылка и ведет на сайт nvidia это ARB расширение, должно работать на картах ATI и прочих. |
| Автор: Solomon 5.5.2008, 10:11 |
| FIaR, это почему так должно рисоваться? можно причину? И всмысле поиграться с текстурными координатами? Если начну и играться другие будут криво рисоваться.... just_geek, Спасибо.. посмотрю |
| Автор: Solomon 5.5.2008, 21:21 |
| just_geek, одна проблемка.. проекты у меня казуалки... и как то использовать расширения стремновато, так как наиболее часто в казуалки играют на стареньких тачках... Да я соглсен что уже расширение ARB это стандарт и поддерживаеться почти на 100% машин.. но все же... если например на машине не будут стоять дрова старенькие на видио, то хрен оно его захавает... Это старенький движок я правлю, корпоративный, там народ раньше юзал какието либы стандартные, но с ними вечно были проблемы, типа зеркально отображенных картинок али вообще чудных багов которых вообще страшно вспоминать... подключил свою загрузку к их движки.. и начали вылазить такие глюки.. так как я когда писал свои загрузчики, я расчитывал только на стандартное разрешение(степень двойки) и не тестил на таких разрешениях. И теперь вот мучаюсь в догадках как все настроить... все работает.. и спрайтовые анимации и и большенство картинок... а вот некоторые парит и [censored 6] :( |
| Автор: just_geek 6.5.2008, 09:56 |
| Ну тогда просто грузи как обычно и настраивай текстурные координаты, чтоб только прямоугольник этот рисовался. |
| Автор: AI0 22.5.2008, 14:48 | ||||
| Привет. У меня проблема при отображении текстуры. Делал я всё по примеру, но так как под Linux нет библиотеки glaux я написал функцию считывания матрицы bmp. Но при запуске программы вместо картинки появляется белый квадрат. Может сцена инициализирована не так, чтобы можно было отображать текстуры? . Исходные коды вот: imgread.c - содержит функцию чтения
и morda.c - вся сцена Кстати, размеры картинки я здесь установил явно.
|
| Автор: Solomon 22.5.2008, 21:16 |
| AI0, ты в дебагере не смотрел переменную c данными о пикселях? нормально грузит? p.s. Вообще я думаю стоило создать новую тему!!!! |
| Автор: AI0 23.5.2008, 18:36 |
| Да. Точнее, я даже тупо в консоль выводил этот массив, и там всё как положено, даже заранее инвертировано BGR на RGB. И ещё, когда я использовал другой пример, где были не 2d текстуры, а 3d, то картинка загружалась, и то по не понятной логике, но показывалась вся. К сожалению, сильно не разбираюсь пока в opengl, поэтому не стал использовать тот код, да и забрасывать то, что уже 4 суток ковырял не охота. |
| Автор: AI0 29.5.2008, 16:46 |
| Всё, разобрался, только до сих пор не понял, почему был косяк. Просто загрузку и привязку текстуры я вынес в отдельную функцию. И о чудо! Выскочила красная рожица, натянутая на квадратик!))) |