[Вопрос] Кеширование Текстур

Попробуй это
XML:
<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    xmlns:noesis="clr-namespace:NoesisGUIExtensions;assembly=Noesis.GUI.Extensions">
  <UserControl.Resources>
    <BitmapImage x:Key="Icon1" UriSource="assets/icon1.png" />
    <BitmapImage x:Key="Icon2" UriSource="assets/icon2.png" />
    <BitmapImage x:Key="Icon3" UriSource="assets/icon3.png" />
  </UserControl.Resources>
  <b:Interaction.Triggers>
    <b:EventTrigger EventName="Loaded">
      <b:InvokeCommandAction Command="{Binding cm.cache.Texture}" CommandParameter="assets/icon1.png"/>
      <b:InvokeCommandAction Command="{Binding cm.cache.Texture}" CommandParameter="assets/icon2.png"/>
      <b:InvokeCommandAction Command="{Binding cm.cache.Texture}" CommandParameter="assets/icon3.png"/>
    </b:EventTrigger>
  </b:Interaction.Triggers>
  <StackPanel>
    <Image Source="{StaticResource Icon1}" Width="64" Height="64" />
    <Image Source="{StaticResource Icon2}" Width="64" Height="64" />
    <Image Source="{StaticResource Icon3}" Width="64" Height="64" />
  </StackPanel>
</UserControl>
 
Кеширование текстуры требуется только в том случае, если элемент с текстурой постоянно создается и удаляется в документе.
Если элемент просто скрывается видимостью как это сделано в [Пример] Хитмаркер или [Пример] Киллмаркер, то кеширование обычно не требуется.

Загруженные текстуры можно посмотреть через команду +mat_texture_list, выбрав показ всех текстур и отфильтровав их по названию noesis.
Есть так же возможность включить команду noesisui_log_info 1 для вывода в консоль информации о загрузках текстур. Если по логу показывается что текстуры постоянно загружается при показе, тогда кеширование желательно.
 
Кеширование текстуры требуется только в том случае, если элемент с текстурой постоянно создается и удаляется в документе.
Если элемент просто скрывается видимостью как это сделано в [Пример] Хитмаркер или [Пример] Киллмаркер, то кеширование обычно не требуется.
Через атлас текстур сделал несколько анимированных оверлеев и проблема в том что при первых 5 убийствах эти картинки загружаются и создается пролаг, можно как-то загрузить текстуры сразу при старте джски?
 
Через атлас текстур сделал несколько анимированных оверлеев и проблема в том что при первых 5 убийствах эти картинки загружаются и создается пролаг, можно как-то загрузить текстуры сразу при старте джски?
Для создания анимированного оверлея ты можешь использовать либо Lottie, либо Rive. Я бы лично использовал Rive, если ты хочешь отображать динамически имя команды, и поддерживать локализацию имени команды на другие языки, и анимировать этот текст.
Ты можешь создать анимированный оверлей в векторном формате или все также оставить в растровом виде, но просто в редакторе Rive сделать последовательность твоих текстур и все. Где то я видел пример создания анимированного огонька в Rive из обычных текстур
 
Через атлас текстур сделал несколько анимированных оверлеев и проблема в том что при первых 5 убийствах эти картинки загружаются и создается пролаг, можно как-то загрузить текстуры сразу при старте джски?
если требуется использовать атлас и есть пролаг, то остается только кешировать из документа ноезиса.
позже добавлю возможность кешировать из плагина.
 
еще забыл добавить, что рекомендуется использовать vtf текстуры, потому что у них есть асинхронная загрузка.
то есть пролаг будет минимален, но текстура покажется с некоторой задержкой.
 
Я бы и сам хотел использовать vtf, но так и не понял как сделать что бы оно анимировалось без vmt
 
Я бы и сам хотел использовать vtf, но так и не понял как сделать что бы оно анимировалось без vmt
Итоговый атлас текстур импортируй в vtf формат и в xaml просто замени texture.png на texture.vtf
 
Last edited:
Я бы и сам хотел использовать vtf, но так и не понял как сделать что бы оно анимировалось без vmt
просто конвертани свою атлас текстуру в vtf и переименуй формат в документе.
если ищешь прям примеры для анимированных текстур vtf, то вполне сгодятся любые анимированные спреи. в интернете их достаточно.
 
Ну это понятно что так можно атлас в vtf конвертировать.
А вот дефолтная анимированная vtf(без атласа, а простая анимация где просто фреймы меняются) происходит без анимации, первоначально через него и пробовал в итоге пришёл к атласу.
 
да, действительно анимированный vtf текстуры не работают таким образом.
не вижу смысла что-то с этим делать, когда в будущем планируется реализация гифок и видео.
 
Back
Top