Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
tone robot modeller

Зарегистрирован: 21.09.2007 Сообщения: 513
|
Добавлено: Вт Фев 11, 2014 00:35 Заголовок сообщения: |
|
|
хахаха отлично |
|
Вернуться к началу |
|
 |
Digimind assembler digger

Зарегистрирован: 22.09.2007 Сообщения: 103
|
Добавлено: Вт Фев 11, 2014 08:12 Заголовок сообщения: |
|
|
Manwe писал(а): | Чего-то анимация сломалась - таймер вперёд ушёл, и привет. |
Ну так t модулировать надо, чтобы не зависеть от времени суток. Та же проблема, что и с колонией выше... |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Фев 11, 2014 09:54 Заголовок сообщения: |
|
|
Digimind писал(а): | Manwe писал(а): | Чего-то анимация сломалась - таймер вперёд ушёл, и привет. |
Ну так t модулировать надо, чтобы не зависеть от времени суток. Та же проблема, что и с колонией выше... |
С Virus Colony я как раз наоборот хотел посмотреть как она в будущем разовьётся.
А с Samarkand да - утром работает, вечером не работает Как модулировать-то? Ты кодом покажи!  _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Digimind assembler digger

Зарегистрирован: 22.09.2007 Сообщения: 103
|
Добавлено: Вт Фев 11, 2014 13:04 Заголовок сообщения: |
|
|
Manwe писал(а): | А с Samarkand да - утром работает, вечером не работает Как модулировать-то? Ты кодом покажи!  |
так вроде не рокет сайенс.
"t a mod" сужает диапазон c 0..86400 до 0..a
sin/cos сужает диапазон до -1..1
и т.д. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Фев 11, 2014 15:12 Заголовок сообщения: |
|
|
А там точно таймер в пределах суток? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Digimind assembler digger

Зарегистрирован: 22.09.2007 Сообщения: 103
|
Добавлено: Вт Фев 11, 2014 16:40 Заголовок сообщения: |
|
|
Manwe писал(а): | А там точно таймер в пределах суток? |
А я точно назначен справочником по этому чуду?
По крайней мере можно судить по haiku.js:
t определяется через time_val:
Код: | dict['t'] = ['dstack.push(time_val);']; |
time_val определяется через GetTime():
Код: |
var time_val_loc = gl.getUniformLocation(cv3.program3d, 'time_val');
gl.uniform1f(time_val_loc, GetTime()); |
GetTime() определяется через локальное время в пределах суток:
Код: | function GetTime() {
var dt = new Date();
var tm = dt.getHours();
tm = tm * 60 + dt.getMinutes();
tm = tm * 60 + dt.getSeconds();
tm = tm + dt.getMilliseconds() / 1000.0;
return tm;
} |
|
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Вт Фев 11, 2014 21:30 Заголовок сообщения: |
|
|
Спасибо, Digimind.
Вот ещё кое-что в 120 байт.
Код: | 0
5
x .5 - 20 ** y .5 - 20 ** + .05 **
dup -rot
/
t dup floor - pi * 2 *
+ sin
over 9 * 4 ** **
swap .1 - 0 max * 5 *
.9 |
_________________ Manwe/SandS
www.manwe.ru
Последний раз редактировалось: Manwe (Ср Фев 12, 2014 09:32), всего редактировалось 1 раз |
|
Вернуться к началу |
|
 |
tone robot modeller

Зарегистрирован: 21.09.2007 Сообщения: 513
|
Добавлено: Вт Фев 11, 2014 22:25 Заголовок сообщения: |
|
|
квадрат конечно гораздо удобнее и гармоничнее для всяких плазм, чем горизонтальный экран. все такое само собой уравновешенное получается.
а мониторы в отстойную сторону только изменяются. =( нет чтобы квадратные сделали. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Ср Фев 12, 2014 17:06 Заголовок сообщения: |
|
|
говорят, some GPU needs 'abs' before '**' and 'log' (видимо, моя программа не у всех работает) - неужели GLSL не универсален? _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
Digimind assembler digger

Зарегистрирован: 22.09.2007 Сообщения: 103
|
Добавлено: Чт Фев 13, 2014 01:09 Заголовок сообщения: |
|
|
Manwe писал(а): | говорят, some GPU needs 'abs' before '**' and 'log' (видимо, моя программа не у всех работает) - неужели GLSL не универсален? |
GLSL как раз универсален и определяет стандарт, как и должно быть в математике:
pow(x, y)
Results are undefined if x < 0.
Results are undefined if x = 0 and y <= 0.
log(x)
Results are undefined if x <= 0.
Т.е. использование отрицательных чисел попросту некорректно (как и деление на ноль, например).
Оно может случайно заработать на определённом конфиге, создавая иллюзию работоспособности, но в целом будет весьма ненадежным кодом. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Чт Фев 13, 2014 10:28 Заголовок сообщения: |
|
|
Digimind писал(а): | как и должно быть в математике:
pow(x, y)
Results are undefined if x < 0.
Results are undefined if x = 0 and y <= 0.
Т.е. использование отрицательных чисел попросту некорректно |
Разве X в степени Y в математике некорректно при X<0 ? Скажем, -3 в степени 2 - это не 9, а "undefined"? И почему 0 нельзя возводить в степень?
Мне нетрудно заменить "2 **" на "dup *" (хотя, терять 1 байт жаль), но хотелось бы понять, чем руководствовались создатели GLSL.
DarkstarAG бывает на этом форуме? Чтобы проверить такой код тоннеля на GeForce 8600 GT
Код: | : fix abs 1e-30 + ;
0
5
x .5 - fix 20 ** y .5 - fix 20 ** + .05 **
dup -rot
/
t dup floor - pi * 2 *
+ sin
over 9 * fix 4 ** **
swap .1 max .1 - * 5 * 1 min
.9 |
_________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
frag
Зарегистрирован: 18.01.2012 Сообщения: 14
|
Добавлено: Чт Фев 13, 2014 10:50 Заголовок сообщения: |
|
|
Manwe писал(а): |
Разве X в степени Y в математике некорректно при X<0 ? Скажем, -3 в степени 2 - это не 9, а "undefined"?
Мне нетрудно заменить "2 **" на "dup *" (хотя, терять 1 байт жаль), но хотелось бы понять, чем руководствовались создатели GLSL. |
Зависит от того, целочисленная это математика или нет.
Сколько будет -3^2.0000001? Хотя бы знак-то какой получится?
Как насчёт -2^1.5? Это же по смыслу квадратный корень из -8.
Т.к. целых чисел в представлении float или double гораздо меньше,
чем дробных, то такие случаи никто не рассматривает отдельно
и любая степень отрицательного числа не определена. |
|
Вернуться к началу |
|
 |
Manwe Администратор сайта

Зарегистрирован: 21.09.2007 Сообщения: 1426
|
Добавлено: Чт Фев 13, 2014 11:06 Заголовок сообщения: |
|
|
frag писал(а): | Т.к. целых чисел в представлении float или double гораздо меньше, чем дробных, то такие случаи никто не рассматривает отдельно |
Хитрый вид оптимизации: в железе или драйвере видеокарты сэкономить на проверке того, что степень - целое число, но возложить проверку и дополнительные действия на прикладного программиста. Странный подход к надёжности. Понятно теперь, почему половина демок выпускают с оправданием "извините, фикс под другие видеокарты будет позже". _________________ Manwe/SandS
www.manwe.ru |
|
Вернуться к началу |
|
 |
frag
Зарегистрирован: 18.01.2012 Сообщения: 14
|
Добавлено: Чт Фев 13, 2014 11:26 Заголовок сообщения: |
|
|
Manwe писал(а): | frag писал(а): | Т.к. целых чисел в представлении float или double гораздо меньше, чем дробных, то такие случаи никто не рассматривает отдельно |
Хитрый вид оптимизации: в железе или драйвере видеокарты сэкономить на проверке того, что степень - целое число, но возложить проверку и дополнительные действия на прикладного программиста. Странный подход к надёжности. Понятно теперь, почему половина демок выпускают с оправданием "извините, фикс под другие видеокарты будет позже". |
На проверках больше потеряешь.
Да и это же fpu, зачем ему проверки такого рода?
Гораздо надёжнее и проще объявить это undefined
и все такие частные случай пусть сам программист чекает.
Кроме того, большие целые числа непредставимы в fpu,
и многие простые дроби вроде 0.2. |
|
Вернуться к началу |
|
 |
BiTL DOS lover

Зарегистрирован: 22.09.2007 Сообщения: 2950
|
Добавлено: Чт Фев 13, 2014 11:47 Заголовок сообщения: |
|
|
Manwe писал(а): |
Хитрый вид оптимизации: в железе или драйвере видеокарты сэкономить на проверке того, что степень - целое число, но возложить проверку и дополнительные действия на прикладного программиста. Странный подход к надёжности. Понятно теперь, почему половина демок выпускают с оправданием "извините, фикс под другие видеокарты будет позже". |
Знаешь что получается, когда пытаются создать платформу, которая "облегчает жизнь программисту"? Получаются Flash, Java и прочие тормозные угробища. А потом блин, чтобы нарисовать кубик или плазму нам требуется четырёх-ядерный процессор и 8 гигабайт ОЗУ  |
|
Вернуться к началу |
|
 |
|