Тема: The Maze
Показать сообщение отдельно
Старый 11.03.2009, 13:11   #96
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: The Maze

to ASMjavaC:
По поводу пилообразности... Текстуры кладутся правильно. Пилообразность - это погрешность в целочисленных вычислениях.
Она образуется из-за того, что во время текстуризации столбика шаг приращения не может принимать дробные значения. Из-за этого возникают вот такие вот "эффекты".
Так вот, чтобы не переводить шаг в вещественный тип (а вещественные числа очень медленные в вычислениях), мы пытаемся избавиться от этой погрешности, умножая шаг на 512, а во время определения цвета точки - деля его на 512.
Так вот, если шаг умножать не на 512, а, например, на 4096, то пилообразность практически полностью исчезает.
...
coof:=(63*4096) div hh;
...
setp(n, data[elem,TxLine+(yo div 4096)*64]);
...

Другое дело, что умножения на большие числа - это тоже не есть хорошо. Тут бы побитовым сдвигом влево/вправо поработать, вот тогда бы было все в шоколаде!
Миниатюры
Нажмите на изображение для увеличения
Название: saw1.JPG
Просмотров: 855
Размер:	7.3 Кб
ID:	5514  
(Offline)
 
Ответить с цитированием