Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
1

Использование текстурных юнитов несколькими приложениями

11.09.2015, 23:56. Показов 1924. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Вопрос нубский, но не смог найти ответ...
Как я понял, текстурные слоты это блоки памяти в видеокарте, которые могут хранить изображения. И их количество ограничено. Тогда при работе с OpenGL мне надо как-то проверять, что возможно текстурный слот уже используется другим приложением для отрисовки? И где гарантия, что мою текстуру не перезапишет другое приложение?
Кто знает, объясните, пожалуйста, как OpenGL работает для нескольких приложений? Он как-то сам выгружает и подгружает текстуры в текстурные блоки по необходимости?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2015, 23:56
Ответы с готовыми решениями:

Создание и использование юнитов
Добрй день, прошу помочь в решении задачи. Дан массив А, состоящий из n натуральных чисел. Нужно...

Создание и использование юнитов
помогите решить задачу в Паскале, пожалуйста! Дана матрица прядка n. найти наибольший среди...

Разделение вычисления между несколькими приложениями
Реализовать решение задания, разделив вычисления между несколькими приложениями. Для обмена...

Для Работы с несколькими приложениями, графикими редакторами
Компьютер нужен ,как было отмечено в заголовке, для работы с несколькими приложениями одновременно,...

8
39 / 39 / 11
Регистрация: 05.09.2015
Сообщений: 262
12.09.2015, 00:10 2
Не задумывался настолько глубоко, и насчёт разных приложений, но про
И где гарантия, что мою текстуру не перезапишет другое приложение?
- при создании текстуры программа сперва типа "просит свободный ID для текстуры". Дают свободный ID.

Добавлено через 2 минуты
Запрос в поисковик "glGenTextures, glBindTexture, gluBuild2DMipmaps".
0
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
12.09.2015, 00:10  [ТС] 3
Цитата Сообщение от UI-Maker Посмотреть сообщение
при создании текстуры программа сперва типа "просит свободный ID для текстуры". Дают свободный ID.
Я имел ввиду в самом юните
0
1824 / 732 / 99
Регистрация: 01.10.2012
Сообщений: 3,750
12.09.2015, 08:26 4
Цитата Сообщение от contedevel Посмотреть сообщение
Кто знает, объясните, пожалуйста, как OpenGL работает для нескольких приложений?
Первый раз об этом слышу, но есть фундаментальное понятие "контекст", отсюда и пляшите. Вот навскидку первая ссылка. В общем, надо сильно постараться чтобы использовать неск приложениями
1
656 / 237 / 46
Регистрация: 24.01.2013
Сообщений: 726
12.09.2015, 11:29 5
Лучший ответ Сообщение было отмечено contedevel как решение

Решение

Текстурный юнит и сама текстура это разные вещи, и количество загруженных текстур не имеет ничего общего с количеством текстурных слотов.

Текстурный юнит/слот это аппаратный блок в видеокарте, который осуществляет выборку и фильтрацию текселей из текстуры. Ну а сама текстура это уже блок памяти.

Прикладная (не системная) программа не может и не должна знать ничего о других программах.
А загрузка видеопамяти это забота исключительно драйвера видеокарты. Даже если ваша текстура не влезет в память видеокарты, то на работу программы это не повлияет, т.к. драйвер кеширует все загруженные графические ресурсы в оперативной памяти. Если случится так, что текстура данного приложения будет вытеснена из видеопамяти, то это приведет только к падению фпс.
1
57 / 55 / 13
Регистрация: 07.10.2012
Сообщений: 606
12.09.2015, 12:54  [ТС] 6
Цитата Сообщение от _Develop Посмотреть сообщение
Текстурный юнит и сама текстура это разные вещи, и количество загруженных текстур не имеет ничего общего с количеством текстурных слотов.
Текстурный юнит/слот это аппаратный блок в видеокарте, который осуществляет выборку и фильтрацию текселей из текстуры. Ну а сама текстура это уже блок памяти.
Прикладная (не системная) программа не может и не должна знать ничего о других программах.
А загрузка видеопамяти это забота исключительно драйвера видеокарты. Даже если ваша текстура не влезет в память видеокарты, то на работу программы это не повлияет, т.к. драйвер кеширует все загруженные графические ресурсы в оперативной памяти. Если случится так, что текстура данного приложения будет вытеснена из видеопамяти, то это приведет только к падению фпс.
Спасибо за подробный ответ!
Можно я еще по функциям openGL спрошу чуть позже, просто на работе сейчас?
0
656 / 237 / 46
Регистрация: 24.01.2013
Сообщений: 726
12.09.2015, 13:00 7
Стучите, и вам откроют.
0
3 / 3 / 1
Регистрация: 25.03.2009
Сообщений: 76
12.09.2015, 13:19 8
Текстурный юнит содержит в себе указатель на текстурный сэмплер. Текстурный сэмплер это сама текстура + её личные настройки. В шейдерах вы работаете с указателем на текстурный юнит.
Не могу быть в вашем вопросе правдой в последней инстанции, но текстурные юниты выделяются отдельно для каждого графического процесса. Иначе возникла бы та же самая проблема, что и при проектировании процессорных конвейеров, где разные команды на разной стадии могли использовать одни и теже ресурсы, что приводило к коллизиям, блокировкам и тд.
0
656 / 237 / 46
Регистрация: 24.01.2013
Сообщений: 726
12.09.2015, 13:35 9
Добавлю еще один штрих для лучшего понимания общей картины работы GPU -

не смотря на то что в GPU много шейдерных процессоров, в один данный момент времени может выполняться только одна шейдерная программа. Т.е. получается если в системе запущено несколько графических приложений, то драйвер выделяет им время GPU по очереди. Отсюда следует независимость по текстурным юнитам и др. ресурсам GPU.
0
12.09.2015, 13:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2015, 13:35
Помогаю со студенческими работами здесь

Управление несколькими различными приложениями MS Office из одного макроса
Всем доброго времени суток! Заранее извиняюсь за нубский вопрос. В VB/VBS/VBA новичок. Подскажите,...

Создать постоянно действующие каналы между несколькими одновременно работающими приложениями
Подключение установленной программы на компьютере к visual basic . Можно ли это сделать и как ?

Использование одной базы 2-мя приложениями
Доброго времени суток!!! Есть 2 приложения. Одно серверное (ASP) - для чтения данных из БД и...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru