М.Двач / Gamedev

Этого треда уже нет.
Это копия, сохраненная 27 ноября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

15 Кб, 320x200
Рейкастинг а-ля Wolfenstein 3-D # OP 8 янв 2017, 17:28 318338 В конец треда | Веб

Суп, мейлач. Заинтересовался рейкастингом, решил почитать туториалы по оному http://lodev.org/cgtutor/raycasting.html, кому интересно. Принцип работы примерно понятен, но алгоритм работает медленно (ОЧЕНЬ). Я, конечно, не эксперт, но что-то мне подсказывает, что его можно ускорить, чтобы он не лагал так дико. Есть предположения?

Ответы318340318343318386318426319354365926367517398140468073

8 янв 2017, 17:59 2 318340

>>318338 (OP)
Думаю по ссылке понятно, что это love2d.

не ОП

Ответы318342318346

8 янв 2017, 18:11 3 318342

>>318340
>>318339

8 янв 2017, 18:14 4 318343

>>318338 (OP)
http://zxdn.narod.ru/coding/ig5ray3d.htm

Не плохая ссылка по данной теме, если не ознакомлен, то прошу ознакомиться.

Ответы318502

8 янв 2017, 18:29 5 318346

>>318340
К love2d это отношения не имеет, по ссылке вроде с++

47 Кб, 360x480
8 янв 2017, 21:49 6 318386

>>318338 (OP)
>Есть предположения?
Проапгрейди свой 386

9 янв 2017, 00:18 7 318426

>>318338 (OP)
>Я, конечно, не эксперт, но что-то мне подсказывает, что его можно ускорить, чтобы он не лагал так дико.
Суть в том что wolf 3d - не 3d, а очень даже 2d. Расчёт графики не делается по высоте, а только по глубине. Т.е. луч идёт не для каждого отдельного пикселя, а для каждого отдельного столбца пикселей.

Ответы318502

9 янв 2017, 01:46 8 318451

>>318431
Ну просто хуй знает тогда. Всё таки Кармак мог в оптимизон.
Пусть ОП тогда в исходный код смотрит.

Ответы318502

31 Кб, 392x490
# OP 9 янв 2017, 13:07 9 318502

ОП снова вкатился в тред.

>>318426
Я знаю, как работает рейкастинг в вульфе. Только вот он спокойненько шёл на 80286, а вот код по ссылочке в совокупности с QuickCG (либа автора статьи, на SDL базируется) будет лагать на каком-нибудь обоссаном коре2дуо при 1280х1024.
Я грешу на то, что вся эта залупа рисуется попиксельно (!) на софтваре рендере(!!), но всё же хотелось бы оставить рендер на ЦПУ. Чёрт возьми, рейкастинг летает на первом пеньке (1024х768 всё-таки вытянет), почему он должен давать 60-65 фпс на компьютере образца 2007 года в окошке 512х384?

>>318451
У Кармака обычно полная разъёба в исходниках, ибо мелькают неочевидные оптимизации. Но вольфа вроде тоже рисуется попиксельно, правда, там вставочка ассемблерная на рисовку, потому что дос и можно напрямую работать с графикой. Но почитать всё же попробую, лишним не будет.

>>318343
Благодарю, сейчас почитаю.

Ответы318506318508367050

1 Мб, 800x1149
9 янв 2017, 13:31 10 318506

>>318502
> рисуется попиксельно
в рейкастинге всё по столбикам хорошо рисуется

9 янв 2017, 13:52 11 318508

>>318502
Потому что в вульфе не 1024х768, а 320х200 (даже меньше).
Вообще, попробуй вот этот алгоритм http://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/ именно он раньше использовался. Потом выбери тот, который быстрее и профильни, но скорее всего, 800х600 - это предел.

Ответы318509

9 янв 2017, 14:19 12 318509

>>318508
Ну, про 320х200 я в курсе, конечно. Но есть одно маленькое "но": Core 2 Duo помощнее 80386, соответственно, и вывозит нагрузки побольше.

11 янв 2017, 05:28 13 318775

На JS рейкаскинг выдает спокойно 60фпс)

12 янв 2017, 18:17 14 319354

>>318338 (OP)
Посмотри, ещё захочешь, отвечаю
https://www.youtube.com/watch?v=HQYsFshbkYw

