Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Дек 29, 2013 15:02 Заголовок сообщения: |
|
|
А у меня не рисуется шарик Только белый фон и снизу градиентная полосочка. |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вс Дек 29, 2013 16:34 Заголовок сообщения: |
|
|
BiTL писал(а): | А у меня не рисуется шарик Только белый фон и снизу градиентная полосочка. |
Посмотрел в Chrome на Windows - работает как надо. На Mac OS X тоже. А ты в чём смотрел?
P.S. нашёл автора Forth Haiku! Он сам, конечно, очень красивые штуки пишет. Надо его попросить вернуть команду FOR, рейтрейсинга ради. _________________ Manwe/SandS
www.manwe.ru
Последний раз редактировалось: Manwe (Вс Дек 29, 2013 16:39), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Дек 29, 2013 16:39 Заголовок сообщения: |
|
|
Manwe писал(а): |
Посмотрел в Chrome на Windows - работает как надо. На Mac OS X тоже. А ты в чём смотрел?
|
Chrome, Mac OS X
Тут скорее всего траблы с совместимостью у видео-драйверов. У меня ж чип Intel.
Последний раз редактировалось: BiTL (Вс Дек 29, 2013 16:41), всего редактировалось 2 раз(а) |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вс Дек 29, 2013 16:40 Заголовок сообщения: |
|
|
BiTL писал(а): | Chrome, Mac OS X |
Попробуй тогда уменьшить число вызовов команды "l".
А LavaLamp показывает правильно? _________________ Manwe/SandS
www.manwe.ru
Последний раз редактировалось: Manwe (Вс Дек 29, 2013 16:44), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Дек 29, 2013 16:42 Заголовок сообщения: |
|
|
Manwe писал(а): |
Попробуй тогда уменьшить число вызовов команды "l" |
не помогает |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вс Дек 29, 2013 17:19 Заголовок сообщения: |
|
|
BiTL писал(а): | Manwe писал(а): | Попробуй тогда уменьшить число вызовов команды "l" | не помогает |
Там вообще кривоватый транслятор с Forth в GLSL, может быть на твоей карте не работает. У меня на старом MacBook'е со встроенной видеокартой Intel вообще чёрный экран.
А LavaLamp как? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Дек 29, 2013 18:06 Заголовок сообщения: |
|
|
Ну это работает, вроде также как на скриншоте твоём. Эффеткик портит то, что местами там ровная граница (в одну строку) рисуется, ну всмысле, поидее там не должно же образовываться прямолинейных штукенций. |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вс Дек 29, 2013 21:39 Заголовок сообщения: |
|
|
Попробуй к рейтрейсингу приписать в конец строчку
Она добавляет в стек переменную времени и тут же её удаляет. На результате это не сказывается, но принудительно включает GLSL-компиляцию (без анимации компилирует JavaScript). Вдруг поможет?
Проверил в FireFox на Mac OS X - у меня работает. _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вс Дек 29, 2013 22:11 Заголовок сообщения: |
|
|
Manwe писал(а): | Попробуй к рейтрейсингу приписать в конец строчку
Она добавляет в стек переменную времени и тут же её удаляет. На результате это не сказывается, но принудительно включает GLSL-компиляцию (без анимации компилирует JavaScript). Вдруг поможет?
Проверил в FireFox на Mac OS X - у меня работает. |
неа, не помогает |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вс Дек 29, 2013 23:04 Заголовок сообщения: |
|
|
BiTL писал(а): | неа, не помогает |
Ох, зачем же ты там Submit сделал? Надо было просто Update.
Смотрю, функция len3 ему не нравится (если заменить на константу - уже рисует что-то, даже на JavaScript в Safari). Буду думать как оптимизировать всё это, может быть удастся как-то выкрутиться. Там 3 раза вызывается расчёт n для краткости программы на Forth, но при трансляции в JavaScript или GLSL может три раза подставляться этот участок кода (фиг знает как устроен этот транслятор). Попробую перекроить работу со стеком так, чтобы можно было сохранять переменную n и не пересчитывать её.
Оптимизировал, теперь хватает уже на 18 шагов трассировки. Чётенько так (заметно лучше, чем было)
Но в Safari по-прежнему чёрный экран. Продолжаю копать
Код: | : x0 x 2 * 1 - ;
: y0 y 2 * 1 - ;
: n x0 dup * y0 dup * + 4 - sqrt ;
: m swap / * dup * push 2dup ;
: len3 + + sqrt ;
: l
2dup x0 m y0 m -2 swap / * 3 + dup * pop pop
len3 1 - y0 1 + min
rot + swap ;
0
n
l l l l l l l l l l l l l l l l l l
drop
5 / dup dup |
Попробовал полностью избавиться от push и pop, тогда хватает лишь на 16 шагов, но в Safari так и не помогает
Код: | : x0 x 2 * 1 - ;
: y0 y 2 * 1 - ;
: n x0 dup * y0 dup * + 4 - sqrt ;
: m swap / * dup * -rot ;
: len3 + + sqrt ;
: l 2dup
2dup x0 m 2dup y0 m -2 swap / * 3 + dup *
len3 1 - y0 1 + min
rot + swap ;
0
n
l l l l l l l l l l l l
drop
5 / dup dup |
_________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
|
Digimind assembler digger
Зарегистрирован: 22.09.2007 Сообщения: 103
|
Добавлено: Пн Дек 30, 2013 04:51 Заголовок сообщения: |
|
|
Manwe писал(а): | Попробую перекроить работу со стеком так, чтобы можно было сохранять переменную n и не пересчитывать её. |
Вот она - парадигма моей мечты: чтобы для простого действия перекраивать всю работу. В общем, в лучших традициях Bogosort получается...
Ведь отказываются все от стековой организации - даже её аппаратная поддержка в FPU задолбала и компиляторы и разработчиков, поэтому сделали взамен регистровые SSE.
Единственное, где стековая организация оправдана - это там, где она уместна, например:
|
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Пн Дек 30, 2013 09:44 Заголовок сообщения: |
|
|
Перелопачивать весь алгоритм ради оптимизации - обычное дело. Удивляюсь, что демокодера это возмущает.
Мне стековая организация в 4kLang не нравится совсем. Но ведь это сделано для оптимизации размера. Только в 64kLang смогли отказаться от стека. Даже сам автор Forth Haiku писал доклад о синтезе звука на Forth и пришёл к выводу, что это слишком сложно.
А вот если не звук синтезируешь, а программу пишешь, то стек - нормально.
Digimind писал(а): | Ведь отказываются все от стековой организации - даже её аппаратная поддержка в FPU задолбала и компиляторы и разработчиков, поэтому сделали взамен регистровые SSE. |
Недостаток классического Forth, на мой взгляд, в том, что у него всего два стека: основной и стек возвратов. Если бы стеков было много (как регистров общего назначения) - это было бы шикарно (преимущества как регистрового, так и стекового подхода). Появились бы команды push и pop для произвольных стеков - аналог mov в ассемблере. И никакой головной боли для компиляторов и разработчиков: кто не умеет работать со стеком, пусть использует стеки как регистры. Кто умеет - получит мощнейший инструмент.
Кстати, когда там Werkkzug 5 зарелизят? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
|
Вернуться к началу |
|
|
BiTL DOS lover
Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вт Дек 31, 2013 17:39 Заголовок сообщения: |
|
|
клёво, давай в 128байт exe ^_^ |
|
Вернуться к началу |
|
|
Manwe Администратор сайта
Зарегистрирован: 21.09.2007 Сообщения: 1424
|
Добавлено: Вт Дек 31, 2013 18:46 Заголовок сообщения: |
|
|
BiTL писал(а): | клёво, давай в 128байт exe ^_^ |
С небольшим ущербом для качества можно сократить до 81 байт на Forth, но даже в таком виде вряд ли влезет в 128 байт на ассемблере (особенно в mode 13h)
Код: | : r dup y 12 pow * t + sin swap x * cos + dup floor - ;
18 r
12 r
25 r
dup rot / |
_________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
|
|