Перейти к публикации

Глюки отображения в CFX


Рекомендованные сообщения

Подчистил немного, уже работает и с CFX-Post 11 (win32), ещё глюк с цветом координатной системы исправил.

Осталось только разобраться с win64

<noindex>http://malefice.fatal.ru/files/opengl32.dll</noindex>

Класть в ..\CFX\bin\winnt

Ссылка на сообщение
Поделиться на других сайтах


Tako

Можешь попробовать одну вещь: скачать тестовое приложение (то что я выкладывал раньше), туда закинуть эту dll и проверить на наличие глюков?

Смысл в том чтобы проверить подцепляется ли dll в win64 в таком случае...

Проверил. На твоей проге работает. Без dll глюки есть, с dll глюков нет.

Скинул ее в папку Ansys Inc\v120\CFX\bin\winnt-amd64 - нет изменений

Ссылка на сообщение
Поделиться на других сайтах

Dick

Славненько.

На самом деле стоит подумать над проблемой и ATI, и ансису. Ансису тогда придётся добавлять вызов glColor() после glBegin().

Собственно я именно так и сделал - отслеживал вызов glBegin() и в случае дисплей-листов вставлял текущий цвет (который сохранял сам). Оказалось что для полигонов так делать нельзя... поэтому сделал проверку на квады и треугольники. Так что некие двойные стандарты в дровах ATI всё же есть. Я бы примитивы разбивал по цветам, а не по типам и вызывал задание цвета не внутри glBegin()-glEnd(), а перед такой группой. И вообще надо уже думать как такие вещи делать с помощью шейдеров :)

Tako

Можешь посмотреть в процессах что висит у PostGui_ogl.exe (т.е. в идеале должны быть две opengl32.dll) и вообще посмотреть маршруты?

Насколько я понимаю OpenGL32.dll и в win64 кажется используется.

Проблема состоит в том куда положить мою dll(но в системный каталог ложить нельзя!)...

А проц AMD или Intel?

Я попробую модифицировать dll для использования в системном каталоге, в этом случае будет существовать вероятность проблем с другими OpenGL-приложениями, но влияние должно быть минимально - затрагиваются только дисплей-листы, так что даже тормозов сильно не будет :)

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

У кого есть последний пред-релиз 12 версии попробуйте создать переменную VIEWER_CACHE_COLORS и приравнять ее нулю.

Ссылка на сообщение
Поделиться на других сайтах

Dick

Спасибо!

Работает!

Теперь надо будет посмотреть что происходит в данном случае :)

Но всё равно буду пытаться ATIшников дожать по поводу проблемы с назначением цвета в дисплей-листах.

Посмотрел с помощью GLIntercept.

С этой переменной цвет назначается для каждой вершины.

Т.е. объём дисплей-листов будет больше - больше данных требуется хранить, но не смертельно.

Для версии 11 остаётся мой "патч", либо смотреть результаты в V12 :)

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах

Более эффективный вариант будет создать переменную VIEWER_FACE_LIST

значение как я понял не влияет - 0 или 1

Тогда всё рисуется полигонами, а не треугольниками и квадами дополнительно и проблем тоже нет.

Но в этом случае дисплей-лист короче получается :)

Ещё есть VIEWER_LINE_LIST тоже вроде размер дисплей-листов уменьшает, но я не понял за счёт чего (пока).

Причём этот вариант (VIEWER_FACE_LIST) работает даже в V11.

ps. комично что всё уже было предусмотренно заранее :)

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах

Ну так разработчики из ансиса и ответили, что эта АТИшная проблема была известна еще год назад. Они обращались в АТИ, те что-то исправили в дровах, но потом опять накосячили. В результате, чтоб не зависеть от АТИ, в 12 версии ввели эту переменную (которую я написал). В 11 версии это не работает и исправлений никаких не делали.

Ссылка на сообщение
Поделиться на других сайтах

Для обоих версий можно использовать переменные VIEWER_FACE_LIST и VIEWER_LINE_LIST (обе сразу).

Значение роли не играет хоть 0, хоть 1.

Результат такой же как VIEWER_CACHE_COLORS, но последняя работает только в V12 (и увеличивает дисплей-листы).