66 Кб, 600x360
# OP 7 фев 2017, 13:13 15 365466

Бамп.

Реализовал рейкастер. Пола, потолка, дверей, спрайтов, нпс и прочего производного нет. Но зато есть текстуры на стенах, а ещё поддерживается прозрачность у оных. кому надо -- есть исходники

А вопрос такого толка -- как реализовать эти ебучие двери? Про спрайты тоже интересно (желательно, чтобы они имели угол поворота, чтобы они были не такими палевными, это уже посложнее).

Ответы365869366759

7 фев 2017, 15:35 16 365869

>>365466
>кому надо -- есть исходники

Если можешь - выложи плз, тоже начал интересоваться этой темой и тут как раз тред этот увидел.

На чём пишешь, кстати?

7 фев 2017, 16:05 17 365926

>>318338 (OP)
Во первых, LUA не то чтобы быстро работает. Плюс, ты пробовал смотреть на производительность в зависимости от размера комнаты?

Ответы367191

7 фев 2017, 19:14 18 366759

>>365466
Жду исходники.

7 фев 2017, 22:30 19 367050

>>318502
>почему он должен давать 60-65 фпс на компьютере образца 2007 года в окошке 512х384?
Поищи профайлеры. Типа Sleepy или аналогичных. Они тебе покажут, сколько времени тратит каждая строчка твоего кода.

8 фев 2017, 00:05 20 367191

>>365926
> Во первых, LUA не то чтобы быстро работает.
Лолшто.

8 фев 2017, 02:52 21 367517

>>318338 (OP)
ОП, лучше глянь как делался вульф для айфона
https://github.com/id-Software/Wolf3D-iOS
http://fabiensanglard.net/wolf3d/index.php

106 Кб, 816x638
8 фев 2017, 14:44 22 368646

ОП снова тут.
Собственно, вот исходники: https://github.com/boriswinner/raycaster/tree/testing травля диванон!11

Пишем с другом на лазарусе, просто потому что можем. Было бы кроссплатформой, если бы не Squall.
Основные проблемы -- крайне хуёвая оптимизация. Ну и куча говнокода, который хорошо было бы отрефакторить.

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

Собственно, кто хочет -- пусть смотрит, форкает репозиторий и, может быть, даже делает пулл реквесты.

Алсо, пикрелейтед -- это наш рейкастер в действии.

Ответы397894

9 фев 2017, 10:45 23 369747

Писал многопоточный рейкастер. Рендерит в фулл-хд в районе 140 кадров на i5-4570. На 1.6GHz в районе 50 выдает. Текстуры на палитре, RGBA8 чуть медленнее. Еще есть простор для оптимизации. Производительность от размеров уровня не зависит вообще никак. Единственное нужно как-то отсекать спрайты.

317 Кб, 1920x1052
9 фев 2017, 11:12 24 369773

Апдейт к предыдущему посту. Оказывается еще делал еще затенение по палитре - 80 кадров. В итоге в FHD на i5. Но там решение влобное, можно немного поизвращаться и выбить.

14 фев 2017, 14:58 25 377888

67 Кб, 816x63879 Кб, 816x63896 Кб, 816x638

ОП на связи.

Запилил двери -- пока чисто декоративно, к тому же, с багами, но зато работает. Было не слишком сложно, как оказывается. Сейчас жду друга и его переработанный формат карт.

Как обычно, репозиторий, если кому интересно, здесь: https://github.com/boriswinner/raycaster/tree/testing
Можете задавать свои ответы либо в этот тред, либо на гитхабе.

Ответы377890377904

14 фев 2017, 14:59 26 377890

>>377888
алсо, фреймрейт низкий из-за VSync

14 фев 2017, 15:39 27 377904

>>377888
У тебя больше на движущуюся стену похоже.
Ну как было в вульфе, только там не вверх отъезжала стена, а от игрока.

Ответы379338380843

15 фев 2017, 15:36 28 379338

>>377904
способ с отъездом двери вверх -- самый простой, на мой взгляд

Ответы380841

16 фев 2017, 04:37 29 380841

>>379338
У тебя текстура как-то деформируется, а не стена уезжает вверх.
На хак похоже.

Ответы380842380902

16 фев 2017, 04:44 30 380842

>>380841
ньюфаги - дверь уезжала в сторону в wolf3d

Ответы380843

16 фев 2017, 04:49 31 380843

