Hello, World! 🎄
Сейчас вот такая проверка: if(x > 0 && x < 79 && y > 0 && y < 79 && z > 0 && z < 79){ if(map[x-1][y][z] == 1 && map[x+1][y][z] == 1 && map[x][y-1][z] == 1 && map[x][y+1][z] && map[x][y][z-1] == 1 && map[x][y][z+1] == 1){ return 0; } }
Hello, World! 🎄
точнее если весь блок окружен блоками, то он не отрисовывается
UtoECat
точнее если весь блок окружен блоками, то он не отрисовывается
Я надеюсь ты это не каждый тик проварачиваешь, верно? :)
Hello, World! 🎄
Если допустим блок в координатах 3,3,3 будет пустым, то вокруг него отрисуются блоки, т.к игрок может находится внутри пустоты 3,3,3 и видеть блоки которые рядом.
UtoECat
Вообще да, запихнуть все твои блоки в чанке в VBO, это всё в VAO, или как там... Я с новой glкой плохо ещё дружу :)
Hello, World! 🎄
Я надеюсь ты это не каждый тик проварачиваешь, верно? :)
Каждый раз 🤡 Наверно нужно буфер сделать
Hello, World! 🎄
Либо движок использовать, например Unity (который сам все сделает)
UtoECat
Либо движок использовать, например Unity (который сам все сделает)
Скорее сразу minetest - воксельный движок готовый взять :D
Hello, World! 🎄
На unity я в колледже пишу клон майнкрафта, суда несколько раз скидывал, что получалось. Щас переписываю с импользованием чанков + меши будут (а пока там GameObject - cube)
Hello, World! 🎄
Зачем?
С нуля интереснее
Hello, World! 🎄
Тем более там нужно разбиратся в коде который кто-то написал, да и я не настолько еще продвинутый, чтоб полезные правки туда внести
Hello, World! 🎄
RayLib (C), Love2d (Lua). Сравнил скорость, 15 fps у raylib, 3 fps у Love2d. 800x600 поле, игра жизнь.
Igor
RayLib (C), Love2d (Lua). Сравнил скорость, 15 fps у raylib, 3 fps у Love2d. 800x600 поле, игра жизнь.
Ты же ведь понимаешь, что это что-то около стресстеста, а не реальной игры?)
Igor
Твои результаты были очевидны ещё даже до того, как ты занялся бесполезным написанием этой игры.
Hello, World! 🎄
Ты же ведь понимаешь, что это что-то около стресстеста, а не реальной игры?)
Просто сравнил, свой код. Понятно, что при необходимости можно сделать сильную оптимизацию и будет 400-500 fps на love2d с помощью glsl)
Igor
Я не про оптимизации говорю
Igor
А про то, что глупо сравнивать эти результаты
Igor
Тебе это уже какой день донести пытаются
Hello, World! 🎄
А про то, что глупо сравнивать эти результаты
Я знаю, во первых алгоритмы разные (в Си я сделал доп. буфер, а в Lua динимаческая таблица для изменения значений).
Hello, World! 🎄
Во вторых один язык компилируемый, а второй интерпретируемый. И у них разные задачи.
Hello, World! 🎄
В третьих, алгоритмы. Можно кешировать клетки, которые измелись и могут изменится и не делать итерацию по всему массиву. Можно сделать это на gpu. Все зависит от алгоритмов.
Igor
Короче ладно, я понял, ты опять за старое)
Igor
Развлекайся
Hello, World! 🎄
Что именно не так?
Snusmumriken
И сравни его вот с этим (у меня 60+ fps): https://gist.github.com/pevzi/a55cca69dd925b449d728d5de11930b1
Hello, World! 🎄
Скинь сорц для love2d
https://github.com/fhw12/game_of_life_lua/blob/main/main.lua
Snusmumriken
Понял, ничего удивительного ))
Snusmumriken
Замени rectangle на points, получишь прирост раз в пять. Если ещё и сделаешь табличку для всех поинтов, то раз в десять.
Snusmumriken
Я не понимаю, почему ты упорно рисуешь пиксели квадратами.
Hello, World! 🎄
Собственно, на Си тоже у меня rectangle. Просто если я пишу на Си говнокод или на Lua, то он быстрее работает на Си. Если сделать оптимизацию и начать изучать алгоритмы, которые можно использовать для ускорения вычислений, то конечно на Lua будет быстрее чем на Си без оптимизации.
Hello, World! 🎄
Я не понимаю, почему ты упорно рисуешь пиксели квадратами.
Я знаю, что это неэфективно каждый раз обращатся для отрисовки 1-го элемента.
Hello, World! 🎄
Вообще было бы идеально передавать на GPU массив и там делать вычисления, но я пока не знаю как
Snusmumriken
Легко. Берёшь и пишешь шейдер, которому суёшь текстуру с прошлым шагом, и он на его основе делает следующий шаг.
Hello, World! 🎄
Легко. Берёшь и пишешь шейдер, которому суёшь текстуру с прошлым шагом, и он на его основе делает следующий шаг.
Окей, это я знаю как. А как потом вернуть текстуру? (Она вернется, но потом очистится циклом Love2d)
Snusmumriken
Чел, канвас.
Hello, World! 🎄
Хотя можно отключить очистку экрана
Hello, World! 🎄
Чел, канвас.
Ну или канвас)
Hello, World! 🎄
А есть какой-то способ получить не нормализованые координаты текущего пикселя на изображении? Сейчас канвас обрабатывается верно, со времянем затемняется.
Hello, World! 🎄
Оказывается так просто можно получить размытие. Похоже на шум Перлина.
Hello, World! 🎄
Hello, World! 🎄
Важно, то как получить пиксель, через Texel(texture, texture_coords) можно получить текущий пиксель, но какой именно сдвиг делать, чтобы получить соседний пиксель, т.к texture_coords в диапазоне [0; 1].
Hello, World! 🎄
Snusmumriken
Ты отключил всинк
Hello, World! 🎄
Потом код покажу, щас в коллед бежать пора
Snusmumriken
Да я и так знаю что у тебя там )
Hello, World! 🎄
Ок
Snusmumriken
В общем, поздравляю, добро пожаловать в вычисления на видеокарте которые можно мутить даже без "вычислительных шейдеров".
Hello, World! 🎄
В целом это было не сложно
Hello, World! 🎄
Только не понятно как отлаживать все это (наверно не как)
Snusmumriken
Легко. Писать в соседнюю текстуру отладочную инфу попиксельно ))
Snusmumriken
Типа "если у данного пикселя произошло говно — записать в отладочную текстуру соответствующего пикселя красный компонент на максимум, а код ошибки — оттенок зелёного". Кек чебурек. У тебя есть двусторонняя связь даже без отладчиков. Что угодно может быть чем угодно в зависимости от твоей интерпретации.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
@Snusmumriken vikari time website today can you help me add adsense my mister?
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Nope
do you bussy sir?
Snusmumriken
I am not free technical support. I do what interests me. Adsense is not interesting.
Snusmumriken
Snusmumriken
You call me a teacher and that's why I have to work as free tech support?
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
You call me a teacher and that's why I have to work as free tech support?
the error is not coded sir but i just need a solution and a good rule to be accepted
Snusmumriken
Read the documentation. It is enough for even a brainless admin to connect adsense.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Read the documentation. It is enough for even a brainless admin to connect adsense.
site to learn and introduce Lua in my country sir and I also think that Lua is better than php in data processing.
Snusmumriken
I would rather delete your site than let you represent lua in your country. I'm afraid that personally you can only provide anti-advertising. Ask someone better then you to do it.
Snusmumriken
If it was your personal site, everything would be much better.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
I've seen the tutorial in my country is not complete, and it's only 1 sheet like you said hi Lua
Egor
Случайно, никто не в курсе, как через телеграм бота отправить несколько файлов через один запрос?
0xSU
Я в этом методе sendMediaGroup помню не сразу разобрался. Что бы отправить с диска файлы, нужно сначала оформить поле media указав attach://filename А потом добавлять файлы по filename в multipart post
Snusmumriken
Чтобы добавлять с диска, помнится, надо сначала отправить их на серверы телеги POST'ами, получить на них урлы, и уже потом добавлять эти урлы в типе "файл". Емнип.