LINUX.ORG.RU

Реальные минусы Vulkan?

 , ,


0

2

Чем реально Вулкан хуже GL’я? Говорят сложней, не поддерживает мобилки (не факт, да и в десктоп реалиях не сильно важно).

Пишу игрульку (воксельную) на джаве, планирую систему тегов, тиков, жидкостей. Позже хочу глубоко заняться шейдерной частью. Производительность важна!

Последние года 3 пишу на GL’е. Привык. Трудно переходить?

(а, и есть ли удобные апишки для разработки под java/vulkan)


Ответ на: комментарий от LamerOk

Я говорил и про ресурсы тоже, сущность в виде какого нибудь трактора тянет за собой модельку, звук, текстуру.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от MOPKOBKA

Да про что бы ты ни говорил, к моменту отображения графической сцены все ресурсы уже должны быть загружены. Тут нет никакой разницы между языками программирования.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Удивительное открытие. Я говорил про то что невозможно загрузить все сразу, будут связи между сущностями и ресурсами, сущностями и сущностями, и вот уже невозможно просто добавлять элементы в массив, и оперировать ими как одним целым, нужно освобождать ресурсы по отдельности.

Даже если ты не собираешься изменять размер массива, а выделил его заранее, конкретные элементы тебе придется подчищать и на их места грузить новые, это тоже самое, только вместо кучи массив.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 2)

Чем реально Вулкан хуже GL’я?

  • В древнем железе поддержка вулкана отсутствует или не полная.

  • виртуалки и другие хитрые способы ускорить 3д графику типа VirtulGL его не поддерживают.

Короче, если нужны игрушки - vulkan, если нужен инженерный или научный софт GL.

einhander ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Я говорил про то что невозможно загрузить все сразу,

Нет, это я про это говорил. А ты со мной спорил:

Это не везде применимо,

На что я тебе объяснил, что не только «везде применимо», а вообще только так и делают.

конкретные элементы тебе придется подчищать и на их места грузить новые

Умничка, ты правильно понял концепцию memory pool’а.

это тоже самое, только вместо кучи массив.

Это совсем не то же самое, как по времени доступа, так и по потреблению памяти. Именно по этому их используют в играх примерно всегда. Даже если школьник пишет игру на «игровом движке», движок у себя под капотом будет работать по этой схеме.

Иными словами из всех видов приложений с большим объёмом вычислений и потреблением памяти грамотно написанные игры - наименее заинтересованные в случайном выделении произвольных участков памяти на куче.

Для демонстрации расового превосходства кучи над указателями / умными указателями надо что-то другое - например, интерпретатор динамического языка, обработка текста или что-нибудь в этом роде.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Memory pool это средство хранения и размещения, тебе все равно потребуются например счетчики ссылок для того что бы понять, какой элемент нужно освободить что бы поместить новый, поэтому твоя вставка вообще не имеет смысла, она про совершенно другое.

MOPKOBKA ★★★★
()
Ответ на: комментарий от MOPKOBKA

Прости, я переоценил твою возраст^W квалификацию^W способность прочитать и понять написанное:

грузят ту часть, которая нужна на этот уровень
преаллоцированный массив ссылками на объекты с координатами в рамках текущего сегмента впопенворлда. Эпизодически проверять смену сегмента и обновлять массив ссылок по необходимости. Это типовая схема реализации «уровня без границ»

Memory pool
какой элемент нужно освободить

И нет, ты не понял, что такое мemory pool.

LamerOk ★★★★★
()
Последнее исправление: LamerOk (всего исправлений: 1)
Ответ на: комментарий от LamerOk

А, ты хочешь сразу весь memory pool при заполнении освобождать, и потом грузить 95% того что только что удалил, идея потрясающая.

Или ты хочешь загрузить сразу 50 гб ресурсов?

Что из двух? Определиться можешь наедине, мне это надоело.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 4)

Minecraft на Java до сих пор фризит из-за GC даже на топовом железе, Bedrock - нет, очень показательно и наглядно. Если надо производительность, берём C++ или Rust.

