HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > GL_MAX_TEXTURE_IMAGE_UNITS_ARB и GL_MAX_TEXTURE_COORDS_ARB
засада
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



GL_MAX_TEXTURE_IMAGE_UNITS_ARB и GL_MAX_TEXTURE_COORDS_ARB

Как, всем известно, в FFP режиме текстурных юнитов не может быть более 4.
На данный момент функционал FFP, насколько я знаю, не является аппаратным, а полностью эмулируется. И там просто оставили 4 юнита.
При использовании Cg или GLSL у нас другая картина - там мы опираемся на
GL_MAX_TEXTURE_IMAGE_UNITS_ARB и GL_MAX_TEXTURE_COORDS_ARB.
У меня на GeForce9800GT первый равен 32, а второй - 8.
Первый - это кол-во текстурных юнитов, второй - кол-во текстурных координат. Засада заключается в том, что если я использую более 8 текстурных юнитов, OpenGL выдает GL_ENVALID_ENUM.
Т.е. можно подумать, что он опирается на меньшее значение, хотя, к примеру я текстурных координат использую максимум две штуки, да и те через атрибуты, а не через текскорды.
Почитал вот эту темку: http://www.gamedev.ru/code/forum/?id=32907
где, кстати отметился наш старый знакомец Берсеркер и выяснил такую любопытную вещь:

Цитата:

Если по спецификациям DX,то количество реальных/эмулируемых самплеров:
ps1.1-1.3 -4шт
ps1.4 -6
ps2.0 -8
ps3.0 -16

Правда там написано по спецификациям DX, но что если это и в OGL канает тоже?
Кто что об этом знает?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 137256

Старое сообщение 04-05-2014 17:47
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
Как, всем известно, в FFP режиме текстурных юнитов не может быть более 4.

32 лимит, аппаратно - зависит от железки, смотри GL_MAX_TEXTURE_UNITS_ARB. У радеонов с пс1.4 там реально шестёрка возвращается.
Цитата:
Дядя Миша писал:
Кто что об этом знает?

Кто делал волатилу, которая работает на всех мыслимых версиях пиксельных шейдеров - тот и знает.
Ну и берсеркер ещё.

Добавлено 05-05-2014 в 00:59:

Цитата:
Дядя Миша писал:
У меня на GeForce9800GT первый равен 32, а второй - 8.

Ну вот, лимит 8 текстур у тебя.
Это ещё фигня, гораздо забавнее, когда драйвер рапортует поддержку vertex texture fetch, a num_vertex_texture_blablabla_arb равно 0. И такое бывает.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 137258

Старое сообщение 04-05-2014 17:59
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



не-не, я разобрался. Всё дело в вызове
glClientActiveTextureARB
если её не вызывать, то ошибка исчезает.
В принципе я давно заметил, что её перестали вызывать, следовательно она нужна только для FFP.

Добавлено 04-05-2014 в 22:07:

А вот, собственно и подтверждение:

Цитата:

glActiveTextureARB selects which texture unit subsequent texture state
calls will affect. The number of texture units an implementation sup-supports
ports is implementation dependent, but must be at least 2.

Vertex arrays are client-side GL resources, which are selected by the
glClientActiveTextureARB routine.


glClientActiveTextureARB selects the vertex array client state parame-parameters
ters to be modified by glTexCoordPointer, and enabled or disabled with
glEnableClientState or glDisableClientState, respectively, when called
with a parameter of GL_TEXTURE_COORD_ARRAY.

то есть идея такая - биндить текстуры надо через glActiveTexture, а вот задавать текстурные координаты - через glClientAciveTexture

Взято тут: http://www.gamedev.ru/code/forum/?id=62686

Собственно, мне текскорды задавать и не надо, они процедурно в шейдере считаются. Будем знать.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 137259

Старое сообщение 04-05-2014 18:07
-
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34498
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
Дядя Миша писал:
glClientActiveTextureARB

Это и есть FFP-функция. Зачем её вызывать вместе с glVertexAttribPointer?

Добавлено 05-05-2014 в 01:14:

А ффп твоя держит 8 текстур, а не 4. Проверь из интересу.

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 137260

Старое сообщение 04-05-2014 18:14
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32188
Нанёс повреждений: 392 ед.

Рейтинг



Низачем. В движке оно, за компанию вызывается.

Добавлено 04-05-2014 в 22:14:

Цитата:
XaeroX писал:
А ффп твоя держит 8 текстур, а не 4. Проверь из интересу.

Скорее всего да, но коварно рапортует про 4.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 137261

Старое сообщение 04-05-2014 18:14
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 20:31. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > GL_MAX_TEXTURE_IMAGE_UNITS_ARB и GL_MAX_TEXTURE_COORDS_ARB
засада
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024