Множество Мандельброта с использованием только целочисленной математики в Blender.
Эта нода появилась не так давно. Она работает с 32-битными целыми числами (32-bit integer), что обеспечивает точные вычисления.
Тема оказалась очень интересной. Именно поэтому сейчас публикую посты гораздо реже.
@osipenkovarts
Эта нода появилась не так давно. Она работает с 32-битными целыми числами (32-bit integer), что обеспечивает точные вычисления.
Тема оказалась очень интересной. Именно поэтому сейчас публикую посты гораздо реже.
@osipenkovarts
Так выглядит мантисса Imaginary части множества Мандельброта.
Последние два месяца я работал над кастомной математикой внутри Blender и изучил много интересного. В основном это касалось стандарта IEEE-754, на котором основаны числа с плавающей запятой (floating point), используемые нами ежедневно, а также знаковых и беззнаковых 32-битных целых чисел (signed/unsigned integer 32). Над последними я долго ломал голову, но в итоге всё получилось.
Это нужно мне для глубоких зумов в любые формулы фракталов с точным позиционированием центра, да и само по себе очень интересно, намного интереснее почти всего, чем я занимался в области компьютерной графики.
Теперь есть больше времени для новых постов, а пока можете посмотреть занимательный онлайн-конвертер стандарта IEEE-754.
@osipenkovarts
Последние два месяца я работал над кастомной математикой внутри Blender и изучил много интересного. В основном это касалось стандарта IEEE-754, на котором основаны числа с плавающей запятой (floating point), используемые нами ежедневно, а также знаковых и беззнаковых 32-битных целых чисел (signed/unsigned integer 32). Над последними я долго ломал голову, но в итоге всё получилось.
Это нужно мне для глубоких зумов в любые формулы фракталов с точным позиционированием центра, да и само по себе очень интересно, намного интереснее почти всего, чем я занимался в области компьютерной графики.
Теперь есть больше времени для новых постов, а пока можете посмотреть занимательный онлайн-конвертер стандарта IEEE-754.
@osipenkovarts
Продолжение этого поста.
Парсинг стринга в Blender — на выходе четыре канала signed integer 32-bit. Теперь предстоит продумать, как корректно объединить эти каналы и преобразовать их в единое значение.
Остальное уже сделано: точка 2^127, на которой, как пишут, почти все сдаются, пройдена.
@osipenkovarts
Парсинг стринга в Blender — на выходе четыре канала signed integer 32-bit. Теперь предстоит продумать, как корректно объединить эти каналы и преобразовать их в единое значение.
Остальное уже сделано: точка 2^127, на которой, как пишут, почти все сдаются, пройдена.
@osipenkovarts
Media is too big
VIEW IN TELEGRAM
Продолжаю тему глубоких зумов в множество Мандельброта.
Запись с экрана в реальном времени — наконец доделал сетап, на котором возможны зумы с масштабом 1 / 2^840 и даже меньше.
Опорная точка просчитывается в Python (библиотеки gmpy2 и mpfr) и передаётся в шейдер через текстуру с помощью Animation Nodes.
Рендер делается в Blender EEVEE NPR Prototype — только там есть Repeat Zone в шейдере для итераций (2048 в этой демонстрации).
@osipenkovarts
Запись с экрана в реальном времени — наконец доделал сетап, на котором возможны зумы с масштабом 1 / 2^840 и даже меньше.
Опорная точка просчитывается в Python (библиотеки gmpy2 и mpfr) и передаётся в шейдер через текстуру с помощью Animation Nodes.
Рендер делается в Blender EEVEE NPR Prototype — только там есть Repeat Zone в шейдере для итераций (2048 в этой демонстрации).
@osipenkovarts
This media is not supported in your browser
VIEW IN TELEGRAM
Множество Мандельброта — зум до 1:2¹³⁶
4096 итераций, координаты центра: -1.7489047201202873520283799134843031838019741737997091, 0.00000000000724885499696872307560120751923056175818569.
Всем хороших выходных!
@osipenkovarts
4096 итераций, координаты центра: -1.7489047201202873520283799134843031838019741737997091, 0.00000000000724885499696872307560120751923056175818569.
Всем хороших выходных!
@osipenkovarts
This media is not supported in your browser
VIEW IN TELEGRAM
Soft Float с использованием только целочисленной математики и множество Мандельброта на нём.
Первый канал (Integer 32): мантисса (для контроля переполнения он интерпретируется как беззнаковый - при отрицательном значении требуется коррекция). Второй канал (Integer 32): экспонента. Третий канал (Boolean): знак числа (True → отрицательное, False → положительное).
Углубился в тему для понимания низкоуровневых принципов вычислений и реализации сверхглубоких зумов.
@osipenkovarts
Первый канал (Integer 32): мантисса (для контроля переполнения он интерпретируется как беззнаковый - при отрицательном значении требуется коррекция). Второй канал (Integer 32): экспонента. Третий канал (Boolean): знак числа (True → отрицательное, False → положительное).
Углубился в тему для понимания низкоуровневых принципов вычислений и реализации сверхглубоких зумов.
@osipenkovarts
This media is not supported in your browser
VIEW IN TELEGRAM
Огромное спасибо за поддержку, очень люблю ваш канал с математическими мемами!