Для тех, у кого глючит/не работает выделение в хаммере
Пару дней назад поставил себе хаммер на старый ноут. А на ноуте том как водится только интеловская видяха, на которой в новой версии дров по страшному глючит выделение объектов. Данная проблема и побудила меня к написанию данного патча.
Патч заменяет используемый в хаммере алгоритм выделения, использующий glRenderMode( GL_SELECT ), на новый, использующий цветовые коды для рендеринга различных объектов. Таким образом, он решает сразу две проблемы:
Неправильная сортировка объектов - некоторые современные драйвера при использовании старого хаммеровского метода вместо реальных значений глубины возвращают атмту, из-за этого объекты совершенно рандомно выделяются через стенку.
Неточность выделения - при использовании старого метода часто выделяются объекты, находящиеся в паре пикселей от курсора, из-за этого очень сложно выделять мелкие объекты, также невозможно выделить фейсы, частично отсеченные камерой. Новый метод выделяет объекты с пиксельной точностью.
Для установки патча распакуйте файлы opengl32.dll и glu32.dll в корневую директорию хаммера. Исходники также прилагаются.
Патч был успешно протестирован на ноутбуке с Mobile Intel 965 Express (X3100) с последней версией дров - 8.15.10.1930.
Качаем и тестируем, особенно интересуют отзывы владельцев карт от ATI, на которых тоже были замечены подобные проблемы. Также интересует, не слишком ли лагает выделение - оно может лагать, особенно на картах с большим количеством объектов.
ЗЫ. Блин, в названии темы ошибся - исправьте кто-нибудь, пожалуйста.
Хм, а ведь подобным же образом можно реализовать select-функционал в моём враппере. Отличная идея заменить один метод другим.
Кстати, я в своих программах всегда юзал выделение по цветовым кодам, никогда select-буферу не доверял.
Советую, кстати, добавить glShadeModel(GL_FLAT) в режиме выделения. Для надёжности.
Есть у меня ноутбук с Mobile Intel(R) 945 Express Chipset Family, использую как сервер, по этому я не помню что бы ставил драйвера на эту "видеокарту", тем не менее, решил проверить фикс (2-ая версия):
Выделение по клику в 3D/2D окне пропало вообще.
Government-Man писал: также невозможно выделить фейсы, частично отсеченные камерой
Вот такое дело... Если объект слишком близко к камере (менее 4х или 2х юнитов, точно не знаю), выделяется объект, что находится за ним. Фикс правит это? Фикс не работает у меня на Win7 X64. Хаммер выдаёт ошибку при открытии вьюпортов "wglMakeCurrentFailed". Видеокарточка указана в профайле. Драйвера последние. Это так и должно быть на НВидиях? Или это вина винды 7?
А у меня в кварке выделение в 3д виде ведет себя более интересно.
Всё прекрасно выделяется, но само выделение видно почему-то только в 2д вьюпортах. А в 3д виде оно появляется на доли секунды и почему-то исчезает. Сами линии, окружающие браш. Причем выделение никуда не девается, просто его визуализация страдает.
PunkPaToB мне лень там регистрироваться, пусть лучше кто нибудь создаст там тему со ссылкой сюда, только мне ту тему покажите, чтобы можно было читать отзывы о работоспособности.