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! 🎄
Hello, World! 🎄
точнее если весь блок окружен блоками, то он не отрисовывается
UtoECat
Hello, World! 🎄
Если допустим блок в координатах 3,3,3 будет пустым, то вокруг него отрисуются блоки, т.к игрок может находится внутри пустоты 3,3,3 и видеть блоки которые рядом.
UtoECat
Вообще да, запихнуть все твои блоки в чанке в VBO, это всё в VAO, или как там... Я с новой glкой плохо ещё дружу :)
Hello, World! 🎄
Hello, World! 🎄
Либо движок использовать, например Unity (который сам все сделает)
UtoECat
Hello, World! 🎄
Hello, World! 🎄
На unity я в колледже пишу клон майнкрафта, суда несколько раз скидывал, что получалось.
Щас переписываю с импользованием чанков + меши будут (а пока там GameObject - cube)
Hello, World! 🎄
UtoECat
Hello, World! 🎄
Тем более там нужно разбиратся в коде который кто-то написал, да и я не настолько еще продвинутый, чтоб полезные правки туда внести
Hello, World! 🎄
RayLib (C), Love2d (Lua).
Сравнил скорость, 15 fps у raylib, 3 fps у Love2d.
800x600 поле, игра жизнь.
Igor
Igor
Твои результаты были очевидны ещё даже до того, как ты занялся бесполезным написанием этой игры.
Igor
Я не про оптимизации говорю
Hello, World! 🎄
Igor
А про то, что глупо сравнивать эти результаты
Igor
Тебе это уже какой день донести пытаются
Hello, World! 🎄
Во вторых один язык компилируемый, а второй интерпретируемый.
И у них разные задачи.
Hello, World! 🎄
В третьих, алгоритмы.
Можно кешировать клетки, которые измелись и могут изменится и не делать итерацию по всему массиву.
Можно сделать это на gpu.
Все зависит от алгоритмов.
Hello, World! 🎄
Igor
Короче ладно, я понял, ты опять за старое)
Igor
Развлекайся
Hello, World! 🎄
Hello, World! 🎄
Что именно не так?
Snusmumriken
Snusmumriken
И сравни его вот с этим (у меня 60+ fps):
https://gist.github.com/pevzi/a55cca69dd925b449d728d5de11930b1
Snusmumriken
Понял, ничего удивительного ))
Snusmumriken
Замени rectangle на points, получишь прирост раз в пять. Если ещё и сделаешь табличку для всех поинтов, то раз в десять.
Snusmumriken
Я не понимаю, почему ты упорно рисуешь пиксели квадратами.
Hello, World! 🎄
Собственно, на Си тоже у меня rectangle.
Просто если я пишу на Си говнокод или на Lua, то он быстрее работает на Си.
Если сделать оптимизацию и начать изучать алгоритмы, которые можно использовать для ускорения вычислений, то конечно на Lua будет быстрее чем на Си без оптимизации.
Snusmumriken
Hello, World! 🎄
Вообще было бы идеально передавать на GPU массив и там делать вычисления, но я пока не знаю как
Snusmumriken
Легко.
Берёшь и пишешь шейдер, которому суёшь текстуру с прошлым шагом, и он на его основе делает следующий шаг.
Hello, World! 🎄
Snusmumriken
Чел, канвас.
Hello, World! 🎄
Хотя можно отключить очистку экрана
Hello, World! 🎄
А есть какой-то способ получить не нормализованые координаты текущего пикселя на изображении?
Сейчас канвас обрабатывается верно, со времянем затемняется.
Hello, World! 🎄
Оказывается так просто можно получить размытие. Похоже на шум Перлина.
Snusmumriken
Hello, World! 🎄
Hello, World! 🎄
Важно, то как получить пиксель, через Texel(texture, texture_coords) можно получить текущий пиксель, но какой именно сдвиг делать, чтобы получить соседний пиксель, т.к texture_coords в диапазоне [0; 1].
Hello, World! 🎄
Hello, World! 🎄
Snusmumriken
Ты отключил всинк
Hello, World! 🎄
Потом код покажу, щас в коллед бежать пора
Snusmumriken
Да я и так знаю что у тебя там )
Hello, World! 🎄
Ок
Snusmumriken
В общем, поздравляю, добро пожаловать в вычисления на видеокарте которые можно мутить даже без "вычислительных шейдеров".
Hello, World! 🎄
В целом это было не сложно
Hello, World! 🎄
Только не понятно как отлаживать все это (наверно не как)
Snusmumriken
Легко. Писать в соседнюю текстуру отладочную инфу попиксельно ))
Snusmumriken
Типа "если у данного пикселя произошло говно — записать в отладочную текстуру соответствующего пикселя красный компонент на максимум, а код ошибки — оттенок зелёного". Кек чебурек. У тебя есть двусторонняя связь даже без отладчиков. Что угодно может быть чем угодно в зависимости от твоей интерпретации.
Hello, World! 🎄
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
@Snusmumriken vikari time website today can you help me add adsense my mister?
Snusmumriken
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Snusmumriken
I am not free technical support.
I do what interests me.
Adsense is not interesting.
ᴠɪᴋᴀʀɪ ʜᴏɴᴇsᴛ
Snusmumriken
Aqendo
Snusmumriken
You call me a teacher and that's why I have to work as free tech support?
Snusmumriken
Read the documentation. It is enough for even a brainless admin to connect adsense.
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
Случайно, никто не в курсе, как через телеграм бота отправить несколько файлов через один запрос?
Snusmumriken
0xSU
Я в этом методе sendMediaGroup помню не сразу разобрался. Что бы отправить с диска файлы, нужно сначала оформить поле media указав attach://filename
А потом добавлять файлы по filename в multipart post
Snusmumriken
Чтобы добавлять с диска, помнится, надо сначала отправить их на серверы телеги POST'ами, получить на них урлы, и уже потом добавлять эти урлы в типе "файл". Емнип.