Дядя Миша писал: здрасти-приехали. На кой же тогда чёрт изобретали плавающую точку, если фиксированная лучше?
"Преимущество использования представления чисел в формате с плавающей запятой над представлением в формате с фиксированной запятой (и целыми числами) состоит в том, что можно использовать существенно больший диапазон значений при неизменной относительной точности."
Цитата:
Дядя Миша писал: ну вот нормали сохранить. Те же три байта, но точность должна быть выше, чем с BFN. Правда и распаковка - сложнее.
Как может быть выше точность у 2 бит мантиссы, если у BFN точность на уровне RBG16F (а там 10 бит мантиссы)
Добавлено 15-04-2020 в 19:08:
Цитата:
Дядя Миша писал: Ну и взял 32768. Так вот - это нихрена не помогло по сути. Как оно съезжало, так и продолжило съезжать. Тогда я подумал, есть же халф-флоаты, попробую их. И да - с ними исчезли практически все проблемы.
ncuxonaT писал: Ты где-то напортачил, не должно было быть такого.
Да с кем я спорю? Ну возьми в цикле прогони фикседпоинт и плавающую точку с разными значениями и посравнивай-потести. А потом умничай про "напортачил".
Цитата:
ncuxonaT писал: если у BFN точность на уровне RBG16F
С хрена ли? Суть BFN в том, чтобы более эффективно использовать 24 бита для векторных значений. Выше этих 24 бит на три компоненты она не станет никоим образом.
Цитата:
thambs писал: Её используют там где требуется фиксированная точность -- в типографии и бухгалтерии.
Не знаю насчёт типографии, но в бухгалтерии даблы поидее.
Добавлено 15-04-2020 в 20:34:
Нет, если нужна прям фиксированная-фиксированная точность, то переменную явным образом разделяют на две части.
Дядя Миша писал: Да с кем я спорю? Ну возьми в цикле прогони фикседпоинт и плавающую точку с разными значениями и посравнивай-потести. А потом умничай про "напортачил".
Можно попробовать. Но лучше покажи код со своей реализацией целочисленных текстурных координат.
Цитата:
Дядя Миша писал: С хрена ли? Суть BFN в том, чтобы более эффективно использовать 24 бита для векторных значений. Выше этих 24 бит на три компоненты она не станет никоим образом.
Дядя Миша это ты из головы написал сейчас. Вот как оно написано, при текстуре 1024х точность будет 1/32 пикселя, тогда как у халффлота точность на большей части была бы 1 пиксель.
Можешь показать весь кусок кода?
ncuxonaT писал: Вот как оно написано, при текстуре 1024х точность будет 1/32 пикселя
Воу-воу-воу, что ты несёшь? Причём тут размер текстуры??? Я же выше написал, что привёл фиксированную точку к диапазону 0-1 и взял множитель как можно больше, для увеличения точности. Можно сказать - максимально возможный для слова. А привязываться к размеру текстуры - это еще хуже. Не зря там в компиляторе написано FIXME.
Добавлено 15-04-2020 в 21:55:
PS. Кармак, к слову хранил st для моделей во флоатах, это чисто вальвовский прикол.
Дядя Миша давай-ка повежливее, что за фамильярности. К размеру текстуры я привязываюсь только чтобы как-то измерить ошибку точности. Текстурные координаты в мдл хранятся в знаковых или беззнаковых шортах? Почему ты умножаешь на 32768, если диапазон знакового шорт от -32768 до 32767? В любом случае это вряд ли сильно влияет на сдвиг.
Запилил поддержку рескейла шрифтов. Еще вчера я надеялся, что вот эти вот настройки можно было как-то задать при создании шрифта, но раз нет, так нет. Слева картинки, созданные ФиЭктро, справа - шрифт, с подогнанным скейлом.
Цитата:
ncuxonaT писал: Текстурные координаты в мдл хранятся в знаковых или беззнаковых шортах?
Координаты идут в однородном потоке gl-комманд. Поток весь состоит из знаковых шортов.
Цитата:
ncuxonaT писал: Почему ты умножаешь на 32768
А на сколько надо? В оригинале шло умножение на размер текстуры. Т.е. точность плавала вместе с этим размером. Очевидно, чем больше число, тем выше точность фиксированной точки. Я взял максимально возможное, чтобы не париться со знаком. Диапазон, еще раз повторюсь, от НУЛЯ ДО ЕДЕНИЦЫ, может просто когда я цифрами пишу 0-1, ты этого не замечаешь.
Добавлено 15-04-2020 в 22:26:
ЗЫ. по шрифтам отличия в качестве картинок, типа лёгкого блура, ну тут надо понимать, что оригинал генерился в разрешение 640х480 и уже предумножен на 1.6. Плюс DXT добавил артефактов в цвет, хотя это и странно конечно. Ну может еще джипег от себя добавил.
Добавлено 15-04-2020 в 22:29:
Но вот отличия в цвете кнопок - это стопудова косяк DDS, потому что я брал пипеткой оригинальный цвет из исходника.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
Дядя Миша писал: Диапазон, еще раз повторюсь, от НУЛЯ ДО ЕДЕНИЦЫ
Ты понимаешь, что на этом диапазоне у шорта будет постоянная точность, а у халффлоата плавающая? И чем больше разрешение текстуры, тем сильнее это будет заметно?
Вот я прогнал для теста флоаты от 0.9000 до 0.9020 с шагом в 0.0001, можешь сам посмотреть, где больше ошибка
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
KiQ писал: то есть для шрифтов брать не хотел, а для скриншотов - можно?
А што, рендеринг шрифтов и сохранение в джипег это один и тот же код? Я не против STB, я против любой отсебятины в плане рендеринга шрифтов. Да и альбатросс сказал, что там нет антиальясинга, а к примеру этот же бакслэш без него юзать вообще невозможно.
Цитата:
ncuxonaT писал: можешь сам посмотреть, где больше ошибка
у фиксированной точки, естественно. Потому что на ней текстуры - съезжали. А на халф-флоате нет.
Цитата:
ncuxonaT писал: буквы плавают вверх-вниз
да, есть такое.
Добавлено 15-04-2020 в 23:49:
Есть какая-то чёртовая моделька, банка штоли. Так вот при фиксированной точке на ней текстура съезжала гарантированно. А на халфе - нет.