Вопрос Помощь с интеграцией ITextFormatting в Expensive MSDF Font S

Danq Client
Начинающий
Статус
Оффлайн
Регистрация
23 Апр 2024
Сообщения
577
Реакции[?]
2
Поинты[?]
2K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

:joycat: Всем привет!
Писал я сегодня ESP как вдруг настал момент написания нейм-тагов.
Вспомнил что в мою (Expensive) MSDF систему шрифтов не добавлена поддержка Text Formatting для отображения цвета донатов или других цветных префиксов, пробовал добавлять естественным способом меняя в методах стринги на TextFormatting, но что-то не помогло, крашит. Есть у кого нибудь догадки на этот счёт?
 
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Скорее всего, текущая реализация MSDF-рендера ожидает фиксированный формат данных (например, просто текст в виде массива символов), а замена на TextFormatting нарушает совместимость. Возможно, шейдеры или методы рендеринга не знают, как обрабатывать дополнительные данные о цвете.
Ошибка может быть в передаче данных в буфер (например, некорректный размер или формат). Без уточнений тут и не сказать :disappointed:
 
Danq Client
Начинающий
Статус
Оффлайн
Регистрация
23 Апр 2024
Сообщения
577
Реакции[?]
2
Поинты[?]
2K
Скорее всего, текущая реализация MSDF-рендера ожидает фиксированный формат данных (например, просто текст в виде массива символов), а замена на TextFormatting нарушает совместимость. Возможно, шейдеры или методы рендеринга не знают, как обрабатывать дополнительные данные о цвете.
Ошибка может быть в передаче данных в буфер (например, некорректный размер или формат). Без уточнений тут и не сказать :disappointed:
Спасибо за ответ. Попробую исправить передачу цвета в буфер.
 
Начинающий
Статус
Оффлайн
Регистрация
12 Ноя 2024
Сообщения
295
Реакции[?]
6
Поинты[?]
3K
ну так обрабатывай форматирование отдельно от текста, и будет тебе чудо :roflanPominki:
либо заместо itextformatting юзай itextcomponent
 
Danq Client
Начинающий
Статус
Оффлайн
Регистрация
23 Апр 2024
Сообщения
577
Реакции[?]
2
Поинты[?]
2K
Начинающий
Статус
Оффлайн
Регистрация
22 Окт 2022
Сообщения
12
Реакции[?]
0
Поинты[?]
0
Спасибо за ответ. Попробую исправить передачу цвета в буфер.
Прошу не кидать палками :disappointed:

(GLSL)

uniform sampler2D msdfTexture;
uniform sampler1D colorBuffer; // Текстура с цветами для каждого символа
uniform int charCount;

in vec2 TexCoord;
out vec4 FragColor;

void main() {
float sdf = texture(msdfTexture, TexCoord).r;
float alpha = smoothstep(0.45, 0.55, sdf); // Обычная MSDF-логика
int charIndex = int(TexCoord.x * float(charCount)); // Индекс символа
vec4 color = texelFetch(colorBuffer, charIndex, 0); // Получить цвет
FragColor = vec4(color.rgb, alpha * color.a);
}

(CPP)

void renderFormattedText(const std::string& formattedText) {
auto segments = parseFormattedText(formattedText); // Как в решении 1
std::vector<glm::vec4> colors;
std::string plainText;
for (const auto& segment : segments) {
plainText += segment.text;
colors.insert(colors.end(), segment.text.length(), segment.color);
}
// Привязка буфера цветов
GLuint colorBuffer;
glGenTextures(1, &colorBuffer);
glBindTexture(GL_TEXTURE_1D, colorBuffer);
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, colors.size(), 0, GL_RGBA, GL_FLOAT, colors.data());
glUniform1i(glGetUniformLocation(shader, "colorBuffer"), 0);
glUniform1i(glGetUniformLocation(shader, "charCount"), plainText.length());
renderMSDFText(plainText); // Ваш метод рендера
glDeleteTextures(1, &colorBuffer);
}
 
Начинающий
Статус
Онлайн
Регистрация
31 Июл 2022
Сообщения
424
Реакции[?]
19
Поинты[?]
24K
Если для тебя цвет доната идет через TextFormatting, тогда у возможно дело не в фонт системе
 
Danq Client
Начинающий
Статус
Оффлайн
Регистрация
23 Апр 2024
Сообщения
577
Реакции[?]
2
Поинты[?]
2K
PoC Life
Пользователь
Статус
Оффлайн
Регистрация
22 Авг 2022
Сообщения
465
Реакции[?]
54
Поинты[?]
46K
:joycat: Всем привет!
Писал я сегодня ESP как вдруг настал момент написания нейм-тагов.
Вспомнил что в мою (Expensive) MSDF систему шрифтов не добавлена поддержка Text Formatting для отображения цвета донатов или других цветных префиксов, пробовал добавлять естественным способом меняя в методах стринги на TextFormatting, но что-то не помогло, крашит. Есть у кого нибудь догадки на этот счёт?
у ITextFormatting есть специальный метод, который перечисляет символ и его цвет
 
Сверху Снизу