Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вс Янв 12, 2014 21:17 Заголовок сообщения: |
|
|
Ну вот и до практической пользы дошёл. Сделал bump mapping.
Golden Bump
 _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Янв 14, 2014 00:11 Заголовок сообщения: |
|
|
Не, ну для 9-летнего ребёнка, я считаю, это крутотень: Disco
Можно ещё посмотреть, что он написал, поискав по имени Ivanq. _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вт Янв 14, 2014 00:30 Заголовок сообщения: |
|
|
Manwe писал(а): | Не, ну для 9-летнего ребёнка, я считаю, это крутотень: Disco
Можно ещё посмотреть, что он написал, поискав по имени Ivanq. |
Ну миленько, но хайку эти мало имеют отношения к программированию как таковому. Думаю ребёнку полезнее Qbasic обычный, нежели эти шойдеры, особенно в такой реализации как "форт файку". |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Янв 14, 2014 10:52 Заголовок сообщения: |
|
|
BiTL писал(а): | Ну миленько, но хайку эти мало имеют отношения к программированию как таковому. Думаю ребёнку полезнее Qbasic обычный, нежели эти шойдеры, особенно в такой реализации как "форт файку". |
На QBasic он уже в 6 лет писал эмулятор юниксовской командной строки
А в 8 лет на PHP писал что-то типа почтового сервиса.
Forth и щейдеры полезны тем, что полностью меняют точку зрения на программирование, этакий заход с другого конца. Полагаю, годик повозиться с Фортом и шейдерами будет очень полезно для развития. Да и практическую пользу шейдеры несут. _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Янв 14, 2014 11:35 Заголовок сообщения: |
|
|
Код: | : d dup ;
: ' .5 - ;
: r x ' d * y ' d * + sqrt ;
: lx t 7 + 1.9 * sin 2 / ;
: ly t 7 + 1.7 * sin 2 / ;
: z / r> 80 * sin .7 * * ;
: m lx d * ly d * + .16 + sqrt / * 0 max ;
x '
r d 2dup 2dup >r >r >r >r >r
z lx m
y ' r> z ly m
r> 80 * cos .15 * .85 +
.4 r> 40 * cos 1 + 6 / + m
+ +
1
x ' lx - d *
y ' ly - d *
+ sqrt
- 0 max *
d d * 2 / |
Увеличив код Golden Bump на 15-17 байт, можно сэкономить на вычислениях. Теперь "r" вычисляется не 6 раз, а 1 раз, хранится в стеке возвратов и изымается при необходимости. Тут бы обычная переменная пригодилась, но в данной реализации Forth переменных нет (очевидный минус). Или можно было бы к командам push и pop добавить ещё и команду, которая копирует число из стека возвратов в основной стек, не удаляя оригинал. Даже две команды: dup>r и r>dup. _________________ Manwe/SandS
www.manwe.ru
Последний раз редактировалось: Manwe (Вт Янв 14, 2014 18:15), всего редактировалось 1 раз |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Янв 14, 2014 14:11 Заголовок сообщения: |
|
|
Нашёл глюк в Ray Tracing 1, оказалось тупо: корень из отрицательной величины. Непонятно, почему GLSL его переваривал.
Код: | : x0 x 2 * 1 - ;
: y0 y 2 * 1 - ;
: m swap / * dup * >r 2dup ;
: l
2dup x0 m y0 m -2 swap / * 3 + dup * r> r>
+ + sqrt 1 - y0 1 + min
rot + swap ;
0
x0 dup * y0 dup * + 4 + sqrt
l l l l l l l l l l l l l l l l l l
drop
5 / dup dup |
_________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Пт Янв 17, 2014 00:13 Заголовок сообщения: |
|
|
Ещё немножко рейтрейсинговых глюков (анимация)
И, кажется, я нащупал простой и экономичный способ превращения серой палитры в цветную:
 _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
