www.demoscene.ruenglish version
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация   ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Forth Haiku
На страницу Пред.  1, 2, 3, ... 19, 20, 21  След.
 
Начать новую тему   Ответить на тему    Список форумов DemoScene.Ru -> Демо
Предыдущая тема :: Следующая тема  
Автор Сообщение
BiTL
DOS lover


Зарегистрирован: 22.09.2007
Сообщения: 2950


СообщениеДобавлено: Вс Дек 29, 2013 15:02    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):

Ссылка


А у меня не рисуется шарик Sad Только белый фон и снизу градиентная полосочка.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1424


СообщениеДобавлено: Вс Дек 29, 2013 16:34    Заголовок сообщения: Ответить с цитатой

BiTL писал(а):
А у меня не рисуется шарик Sad Только белый фон и снизу градиентная полосочка.

Посмотрел в 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 писал(а):

А LavaLamp как?


Ну это работает, вроде также как на скриншоте твоём. Эффеткик портит то, что местами там ровная граница (в одну строку) рисуется, ну всмысле, поидее там не должно же образовываться прямолинейных штукенций.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Manwe
Администратор сайта


Зарегистрирован: 21.09.2007
Сообщения: 1424


СообщениеДобавлено: Вс Дек 29, 2013 21:39    Заголовок сообщения: Ответить с цитатой

Попробуй к рейтрейсингу приписать в конец строчку
Код:
t drop

Она добавляет в стек переменную времени и тут же её удаляет. На результате это не сказывается, но принудительно включает GLSL-компиляцию (без анимации компилирует JavaScript). Вдруг поможет?
Проверил в FireFox на Mac OS X - у меня работает.
_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
BiTL
DOS lover


Зарегистрирован: 22.09.2007
Сообщения: 2950


СообщениеДобавлено: Вс Дек 29, 2013 22:11    Заголовок сообщения: Ответить с цитатой

Manwe писал(а):
Попробуй к рейтрейсингу приписать в конец строчку
Код:
t drop

Она добавляет в стек переменную времени и тут же её удаляет. На результате это не сказывается, но принудительно включает 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


СообщениеДобавлено: Вт Дек 31, 2013 16:16    Заголовок сообщения: Ответить с цитатой

Всем новогодняя intro от меня, с наилучшими пожеланиями!

_________________
Manwe/SandS
www.manwe.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
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
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DemoScene.Ru -> Демо Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3, ... 19, 20, 21  След.
Страница 2 из 21

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах