Size: a a a

pro.graphon (and gamedev)

2020 July 17

d

disba1ancer in pro.graphon (and gamedev)
Антон Ковалев
тогда это изи делается через log2 int функцию
а как?
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
disba1ancer
а как?
если ты про степень двойки, то смещением
источник

d

disba1ancer in pro.graphon (and gamedev)
Антон Ковалев
если ты про степень двойки, то смещением
корень n-ой степени?
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
disba1ancer
корень n-ой степени?
хм, тогда ток через флоат
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
или говорить магию из меджик намберов
источник

АК

Антон Ковалев... in pro.graphon (and gamedev)
апроксимированных
источник

d

disba1ancer in pro.graphon (and gamedev)
ну я в голове доходил до одного способа через квадратные корни
источник

d

disba1ancer in pro.graphon (and gamedev)
только получилось что количество квадратных корней которые надо вычислить равно битности числа, для которого вычисляем
источник

d

disba1ancer in pro.graphon (and gamedev)
единственное что я это вообще придумывал для возведения в дробные степени
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
disba1ancer
ну я в голове доходил до одного способа через квадратные корни
Не. В x87 есть инструкции для степеней двойки: целой и меньшей единицы по модулю. В сочетании с логарифмом можно любую степень от любого основания получить. Целочисленная степень через сдвиги, конечно, а дробная - фз. По таблице наверное
источник

d

disba1ancer in pro.graphon (and gamedev)
Anatoly Tomilov
Не. В x87 есть инструкции для степеней двойки: целой и меньшей единицы по модулю. В сочетании с логарифмом можно любую степень от любого основания получить. Целочисленная степень через сдвиги, конечно, а дробная - фз. По таблице наверное
как целочисленная через сдвиги?
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
В железе
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Сначала получаем из основания множитель для показателя и перемножаем, домножаем на натуральный логарифм 2. fyl2x  - это y*log2(x). По формуле частного логарифмов получается натуральный логарифм. frndint - это округление до целого. Округляется копия (fld st). И вычитается из оригинала. Т.е. есть в наличии целая и дробная часть. f2xm1 - это 2^x - 1 для малых x (дробная часть). Единичка добавляется (fld1 fadd), а потом вызывается fscale, которая первый аргумент (двойка в степени дробной части показателя) домножает на двойку в целой степени - втором аргументе (это то, что было результатом frndint). Дропаем мусор (fstp) и всё. Результат на стеке.
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Во всяких sse/avx++ нет таких инструкций - там вручную ряды считаются буквально. Интринсики трансцендентных и тригонометрических функций в тонны инструкций разворачиваются.
источник
2020 July 18

S

Stas in pro.graphon (and gamedev)
Смотрю стримы по Ghost of Tsushima. Боёвка очень напоминает Hand of Fate.
источник

S

Stas in pro.graphon (and gamedev)
А ещё что-то с задним планом.  То цветы из камней растут. То у облаков отчётливо видны пиксели. То декали крови очень нереалистично выглядят, когда лицо сделано добротно.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
u32 isqrt(u32 x)
{
   u32 m = 0x40000000;
   u32 y = 0;
   u32 z = 0;

   do {
       y += m;

       if (y > x) {
           y = z;
       } else {
           x -= y;
           y = m | z;
       }

       z = y >> 1;
   } while (m >>= 2);

   return y;
}
находит корень за 16 итераций
источник

I

Ioann_V in pro.graphon (and gamedev)
Timur Gagiev
кто-нибудь целочисленное вычисление корня целого числа писал? Что за алгоритмы там?
Я вычислял корень длинных чисел - там Бин.Поимк использовался, задача была олимпиадной, кстати.
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
крут, я когда участвовал в олимпиадах в 2000 и 2001 годах таких слов не знал )
источник