В результате на какой-нибудь мега-модели можно не влезть в видеопамять (если будет миллионов 8 треугольников в сцене например или больше). У бытовых НВидия (и у некоторых младших квадр) просто после ~500 тысяч геометрия не грузится в видеопамять (или не вся грузится), т.е. медленно, но со скрипом. Так что шансов на некомфортную работу на нвидии больше :)

ps. Только вот странно что похожие вещи в самом ANSYS отображаются без проблем и там тоже дисплей-листы...

Видимо манера программирования тоже на что-то влияет. Формально то что происходит с VIEWER_CACHE_COLORS больше напоминает как правильно должно быть (по сути OpenGL).

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах

Поинтересуюсь на досуге про них, может еще что-нибудь интересное расскажут :smile:

В любом случае, deLuther, спасибо Вам. Если бы их носом не ткнул в код вряд ли бы получили вразумительный ответ (см. мой пост с ansys approved версией дров :clap_1: )

Ссылка на сообщение
Поделиться на других сайтах

Главное что альтернативная парочка тоже работает, если бы не было наводки про VIEWER_CACHE_COLORS, то хрен бы я их нашёл. А так открыл файл на просмотр PostGui_ogl.exe , нашёл VIEWER_CACHE_COLORS и рядышком они были, ну я и проверил :)

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах

А нафиг? В PostGui_ogl.exe V11 тоже есть откопанные мною переменные, а вот VIEWER_CACHE_COLORS действительно нет.

Прописал 2 упомянутые переменные (лучше обе - а то линии тоже могут сглючить) и CFX-Post V11 замечательно пашет.

ps. Касательно размеров дисплей-листов.

В случае VIEWER_CACHE_COLORS получаем (4 + 3 + 3)*4* 3*1000000/1024^2 ~ 114.4 Мб.

В обычном случае (3 + 3)*4*3*1000000/1024^2 ~ 68.7 Мб (оценка для треугольников).

Таким образом в первом случае 4 млн. треугольников и 500 метров уже под завязку... для ATI конечно же :)

Бытовые NVidia, как уже говорилось, пасуют наамного раньше, т.е. просто медленно работать будут.

(желающим могу помочь проверить)

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах

Просто интересно. Я просил у разработчиков измененный executable, чтоб добавить в 11 версию. На что они ответили, что 12 с 11 версией несовместимы :clap_1: Что-то кажется, что все должно работать нормально :smile:

Ссылка на сообщение
Поделиться на других сайтах

А зачем вообще?

12ая открывает файлы 11ой, даже наоборот тоже пашет... Разве что стейты не открывает нормально.

А вот засовывать экзешник от 12ой в папку 11ой я бы не стал - вполне могут быть ссылки на dll которых нет, либо функции отсутствуют. Впрочем криминала никакого нет - есть желание пробовать, значит можно пробовать :)

Просто внезапно оказалось что можно исправить и другим способом :)

Изменено пользователем deLuther
Ссылка на сообщение
Поделиться на других сайтах

У меня эта фишка тоже заработала. Аж приятно смотреть :)

Интересно, а слабо было ансишникам в хэлп это засунуть?

Кстати, кто-то ставил 9.4 каталист, интересно там что-то поменялось? У меня не ставятся последние 3 версии. Так что проверить не могу.

Да, deLuther, Dick, вы реально молодцы!

Большое вам человеческое спасибо! :clap_1:

Ссылка на сообщение
Поделиться на других сайтах

С точки зрения профессиональных приложений особо ничего не поменялось, скорость примерно на том же уровне.

Только у меня 8.11 начал после спящего режима или при выходе на него отваливаться. С 9.4 этого нет - всё нормально.

Причём изначально 8.11 тоже нормально работал в этом плане. Сейчас опять могу компьютер спокойно оставлять, зная что UPS если что в Hibernate его спокойно отправит.

Ссылка на сообщение
Поделиться на других сайтах

Как вариант, но правда для карточек nVidia.

Была у меня как то на базе 440 чипсета видюха от Leadtek, к которой Leadtek сам дрова писал. ПО версии они всегда отставали от того, что NVIDIA выпускала. Но на дровах NVIDIA карта глючила, а народных работала идеально.

Может быть не стоит свяхываться с референсными дровами, а использовать только то, что на сайте производителя?

Ну и вопросы имеет иногда смысл задавать не разработчику чипа, а разработчику карты.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...