не поддерживает мобилки

С чего вдруг? На мобилках он вышел уже почти 10 лет назад. Он самый портабельный после OpenGL.

Говорят сложней

Сильно сложнее, зато врапперы свои написал или взял открытые, и вперёд.

ac130kz ★★
()
Ответ на: комментарий от ac130kz

Minecraft на Java до сих пор фризит из-за GC даже на топовом железе

Чот не ощущяю я этого, хотя играю в весьма тяжёлые сборки (GTNH и TerrafirmaGreg). GTNH вообще на базе древнего 1.7.10, хотя и перенесённого на свежую яву. Железо не топовое, средненькое железо.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Я не говорю про жёсткие фризы на несколько секунд, такого конечно нет, а про микрофризы на десяток миллисекунд раз в 15-20 секунд. Такого в бедроке у меня не было. Проц 7800x3d.

ac130kz ★★
()
Ответ на: комментарий от ac130kz

А из-за чего ещё

Настройки крутил? Я в одной сборочке что-то накрутил, уже не помню чего, и майн начал фризить на ryzen 5950x и RTX4090. А всего то нужно было откатить одну настройку. Как понимаешь, здесь джава ни при чём.

ox55ff ★★★★★
()
Последнее исправление: ox55ff (всего исправлений: 1)
Ответ на: комментарий от stom

– эй, ты чё шурупы молотком забиваешь?

– потому что хочу, потому что не умею в отвёртку, лень крутить кистью и покупать отвёртки под весь зоопарк шурупов. Я выбрал быть счастливым. Тюк!

А если бы ты знал только похапэ, то наверное взялся бы пилить GUI-игру на нём.

pr849
()
Последнее исправление: pr849 (всего исправлений: 1)
Ответ на: комментарий от ac130kz

Не замечал такого никогда, играю с бета версий, на совсем старом компьютере были фризы если в режиме полета летать и генерировать биомы, но сейчас и этого нету.

MOPKOBKA ★★★★
()
Ответ на: комментарий от ac130kz

Он на OpenGL, может плохая реализация на Windows? Я помню у меня на Windows под какой то видеокартой (AMD?) тормозил древний RTCW, как раз из за плохой реализации OpenGL.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)

Сравнивать языки программирования на процессоре в играх использующих видеокарту это сомнительная затея, если весь код работающий с видеокартой не одинаков 1:1 в обоих случаях. 🤦

hawkthe
()
Ответ на: комментарий от stom

платформо-независимость

Брехня.

сборщики мусора

Ты хочешь, чтобы на время сборки мусора игра фризила?

Понимаю язык не молниеносный

Он медленнее си всего раза в два в синтетических тестах, но дело совсем не в этом.

Так же хочу сделать IDE для моддинга, не хочется внедрять условный луа в условный си.

И делать моды на жабке? Очень удобно.

crutch_master ★★★★★
()
Ответ на: комментарий от Jameson

Насчёт производительности — хватит производительность в вакууме измерять.

Она не в вакууме. Производительность в кубаче - это убери дальность подгрузки чанков, чтобы не лагало на твоих 64гб ram.

crutch_master ★★★★★
()
Ответ на: комментарий от MOPKOBKA

я вот не вижу причин для того что бы Java в несколько раз тормозила в среднем.

Потому что ты - говнокодер, сравнивающий какие-то там синт. тесты :P

Сделай там и там ынтерпрайз архитектуру в 10 слоёв с библиотеками и потом сравнивай.

crutch_master ★★★★★
()
Ответ на: комментарий от MOPKOBKA

Какой был мой тезис?

Тебе лучше знать

АХАХАХАХА. ЛОЛ.
Морковка, не ходи на лор, переписывайся лучше со стенкой.
«Какой тезиз? Откуда я знаю какой у тебя тезис. Делать мне нечего, сообщения твои читать.» КЕК.

crutch_master ★★★★★
()