PЗагрузка текстуры, находящаяся посреди файла

программирование .net visual basic Managed DirectX

Доброго времени суток! Я программирую на Visual Basic .NET и использую Managed DirectX 9.
Есть функция TextureLoader и файл, в котором хранятся не сжатые текстуры PNG формата. Загрузка обычного PNG файла идет безупречно, но как мне загрузить эту текстуру, если она например начинается на X Оффсете и длится Y байтов?
Или же ресурсы игры сначала надо распаковать в папку TEMP, загрузить в ОЗУ нужные, а потом удалить эту папку?
И если это не возможно первым способом, то как защитить данные от умного пользователя, который сможет отследить временную папку и посмотреть файлы? Ну, кроме как не давать им расширения и давать ни о чем не говорящие имена.
Заранее Гигантское спасибо!

Примечание:
Т.е. , файл из "архива" надо сначала извлечь, а потом его загружать? Т.е. , напрямую из файла, с X оффсета по Y оффсет не загрузить?
Ответы:
грузить все равно придется, а все преобразования логично производить уже в памяти, что для текстур означает использование шейдеров.
ок, я тебя немножко не понял, тебе не нужно вырезать только кусочек из всей текстуры, а взять последовательность пикселов и загрузить как текстуру. причина таких действий может быть только одна - желание повысить производительность. только, в этой идее есть одна проблема - так ни кто не делает.
давай отследим этапы обработки изображения при его загрузке в графическую память.
1. подгружается внешний модуль или исп-ся стандартный для чтения изобр-я.
такой модуль обычно написан на ассемблере и является хорошо оптимизированным.
2. из модуля выполняется ф-ция чтения содержимого изобр-я в память.
файл изобр-я грузится в память целыми секторами в силу аппаратных особенностей работы с винчестерами, полученная последовательность бит распаковывается в ОЗУ
алгоритм сжатия используемый в png предполагает чтение всех бит последовательно.
3. далее выполняется передача через системный интерфейс полученной последовательности байт
вызывается системная ф-ция, которой передается адрес и длинна байт, которые пойдут по шине к видиокарте.
Хотя, современные графические библиотеки и их дополнительные обертки умеют принимать путь файла, а единственная выгода - сокращение использования шины данных при загрузке. Если все еще осталось желание это сделать, то самый простой способ сделать отдельный png и грузить из него, но если основная цель - повторное использование текстуры, то ни кто, не отменял:
-разные способы наложения одной текстуры на разные объекты;
-смешивание разных текстур по средствам шейдеров видеокарты;
-генерацию текстур, как процедурную, так и шейдерную.
я тут подумал, а ведь получается, что надо грузить сначала, но можно начало прогнать в холостую и грузить по Y оффсет. т.ч. стандарт png и асемблер в зубы


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.