@ru_arduino

Страница 7512 из 7737
Dolphin
12.09.2018
18:31:46


Fedor
12.09.2018
18:31:49
ты половину линии отражаешь что ли?

Google
Fedor
12.09.2018
18:33:00
что порог

Dolphin
12.09.2018
18:33:10
забей

Fedor
12.09.2018
18:35:21
наверное ты не понял мою гениальную идею - так ведь можно ускорить растеризацию в двое (ну или почти) почему не рендерить линию с двух концов? фактически это размотка цикла будет

Fedor
12.09.2018
18:36:52
да производительность будет зависить от того на сколько медленен IF

но если ты деление за циклом экономишь, почему бы и на IF'ах не съэкономить

Dolphin
12.09.2018
18:38:38
наверное ты не понял мою гениальную идею - так ведь можно ускорить растеризацию в двое (ну или почти) почему не рендерить линию с двух концов? фактически это размотка цикла будет
Во-первых, только если у тебя ПОРОГ выбран правильно Во-вторых, значение порога вконце линии не будет равно DX/2, а значит ты не попадешь в исходную точку. В третьих, растеризация треугольника идет сверху вниз. Если я буду растеризовать с середины, то мне нужна координата секущей длинного ребра. А целочисленно я ее получить не смогу, только приближением, а это уже погрешность.

Fedor
12.09.2018
18:38:38
Ты считаешь неправильно
там не мой алг, это "классическая" растеризация треугольника с DAA

Fedor
12.09.2018
18:39:20
согласен про секущую, но это скорее всего будет быстрее

Dolphin
12.09.2018
18:39:49
ты проебал 3/5

ты понимаешь что это пиздец дохуя?

Google
Fedor
12.09.2018
18:40:52
пожалуйста: (38«16) / (5«16) //при чтении значения брать из старшего регистра

Dolphin
12.09.2018
18:41:11
да нету старшего разряда блять

8 бит архитектура

и сдвиг на 1 бит онли

Fedor
12.09.2018
18:41:40
хм, тогда ясно

Dolphin
12.09.2018
18:41:45
и твоя операция разворачивается уже в портянку

и по тактам - больше 32

+ деление

тактов 100

для 16 бит

+ по коду байт 200

Fedor
12.09.2018
18:43:51
и твоя операция разворачивается уже в портянку
это разворачивается только вначале на приведении в статическуюТочку (а если есть старший регистр, то можно вообще просто в него класть) //но все это не имеет значения если его нет. так что это просто не подходящий для 8бит алг

Dolphin
12.09.2018
18:44:16
наконец-то

А теперь давай тут посчитаем

Fedor
12.09.2018
18:45:46
я тебе сразу сказал что я не знаю архитектуры спеки, так что "наконец то" это ты сказал что там нет возможности оперировать слово

Dolphin
12.09.2018
18:46:06
11 загрузок в ините, 2 сложения, 1 сдвиг цикл: 4 сложения, 2 условия

сложения - за такт, загрузка - два, сдвиг - такт, условия - 2-3

Fedor
12.09.2018
18:46:56
отлично это наверное лучший алг для спеки, с этим я и не спорил

Dolphin
12.09.2018
18:47:19
и твое деление там будет вобще вечным

Google
Dolphin
12.09.2018
18:48:11
~360 тактов

Fedor
12.09.2018
18:48:20
прийдется делить умножением =)

по табличке констант

ладно я шучу

в таком случае за деление под спекой надо руки отрубать

Dolphin
12.09.2018
18:49:28
отлично это наверное лучший алг для спеки, с этим я и не спорил
для любой! архитектуры, этот алгоритм будет быстрее любого другого.

ладно я шучу
про линию с двух сторон еще

идея понятна, но смысл?

вычислительная сложность - та же

Fedor
12.09.2018
18:51:06
возможно это быстрее (я пока только предположил)

IF'ов меньше

Dolphin
12.09.2018
18:51:32
ммм

Fedor
12.09.2018
18:51:54
ну я сказал что фактически это размотка цикла

Dolphin
12.09.2018
18:52:05
суть понял.... типа если начало падает по Y, то и конец поднимаем (не сравнивая)

да, лучше согласен

но с треугольниками не пойдет

Fedor
12.09.2018
18:53:02
ну да как то так (в принципе можно даже не проверять перезапись средней точки)

Dolphin
12.09.2018
18:53:31
ща проверю

XOR'ом

Fedor
12.09.2018
18:54:09
но с треугольниками не пойдет
с треугольниками это потребует модификации с определением секущей (которую если деление не юзать не наждешь) - но на архитектурах с быстрым делением возможно будет рентабельно

Google
Fedor
12.09.2018
18:55:12
а ни чего что мы тут общий чат всеми этими тактами заваливаем? (меня немного смущает когда я смотрю сколько тут народу)

или тут всем норм

Dolphin
12.09.2018
18:56:08


работает

Fedor
12.09.2018
18:56:31
а что за красная зона?

Dolphin
12.09.2018
18:56:46
пауза - остановил

красная - аппаратная линия

зеленая - XOR синим

Th0r
12.09.2018
18:59:02
может не совпасть центральный отрезок, попробуй например нарисуй линию длиной в весь экран и высотой в 3\4\5\6

Admin
ERROR: S client not available

Fedor
12.09.2018
18:59:17
в принципе с учетом деления на константу можно сказать, что подход повторяется рекурсивно (и до какой то вложенности на определенной длинне линии будет ускоряться, пока оверхед не съест)

Fedor
12.09.2018
19:00:06
может появиться нерегулярность алиасинга в середине

Th0r
12.09.2018
19:00:31
сомнительно... угол то одинаковый если и не совпадет, то на один пиксель
угол одинаковый, а начало смещения отрезков может быть разное

Fedor
12.09.2018
19:01:30
вообще если координатам делать правку на пол пикселя, то и этот эфект уйдет гарантированно

Dolphin
12.09.2018
19:01:39
работает )

Fedor
12.09.2018
19:01:52
хех... все и так совпало, расслабляемся =)

Dolphin
12.09.2018
19:03:19
стопэ

Google
Dolphin
12.09.2018
19:03:21
ща

Fedor
12.09.2018
19:04:12
а ну, я вижу у тебя по уму есть правка на центр пикселя (это видно по тому что шаг АА паттерна скраев полпериода составляет)

Dolphin
12.09.2018
19:04:43


не все гладко

Fedor
12.09.2018
19:05:13
при переходе 45

Dolphin
12.09.2018
19:05:15
простреливает погрешность

и до 45 тоже

Fedor
12.09.2018
19:05:31
думаю там просто махнуть координаты надо

Fedor
12.09.2018
19:07:27
попробуй вывести до 90гр

Dolphin
12.09.2018
19:07:44
не получится

свап писать надо

не хочу

я это все за последнюю неделю написал раз 30 уже

с нуля

Fedor
12.09.2018
19:09:17
ладно, все равно это для треугольников нельзя а прирост для линий будет только от экономии половины IF'ов (короче по такту на точку макс)

Страница 7512 из 7737