>>380842
>>377904

Ответы380846

8 Кб, 249x265
16 фев 2017, 05:50 32 380846

>>380843
от игрока отъезжала стена при открытии секрета

ты ещё эффект что при поднятии копья лонгинуса происходит спутай

на дверях просто скролл текстуры

Ответы380847

16 фев 2017, 05:59 33 380847

>>380846
Там же написано, что больше похоже на движущуюся стену чем на дверь.

16 фев 2017, 14:48 34 380902

>>380841
я просто высоту нормально рассчитываю, а деформацию текстуры не учитываю (SDL2 делает стретч за меня). но это поправимо

19 фев 2017, 14:21 35 381532

Лел, у меня проблема с флоркастингом. Как бы его оптимизировать, чтобы он мне не просаживал фреймрейт?

Ответы384525

27 фев 2017, 13:49 36 384525

>>381532
Можно предрассчитывать дистанции до пола, самая простая оптимизация. Много профита, конечно не даст.

Ответы384958

27 фев 2017, 16:57 37 384596

Ты еще спрайты пачками рисовать не начал, там вообще пизда.

Ответы384958

28 фев 2017, 13:03 38 384958

>>384525
расчёты занимают меньше всего времени

>>384596
какие подводные камни?

Ответы385360

1 мар 2017, 18:17 39 385360

>>384958
> какие подводные камни?
Z-Buffer

Ответы385427

1 мар 2017, 21:58 40 385427

>>385360
Какой нахуй збуфер? Збуфер линейный 1d, чтобы только поверх стенок не рисовалось. Там по филлрейту просто пиздец. Нужно придумывать техники, чтобы овердро не было большого.

Ответы385446

1 мар 2017, 23:27 41 385446

>>385427
> чтобы только поверх стенок не рисовалось
А если один противник перекрывает другого?
Ну и спрайты всяких декораций?

Ответы385449

1 Мб, 1702x2471
1 мар 2017, 23:36 42 385449

>>385446
>А если один противник перекрывает другого?
>Ну и спрайты всяких декораций?
сортировка по глубине

# OP 2 мар 2017, 13:37 43 385590

Оп в треде.

Короче, я отрисовываю таким методом: на каждый луч у меня создаётся стек (объекты, через которые луч прошёл), и из стека я отрисовываю объекты от самого дальнего до самого близкого.

Ответы385929

3 мар 2017, 14:59 44 385929

>>385590
Это называется z-буфер

Ответы385968

3 мар 2017, 16:22 45 385968

>>385929
Нифига, это называется "алгоритм художника".
не ОП

Ответы385989

3 мар 2017, 17:53 46 385989

>>385968
Ну ладно, z-сортировка. Почти однохуйственно, только оперирование не пикселями, а объёктами.

Ответы387405

8 мар 2017, 11:50 47 387405

>>385989
Не неси хуйню. Z-буфер это когда ты сравниваешь глубину текущего пикселя с глубиной уже нарисованного. И если текущий пиксель дальше - дропаешь его. Алгоритм художника рисует на похуй просто в определенном порядке.

Ответы398206

24 апр 2017, 17:47 48 397894

>>368646
>Было бы кроссплатформой, если бы не Squall.
Выпилил Squall из usound и процедуры сделал заглушками. Такой себе вариант, но для посмотреть сойдёт.

25 апр 2017, 15:56 49 398019

Тред вызвал ностальгию, сам делал что то похожее, правда все было написано на чистом С. Пытался еще воксели пилить, вещь как по мне более интересная, но оптимизация там хуевая, дальше простого октодерева не ушел. Матана дохуя, а я в нем шарю плохо.

Ответы398023

25 апр 2017, 16:22 50 398023

>>398019
Для ОПа скажу что софтвейр рендер должен вытягивать рейкаст довольно шусто. Но лучше идти в OGL рендер, как у того же gzdoom

Ответы398031

25 апр 2017, 16:56 51 398031

>>398023
gzdoom в открытые пространства не умеет, всё лагает безбожно. Общая проблема для всех рейкастеров.

Ответы398037

25 апр 2017, 17:22 52 398037

>>398031
Зачем открытые пространства? Это же чистый олдскул.

Ответы398058

25 апр 2017, 19:06 53 398058

