Я пытаюсь воспроизвести реализацию целочисленного исчисления пересечения лучей и треугольников, и я основываю свой код на работе Йоханнеса Ханики (https://jo.dreggn.org/home/2007_master.pdf).).
Но у меня возникла проблема, которая, я думаю, заключается в следующих строках реализации Ханики:
long long int u = (long long int)e1p*kq - (long long int)e1q*kp;
long long int v = (long long int)e2q*kp - (long long int)e2p*kq;
Я считаю, что эти продукты должны иметь какую-то компенсацию, что-то вроде сдвига вправо на (m - 1), как в других разделах кода.
Я сделал эту компенсацию в своем коде, и она работает только таким образом.
Кто-нибудь здесь когда-нибудь реализовывал этот свой код? Или есть предположения по этой проблеме?