dukzcry
Зарегистрирован: 18.01.2014 Сообщения: 1
|
Добавлено: Сб Янв 18, 2014 15:08 Заголовок сообщения: |
|
|
Manwe писал(а): |
Офигительно. Forth - язык программирования следующей цивилизации!
|
Не сочтите за флуд, товарищи. Краткая завлекалочка для адептов модной ныне функциональщины. Ратует за конкатенативные языки в целом, и за Forth в частности. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Сб Янв 18, 2014 21:27 Заголовок сообщения: |
|
|
dukzcry писал(а): | завлекалочка для адептов модной ныне функциональщины. Ратует за конкатенативные языки в целом, и за Forth в частности. |
Полезно, спасибо. Прошёлся там по ссылкам и обнаружил вот это:
Форт-процессор J1 (16-битный), трансляторы под Win, Mac, Linux. Говорят, это наипростейший из возможный CPU.
Эх, жаль у меня нет аккаунта на Хабре, а то написал бы статью про Forth Haiku. _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Янв 21, 2014 09:01 Заголовок сообщения: |
|
|
Аккаунт на Хабре завёл, статью написал, сайт Форт Хайку не выдержал наплыва и слёг. Всё правильно сделал, ага  _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Вт Янв 21, 2014 09:09 Заголовок сообщения: |
|
|
Manwe писал(а): | Аккаунт на Хабре завёл, статью написал, сайт Форт Хайку не выдержал наплыва и слёг. Всё правильно сделал, ага  |
У него сайт тоже видать на форте написан  |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Янв 21, 2014 19:56 Заголовок сообщения: |
|
|
Qbert
В оптимизированном виде 172 байта, 72 слова
Код: | : d dup ;
: f floor 2 mod ;
: r + d floor - 0.5 - ;
x 16 * f
y 10 * f
- abs
1.5 + 3 /
y 10 * 0.5 - f 2 / d
y 5 * r 3.2 * abs
x 8 * rot r abs
+ 0.5 > *
d 0 = +
d d sqrt 2 / *
d d * |
Оно же в более читаемом виде (205 байт, 69 слов, не считая комментариев)
Код: | x 16 * floor 2 mod
y 10 * floor 2 mod
- abs ( 2D grid )
1.5 + 3 / ( shadow )
y 10 * 0.5 - floor 2 mod 2 / dup
y 5 * + dup floor - 0.5 - 3.2 * abs
x 8 * rot + dup floor - 0.5 - abs
+ 0.5 > *
( color correction )
dup 0 = +
dup dup sqrt 2 / *
dup dup * |
А вот для сравнения "правильное" (честное) рисование всего лишь одного куба (187 байт, 73 слова):
Код: | : x1 x 6 * 3 - ;
: y1 y 12 * 6 - ;
( left )
x1 y1 + -1 <=
x1 y1 + -3 > *
x1 0 < *
1.5 /
( right )
x1 y1 - 1 >=
x1 y1 - 3 < *
x1 0 >= *
+ 1.5 /
( top )
x1 abs y1 abs + 1 <
+
( cut )
x1 abs 1 < *
( color correction )
dup dup sqrt 2 / *
dup dup * |
P.S.
Вроде как освоился. Можно теперь к ShaderToy переходить. А там, глядишь, и новый FireFox подоспеет со встроенным редактором шейдеров (включая вершинные). _________________ Manwe/SandS
www.manwe.ru
Последний раз редактировалось: Manwe (Ср Янв 22, 2014 12:59), всего редактировалось 11 раз(а) |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Ср Янв 22, 2014 10:12 Заголовок сообщения: |
|
|
Вот ещё одна минималистическая стековая виртуальная машина IBNIZ, автор задумывал её как альтернативу DOS для 256-байтных интр. Но ей недостаёт изящности Forth. _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Чт Янв 23, 2014 09:50 Заголовок сообщения: |
|
|
Да уж, у меня всего 20 фпс  |
|
Вернуться к началу |
|
 |
|