>>398037
Хочется чего-нибудь поинтереснее чем коридорные коридоры. В идеале gzdoom с нормальными скриптами и нормальным рендерингом.

Ответы398117398119

26 апр 2017, 08:32 54 398117

>>398058
Я пробовал вкатиться в воксели, но при рейтрейсинге все лагает дико, перегон вокселей в полигоны это не торт, а в оптимизацию как Voxlap, я не могу.
Вот можешь посмотреть демки, интересно, но код там просто пиздец.
http://www.advsys.net/ken/voxlap.htm

26 апр 2017, 09:15 55 398119

>>398058
А если хочешь, что бы был быстрый рейкаст, то копай в сторону OpenCL

Ответы398137398149

26 апр 2017, 12:55 56 398137

>>398119
Тут не в аппаратном ускорении дело (в gzdoom'е он есть), а в принципе рендеринга.
Скачай его и попробуй эту карту https://www.dropbox.com/s/c6ue0gf012nxnzk/GTADoom - V3.6 - Xegethra 2017.rar

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

Ответы398160

26 апр 2017, 14:18 57 398140

>>318338 (OP)

Я ни хуя не понимаю в рейкастинге, но, может, нужно просто использовать BSP?

26 апр 2017, 15:34 58 398149

>>398119
А может, кстати, это ещё и с BSP связано, оно ж вроде не перестраивается динамически. Хотя gzdoom вроде как "полноценный" трёхмерный движок. Хуй его знает короче.

26 апр 2017, 17:21 59 398160

>>398137
Рейкаст можно ограничить, то же bsp дерево и порталы. Но я не колупал сорцы гоззы, там скорее всего куча костылей для совместимости с думом из за чего и ограничения рендера.

Ответы398293

27 апр 2017, 01:57 60 398206

>>387405
Алгоритм художника такая-то хуйня, пытался как-то давно его использовать с 3д графикой и если один объект был внутри другого или был им перекрыт наполовину, то рисовался поверх и у меня глаза ломались
Так что он полезен будет только в максимально простых примерах ради оптимизации

27 апр 2017, 22:23 61 398293

>>398160
>куча костылей для совместимости с думом
Сомневаюсь что это на рендер влияет.

6 янв, 11:50 62 465768

Подскажите а каким образом сделать многоэтажный рэйкаст

Ответы467992

15 янв, 09:08 63 467992

>>465768
Оп ожил. Многоэтажный рейкаст -- довольно заёбистая штука, но у меня была такая идея: отрисовывать блоки точно так же, только смещать их наверх/вниз.

15 янв, 13:39 64 468057

Зачем софтварный рейкастинг во времена, когда в любой процессор (даже в телефоне!) встроен 3D-ускоритель. Чтобы безбожно тупило и жрало батарейку пользователя? Вредители, а не программисты!

Ответы468063

15 янв, 13:46 65 468063

>>468057
>Зачем софтварный рейкастинг во времена, когда в любой процессор (даже в телефоне!) встроен 3D-ускоритель
и уже ради этого ускорителя приходится ебать тотже рейкастинг но уже в 3д...

тем более софтом проще многих эфектов добиться

Ответы468067

15 янв, 13:50 66 468067

>>468063
Не похоже, что ты вообще в курсе, как пишут под ускорители.

Ответы468132

sage 15 янв, 14:09 67 468073

>>318338 (OP)
Нахуя? Надо прогресс вперёд двигать, виар-мобы писать, многопользовательские. Нет, блять, хотим топтаться на месте в попытках вернуть свой ламповый 1987-й.
Говноеды, блядь.

Ответы468115468145

108 Кб, 1280x720
15 янв, 14:46 68 468115

>>468073
>Нахуя? Надо прогресс вперёд двигать, виар-мобы писать, многопользовательские.

15 янв, 15:27 69 468132

>>468067
>Не похоже, что ты вообще в курсе, как пишут под ускорители.
Хуёво пишут. Иначе бы мантлы-вулканы и новые директ-иксы не выходили.

Ответы471583

15 янв, 16:57 70 468145

>>468073
спасибо, мне врчата уже хватило

28 янв, 10:56 71 471583

>>468132
Ты ебанутый?

Тред утонул или удален.
Это копия, сохраненная 27 ноября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /gd/В начало тредаВеб-версияНастройки

/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.gq, m2ch.cf, m2ch.fapp.in, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion