|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2011, 13:26 | #1 |
Регистрация: 07.03.2011
Сообщений: 5
|
шум,турбуленция
здравствуйте!посоветуйте что-нибудь...
Есть трехмерная функция шума: DBL Noise3D(DBL x, DBL y, DBL z) { INT ix, ix1, iy, iy1, iz, iz1; DBL fx, fy, fz; if (x < 0) ix = ((INT) x - 1) & NOISE_MASK; else iy = (INT) x & NOISE_MASK; if (y < 0) iy = ((INT) y - 1) & NOISE_MASK; else ix = (INT) y & NOISE_MASK; if (z < 0) iz = ((INT) z - 1) & NOISE_MASK; else iz = (INT) z & NOISE_MASK; ix1 = (ix + 1) & NOISE_MASK; fx = x - floor(x); fx = fx * fx * (3 - 2 * fx); iy1 = (iy + 1) & NOISE_MASK; fy = y - floor(y); fy = fy * fy * (3 - 2 * fy); iz1 = (iz + 1) & NOISE_MASK; fz = z - floor(z); fz = fz * fz * (3 - 2 * fz); return; } Эти многомерные массивы хотелось бы заменить на что-нибудь, занимающее меньше места в памяти... (Tab3[iy][ix] *(1 - fx)+ Tab[iy][ix1] * fx) * (1 - fy) + (Tab3[iy1][ix] * (1 - fx)+Tab3[iy1][ix1] * fx......)- Каким образом можно убрать массивы и написать четырехмерную функцию, 4-ый параметр-время? DBL Turb3D(DBL x, DBL y, DBL z, DBL Omega) { INT i; DBL Sum = 0, D = 1, C = 0; for (i = 0; i < Omega; i++) Sum += Noise3D(x, y, z) / D; C += 1 / D, x *= 2, y *= 2, z *= 2, D *= 2; return Sum / C; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
шум при перемещении мыши | Lotles | Компьютерное железо | 6 | 14.12.2010 21:16 |
Эффект "Шум" - резкий перепад на 3-ем шаге | Alex Cones | Общие вопросы Delphi | 1 | 18.06.2010 18:34 |
Информационный шум | usersat | Свободное общение | 0 | 21.04.2009 17:46 |
Шум от кулера, ЧЕМ ЛЕЧИТЬ? | Altera | Компьютерное железо | 10 | 21.08.2008 14:00 |