Media is too big
VIEW IN TELEGRAM
И это одновременно и хорошо, и грусно.
Теперь есть цель переписать алгоритм основного движка rayCasta...
p.s.
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2🤯1👾1
Media is too big
VIEW IN TELEGRAM
И появились ещё две темы для эффектов, это:
Игра жизнь
Фракталы
А так же ещё две прошивки, для
ESP32 CYD3248 двух версий
На подходе ещё модуль CYD2432S024
Семья, дача, немытая ягода, горшки...
p.s. 🎮 Но, игра продолжается...
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🥰1👾1
Media is too big
VIEW IN TELEGRAM
А в кратце:
-
-
-
-
-
А эти ещё в планах...
Игра жизнь
Фракталы
[
p.s. 🎮 "До связи.... Пока всё..."
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2🥰1🤯1👾1
float fast_sqrt( float val ) {
if ( val <= 0.0 ){ return 0; }
float xhalf = 0.5 * val;
int i = *(int*)&val;
i = 0x5f3759df - (i >> 1);
val = *(float*)&i;
val = val*(1.5f-(xhalf*val*val));
return val;
}uint32_t isqrt_bitwise(uint32_t x) {
uint32_t root = 0;
uint32_t bit = 1u << 30;
while (bit > x) bit >>= 2;
while (bit){
uint32_t trial = root + bit;
if (x >= trial) {
x -= trial;
root = (root >> 1) + bit;
} else {
root >>= 1;
}
bit >>= 2;
}
return root;
}calc_time = micros();
for i= от 0 до 0xffff {
dx = i&0xff
dy = (i»8)&0xff
res_sqr = функция( dx*dx+dy*dy )
}
calc_time = micros() - calc_time;
и в calc_time получаю время затраченное на вычисления.
err += ( 1.0 - test_root(x) / sqrt(x) )
err = err*100.0/0xfffe
И получаю погрешность по всему циклу вычислений, ну и результат такой:
//--------------------------------
sqrt(): 266 334 us
pow( x, 0.5 ): 303 142 us
fast_sqrt(x): 2 470 us
isqrt_bitwise(x): 44 464 us
//--------------------------------
pow( x, 0.5 ): 0.00%
fast_sqrt: 0.09%
isqrt_bitwise: 0.31%
//--------------------------------
Пока всё...
p.s.
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍3🔥2🤯1🤓1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1👏1👾1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1🔥1🥰1🤩1👾1
Media is too big
VIEW IN TELEGRAM
Неделя закончена...
По мелочи добавил разных скинов на часы, но главное попалась технология rayCast для симуляторов - Воксельная графика.
И небольшой симулятор в стиле игры 1992 года - Comanche.
Пока средненько, но я только начал...
p.s.
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1👏1🤯1🕊1
Media is too big
VIEW IN TELEGRAM
Полюбому мелкие текстурки на землю. И какой никакой смысл этого всего,например поиск потерявшихся людей и летать от одного к другому.
p.s. 🕐 "А пока выходные..."
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1🥰1👾1
Media is too big
VIEW IN TELEGRAM
Немного текстур на поверхность, наклоны от поворотов...
Всё, отдыхать...
Всё, отдыхать...
🔥3❤1👍1🥰1👏1👾1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1🔥1👾1
Media is too big
VIEW IN TELEGRAM
Представляю 'Спасательный вертолёт'
Суть происходящего это полёты по местности и спасение потерявшихся человечков. Вертолёт автономный и летит к целевой точке, сам определяет угол отклонения, сканирует рельеф перед собой, и при воздействии на рычаги управления откликается поворотами фюзеляжа.
Поворачиваем в сторону, значит крен на бок, нужно набрать или сбавить скорость - значит опустится или задерётся нос.
Всё построено на базе несложного автомата:
- Поиск цели - случайный выбор места потерявшегося.
- Взлёт - Набор высоты
- Полёт - Продвижение и поворот к цели ( до момента сближения )
- Торможение - Сброс скорости и разворот
- Посадка - Сброс высоты, приземление
- Спасение - Ожидаем пока цель придёт в вертолёт, и по новой. Поиск цели
Но самое сложное было разобраться с очередной технологией рендера '3D мира' по 2D карте.
Принцип прост, из картинки с высотами ( а у меня это шум Перлина ), по координатам игрока определяем какие высоты находятся перед игроком.
Затем от горизонта вниз рисуем столбики высот делённые на расстояние.
В принципе от технологии Wolfenstein3D не особо отличается, но со своими нюансами, типа наклона в бок.
В общем в архиве как прошивка для CYD2432_S028, так и симулятор для ПК.
p.s.
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤1👍1👏1👾1
Media is too big
VIEW IN TELEGRAM
Ландшафт строится как ряд картонных стенок, от точки взгляда, в даль. И вот таких 'в даль' 100 выборок. А если учесть что эти 100 выборок для каждого столбца, коих 120 штук, то и получаем:
120х100 = 12000 выборок для ландшафта.
Каждая точка это шум Перлина, что тоже нагружает бедную ЕСПэшку...
Так вот, а зачем под носом у игрока, 120 выборок, на маленькую ширину. Да и на расстоянии 5-10 шагов от точки взгляда тоже столько не нужно.
В общем оптимизировал по принципу, чем дальше, тем больше.
А под носом и трёх четырёх хватит, которые равномерно размазывпются на всю ширину экрана.
И вуаля, к шуму перлина уже меньше тысячи обращений, и 30фпс в кармане 🥳.
А дальше? Очередная головная боль. Воксельная графика потихоньку перерастает в полигоны... Но об этом чуть позже
p.s.
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2👍1👏1🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Немного спойлеров...
Ой, если оно на ЕСПшке заведётся...😁
Ой, если оно на ЕСПшке заведётся...
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2🤓1👨💻1
Наткнулся на ресурс HobbySupport, он иногда собирает проекты людей и проводит конкурс.
Ну, а чем я хуже, решил тоже поучавствовать.
В общем, если интересно посмотрите, там с десяток различных, интересных проектов, в том числе и мой rayCast.
Если что, под номером7️⃣ .
Голосование проходит тут:
https://t.me/hobbysupport
Ну, а чем я хуже, решил тоже поучавствовать.
В общем, если интересно посмотрите, там с десяток различных, интересных проектов, в том числе и мой rayCast.
Если что, под номером
Голосование проходит тут:
https://t.me/hobbysupport
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Hobby Support 📡
Паяльник, канифоль, дзен.
Наш магазик на Ozon: https://ozon.ru/seller/hobbi-support-1979992/
Бусти: boosty.to/hobbysupportchannel
Почта по вопросам сотрудничества: hsupprt@yandex.ru
Наш магазик на Ozon: https://ozon.ru/seller/hobbi-support-1979992/
Бусти: boosty.to/hobbysupportchannel
Почта по вопросам сотрудничества: hsupprt@yandex.ru
❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Вроде задача то не сложная, в границах линий закрасить цветом, а вот не всё так просто. Делать миллион пповерок на факт нахождения внутри или снаружи это бред, это сразу мимо. Тем более зная координаты вершин. По вершинам, с лёту, тоже не получится. В общем сижу, думаю...
p.s.
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2👍1🥰1👏1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🌏 "Сейчас бы на пляж... "
🧑💻 Растеризацию поправил, пока знаю про две проблемы:
1. Не все полигоны захватываются, это видно по краям.
2. Точки, оказавшиеся за спиной, не правильно пересчитываются на экран.
Ну чтож, и не с таким справлялись.
p.s.😅 "Да и пора бы на ESP это запускать..."
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
1. Не все полигоны захватываются, это видно по краям.
2. Точки, оказавшиеся за спиной, не правильно пересчитываются на экран.
Ну чтож, и не с таким справлялись.
p.s.
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥2👏1😁1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
🌏 "It's alive... "
🧑💻 Перенос движка поверхности с ПК на ESP32 похоже закончился успехом.
Плюсы - всё работает в 30фпс..
Минусы - дальность так себе,всего 20 клеток. При дальности в 25, уже фпс падает до 20,при 30 - 15. Ну чтож, не зря в Silent Hill придумали туман 😶🌫...
p.s.🤔 "Чего-б такого этому всему теперь придумать..."
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Плюсы - всё работает в 30фпс..
Минусы - дальность так себе,всего 20 клеток. При дальности в 25, уже фпс падает до 20,при 30 - 15. Ну чтож, не зря в Silent Hill придумали туман 😶🌫...
p.s.
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👏2❤1🥰1🤯1👾1
This media is not supported in your browser
VIEW IN TELEGRAM
Первый способ добавить ФеПеСов, это уменьшить угол обзора.
Меньше точек собираются слева и права. Но и видимость сокращается.
Копаю дальше...
Меньше точек собираются слева и права. Но и видимость сокращается.
Копаю дальше...
🔥2❤1👍1👏1
Media is too big
VIEW IN TELEGRAM
☕️ "Утро начинается не с кофе..."
🧑💻 А началось с замеров времени на разные части кода, и вот что выяснилось...
Но, всё по порядку.
Весь алгоритм построения делится на несколько этапов:
1. Определение области обзора
2. Сбор вершин внутри области
3. Фильтрация от случайно продублированных
4. Сбор полигонов из вершин
5. Перенос вершин из декартовых координат в радиальные
6. Растеризация полигонов с учётом перекрытий
И вот по третьему пункту выявилась проблема, анализ и выброс лишних точек ( дублей ) занимает аж более 35мс. Поправить конечно это одно, и оно ускорилось в три раза до 12мс. Но мысль появилась другая, что проблема ещё раньше, в алгоритме сбора точек, что при сборе загребаются те что уже есть. Значить копать нужно ещё раньше...
p.s. 🤓 "Ну что-ж, 'наши руки не для скуки'..."
Попробовал сделать чат ->
Ссылка на чат 😝
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
🧑💻 А началось с замеров времени на разные части кода, и вот что выяснилось...
Но, всё по порядку.
Весь алгоритм построения делится на несколько этапов:
1. Определение области обзора
2. Сбор вершин внутри области
3. Фильтрация от случайно продублированных
4. Сбор полигонов из вершин
5. Перенос вершин из декартовых координат в радиальные
6. Растеризация полигонов с учётом перекрытий
И вот по третьему пункту выявилась проблема, анализ и выброс лишних точек ( дублей ) занимает аж более 35мс. Поправить конечно это одно, и оно ускорилось в три раза до 12мс. Но мысль появилась другая, что проблема ещё раньше, в алгоритме сбора точек, что при сборе загребаются те что уже есть. Значить копать нужно ещё раньше...
p.s. 🤓 "Ну что-ж, 'наши руки не для скуки'..."
Попробовал сделать чат ->
Ссылка на чат 😝
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
🔥2👍1🎉1
Media is too big
VIEW IN TELEGRAM
Утро, как обычно доброе. Но не для ESP'шки 😂.
40 фпс, с запасом по таймингам, вот с этим уже можно работать...
Поправить пару глитчей, и можно пробовать 'травку засеять, да волны по воде погонять'.
А так, поле для фантазии, го тут можно...
И туман, и дождь, и снег...
Вроде есть мысди про 3Д домики, короче ещё есть куда копать...
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ 💬 чат ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
40 фпс, с запасом по таймингам, вот с этим уже можно работать...
Поправить пару глитчей, и можно пробовать 'травку засеять, да волны по воде погонять'.
А так, поле для фантазии, го тут можно...
И туман, и дождь, и снег...
Вроде есть мысди про 3Д домики, короче ещё есть куда копать...
[ ⏮️ ][ ⬆️ ][ ⏭️ ]
[ 💬 чат ]
[ VK-видео ][ YouTube ][ RuTube ]
🏠 [ Домой ] 🛠 [ Проекты ]
🔥2👍1🤯1🤣1👾1