Этого треда уже нет.
Это копия, сохраненная 27 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 27 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
15 Кб, 320x200
Суп, мейлач. Заинтересовался рейкастингом, решил почитать туториалы по оному http://lodev.org/cgtutor/raycasting.html, кому интересно. Принцип работы примерно понятен, но алгоритм работает медленно (ОЧЕНЬ). Я, конечно, не эксперт, но что-то мне подсказывает, что его можно ускорить, чтобы он не лагал так дико. Есть предположения?
>>318338 (OP)
http://zxdn.narod.ru/coding/ig5ray3d.htm
Не плохая ссылка по данной теме, если не ознакомлен, то прошу ознакомиться.
http://zxdn.narod.ru/coding/ig5ray3d.htm
Не плохая ссылка по данной теме, если не ознакомлен, то прошу ознакомиться.
>>318340
К love2d это отношения не имеет, по ссылке вроде с++
К love2d это отношения не имеет, по ссылке вроде с++
>>318338 (OP)
Суть в том что wolf 3d - не 3d, а очень даже 2d. Расчёт графики не делается по высоте, а только по глубине. Т.е. луч идёт не для каждого отдельного пикселя, а для каждого отдельного столбца пикселей.
>Я, конечно, не эксперт, но что-то мне подсказывает, что его можно ускорить, чтобы он не лагал так дико.
Суть в том что wolf 3d - не 3d, а очень даже 2d. Расчёт графики не делается по высоте, а только по глубине. Т.е. луч идёт не для каждого отдельного пикселя, а для каждого отдельного столбца пикселей.
>>318431
Ну просто хуй знает тогда. Всё таки Кармак мог в оптимизон.
Пусть ОП тогда в исходный код смотрит.
Ну просто хуй знает тогда. Всё таки Кармак мог в оптимизон.
Пусть ОП тогда в исходный код смотрит.
31 Кб, 392x490
ОП снова вкатился в тред.
>>318426
Я знаю, как работает рейкастинг в вульфе. Только вот он спокойненько шёл на 80286, а вот код по ссылочке в совокупности с QuickCG (либа автора статьи, на SDL базируется) будет лагать на каком-нибудь обоссаном коре2дуо при 1280х1024.
Я грешу на то, что вся эта залупа рисуется попиксельно (!) на софтваре рендере(!!), но всё же хотелось бы оставить рендер на ЦПУ. Чёрт возьми, рейкастинг летает на первом пеньке (1024х768 всё-таки вытянет), почему он должен давать 60-65 фпс на компьютере образца 2007 года в окошке 512х384?
>>318451
У Кармака обычно полная разъёба в исходниках, ибо мелькают неочевидные оптимизации. Но вольфа вроде тоже рисуется попиксельно, правда, там вставочка ассемблерная на рисовку, потому что дос и можно напрямую работать с графикой. Но почитать всё же попробую, лишним не будет.
>>318343
Благодарю, сейчас почитаю.
>>318426
Я знаю, как работает рейкастинг в вульфе. Только вот он спокойненько шёл на 80286, а вот код по ссылочке в совокупности с QuickCG (либа автора статьи, на SDL базируется) будет лагать на каком-нибудь обоссаном коре2дуо при 1280х1024.
Я грешу на то, что вся эта залупа рисуется попиксельно (!) на софтваре рендере(!!), но всё же хотелось бы оставить рендер на ЦПУ. Чёрт возьми, рейкастинг летает на первом пеньке (1024х768 всё-таки вытянет), почему он должен давать 60-65 фпс на компьютере образца 2007 года в окошке 512х384?
>>318451
У Кармака обычно полная разъёба в исходниках, ибо мелькают неочевидные оптимизации. Но вольфа вроде тоже рисуется попиксельно, правда, там вставочка ассемблерная на рисовку, потому что дос и можно напрямую работать с графикой. Но почитать всё же попробую, лишним не будет.
>>318343
Благодарю, сейчас почитаю.
>>318502
Потому что в вульфе не 1024х768, а 320х200 (даже меньше).
Вообще, попробуй вот этот алгоритм http://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/ именно он раньше использовался. Потом выбери тот, который быстрее и профильни, но скорее всего, 800х600 - это предел.
Потому что в вульфе не 1024х768, а 320х200 (даже меньше).
Вообще, попробуй вот этот алгоритм http://permadi.com/1996/05/ray-casting-tutorial-table-of-contents/ именно он раньше использовался. Потом выбери тот, который быстрее и профильни, но скорее всего, 800х600 - это предел.
>>318508
Ну, про 320х200 я в курсе, конечно. Но есть одно маленькое "но": Core 2 Duo помощнее 80386, соответственно, и вывозит нагрузки побольше.
Ну, про 320х200 я в курсе, конечно. Но есть одно маленькое "но": Core 2 Duo помощнее 80386, соответственно, и вывозит нагрузки побольше.
На JS рейкаскинг выдает спокойно 60фпс)
66 Кб, 600x360
Бамп.
Реализовал рейкастер. Пола, потолка, дверей, спрайтов, нпс и прочего производного нет. Но зато есть текстуры на стенах, а ещё поддерживается прозрачность у оных. кому надо -- есть исходники
А вопрос такого толка -- как реализовать эти ебучие двери? Про спрайты тоже интересно (желательно, чтобы они имели угол поворота, чтобы они были не такими палевными, это уже посложнее).
Реализовал рейкастер. Пола, потолка, дверей, спрайтов, нпс и прочего производного нет. Но зато есть текстуры на стенах, а ещё поддерживается прозрачность у оных. кому надо -- есть исходники
А вопрос такого толка -- как реализовать эти ебучие двери? Про спрайты тоже интересно (желательно, чтобы они имели угол поворота, чтобы они были не такими палевными, это уже посложнее).
>>365466
Если можешь - выложи плз, тоже начал интересоваться этой темой и тут как раз тред этот увидел.
На чём пишешь, кстати?
>кому надо -- есть исходники
Если можешь - выложи плз, тоже начал интересоваться этой темой и тут как раз тред этот увидел.
На чём пишешь, кстати?
>>318338 (OP)
Во первых, LUA не то чтобы быстро работает. Плюс, ты пробовал смотреть на производительность в зависимости от размера комнаты?
Во первых, LUA не то чтобы быстро работает. Плюс, ты пробовал смотреть на производительность в зависимости от размера комнаты?
>>365466
Жду исходники.
Жду исходники.
>>318502
Поищи профайлеры. Типа Sleepy или аналогичных. Они тебе покажут, сколько времени тратит каждая строчка твоего кода.
>почему он должен давать 60-65 фпс на компьютере образца 2007 года в окошке 512х384?
Поищи профайлеры. Типа Sleepy или аналогичных. Они тебе покажут, сколько времени тратит каждая строчка твоего кода.
>>318338 (OP)
ОП, лучше глянь как делался вульф для айфона
https://github.com/id-Software/Wolf3D-iOS
http://fabiensanglard.net/wolf3d/index.php
ОП, лучше глянь как делался вульф для айфона
https://github.com/id-Software/Wolf3D-iOS
http://fabiensanglard.net/wolf3d/index.php
106 Кб, 816x638
ОП снова тут.
Собственно, вот исходники: https://github.com/boriswinner/raycaster/tree/testing травля диванон!11
Пишем с другом на лазарусе, просто потому что можем. Было бы кроссплатформой, если бы не Squall.
Основные проблемы -- крайне хуёвая оптимизация. Ну и куча говнокода, который хорошо было бы отрефакторить.
Появилась идея реализовать полы/потолки, затем разные высоты блоков, а затем можно сделать дверь как стену с меняющейся высотой, но это не совсем труЪ, потому что хочу как в вольфе/дюк нюкеме на сегу.
Собственно, кто хочет -- пусть смотрит, форкает репозиторий и, может быть, даже делает пулл реквесты.
Алсо, пикрелейтед -- это наш рейкастер в действии.
Собственно, вот исходники: https://github.com/boriswinner/raycaster/tree/testing травля диванон!11
Пишем с другом на лазарусе, просто потому что можем. Было бы кроссплатформой, если бы не Squall.
Основные проблемы -- крайне хуёвая оптимизация. Ну и куча говнокода, который хорошо было бы отрефакторить.
Появилась идея реализовать полы/потолки, затем разные высоты блоков, а затем можно сделать дверь как стену с меняющейся высотой, но это не совсем труЪ, потому что хочу как в вольфе/дюк нюкеме на сегу.
Собственно, кто хочет -- пусть смотрит, форкает репозиторий и, может быть, даже делает пулл реквесты.
Алсо, пикрелейтед -- это наш рейкастер в действии.
Писал многопоточный рейкастер. Рендерит в фулл-хд в районе 140 кадров на i5-4570. На 1.6GHz в районе 50 выдает. Текстуры на палитре, RGBA8 чуть медленнее. Еще есть простор для оптимизации. Производительность от размеров уровня не зависит вообще никак. Единственное нужно как-то отсекать спрайты.
317 Кб, 1920x1052
Апдейт к предыдущему посту. Оказывается еще делал еще затенение по палитре - 80 кадров. В итоге в FHD на i5. Но там решение влобное, можно немного поизвращаться и выбить.
ОП на связи.
Запилил двери -- пока чисто декоративно, к тому же, с багами, но зато работает. Было не слишком сложно, как оказывается. Сейчас жду друга и его переработанный формат карт.
Как обычно, репозиторий, если кому интересно, здесь: https://github.com/boriswinner/raycaster/tree/testing
Можете задавать свои ответы либо в этот тред, либо на гитхабе.
Запилил двери -- пока чисто декоративно, к тому же, с багами, но зато работает. Было не слишком сложно, как оказывается. Сейчас жду друга и его переработанный формат карт.
Как обычно, репозиторий, если кому интересно, здесь: https://github.com/boriswinner/raycaster/tree/testing
Можете задавать свои ответы либо в этот тред, либо на гитхабе.
>>377888
алсо, фреймрейт низкий из-за VSync
алсо, фреймрейт низкий из-за VSync
>>377888
У тебя больше на движущуюся стену похоже.
Ну как было в вульфе, только там не вверх отъезжала стена, а от игрока.
У тебя больше на движущуюся стену похоже.
Ну как было в вульфе, только там не вверх отъезжала стена, а от игрока.
8 Кб, 249x265
>>380843
от игрока отъезжала стена при открытии секрета
ты ещё эффект что при поднятии копья лонгинуса происходит спутай
на дверях просто скролл текстуры
от игрока отъезжала стена при открытии секрета
ты ещё эффект что при поднятии копья лонгинуса происходит спутай
на дверях просто скролл текстуры
>>380846
Там же написано, что больше похоже на движущуюся стену чем на дверь.
Там же написано, что больше похоже на движущуюся стену чем на дверь.
>>380841
я просто высоту нормально рассчитываю, а деформацию текстуры не учитываю (SDL2 делает стретч за меня). но это поправимо
я просто высоту нормально рассчитываю, а деформацию текстуры не учитываю (SDL2 делает стретч за меня). но это поправимо
Лел, у меня проблема с флоркастингом. Как бы его оптимизировать, чтобы он мне не просаживал фреймрейт?
>>381532
Можно предрассчитывать дистанции до пола, самая простая оптимизация. Много профита, конечно не даст.
Можно предрассчитывать дистанции до пола, самая простая оптимизация. Много профита, конечно не даст.
>>385360
Какой нахуй збуфер? Збуфер линейный 1d, чтобы только поверх стенок не рисовалось. Там по филлрейту просто пиздец. Нужно придумывать техники, чтобы овердро не было большого.
Какой нахуй збуфер? Збуфер линейный 1d, чтобы только поверх стенок не рисовалось. Там по филлрейту просто пиздец. Нужно придумывать техники, чтобы овердро не было большого.
>>385427
А если один противник перекрывает другого?
Ну и спрайты всяких декораций?
> чтобы только поверх стенок не рисовалось
А если один противник перекрывает другого?
Ну и спрайты всяких декораций?
1 Мб, 1702x2471
>>385446
сортировка по глубине
>А если один противник перекрывает другого?
>Ну и спрайты всяких декораций?
сортировка по глубине
Оп в треде.
Короче, я отрисовываю таким методом: на каждый луч у меня создаётся стек (объекты, через которые луч прошёл), и из стека я отрисовываю объекты от самого дальнего до самого близкого.
Короче, я отрисовываю таким методом: на каждый луч у меня создаётся стек (объекты, через которые луч прошёл), и из стека я отрисовываю объекты от самого дальнего до самого близкого.
>>385968
Ну ладно, z-сортировка. Почти однохуйственно, только оперирование не пикселями, а объёктами.
Ну ладно, z-сортировка. Почти однохуйственно, только оперирование не пикселями, а объёктами.
>>385989
Не неси хуйню. Z-буфер это когда ты сравниваешь глубину текущего пикселя с глубиной уже нарисованного. И если текущий пиксель дальше - дропаешь его. Алгоритм художника рисует на похуй просто в определенном порядке.
Не неси хуйню. Z-буфер это когда ты сравниваешь глубину текущего пикселя с глубиной уже нарисованного. И если текущий пиксель дальше - дропаешь его. Алгоритм художника рисует на похуй просто в определенном порядке.
>>368646
Выпилил Squall из usound и процедуры сделал заглушками. Такой себе вариант, но для посмотреть сойдёт.
>Было бы кроссплатформой, если бы не Squall.
Выпилил Squall из usound и процедуры сделал заглушками. Такой себе вариант, но для посмотреть сойдёт.
Тред вызвал ностальгию, сам делал что то похожее, правда все было написано на чистом С. Пытался еще воксели пилить, вещь как по мне более интересная, но оптимизация там хуевая, дальше простого октодерева не ушел. Матана дохуя, а я в нем шарю плохо.
>>398019
Для ОПа скажу что софтвейр рендер должен вытягивать рейкаст довольно шусто. Но лучше идти в OGL рендер, как у того же gzdoom
Для ОПа скажу что софтвейр рендер должен вытягивать рейкаст довольно шусто. Но лучше идти в OGL рендер, как у того же gzdoom
>>398023
gzdoom в открытые пространства не умеет, всё лагает безбожно. Общая проблема для всех рейкастеров.
gzdoom в открытые пространства не умеет, всё лагает безбожно. Общая проблема для всех рейкастеров.
>>398037
Хочется чего-нибудь поинтереснее чем коридорные коридоры. В идеале gzdoom с нормальными скриптами и нормальным рендерингом.
Хочется чего-нибудь поинтереснее чем коридорные коридоры. В идеале gzdoom с нормальными скриптами и нормальным рендерингом.
>>398058
Я пробовал вкатиться в воксели, но при рейтрейсинге все лагает дико, перегон вокселей в полигоны это не торт, а в оптимизацию как Voxlap, я не могу.
Вот можешь посмотреть демки, интересно, но код там просто пиздец.
http://www.advsys.net/ken/voxlap.htm
Я пробовал вкатиться в воксели, но при рейтрейсинге все лагает дико, перегон вокселей в полигоны это не торт, а в оптимизацию как Voxlap, я не могу.
Вот можешь посмотреть демки, интересно, но код там просто пиздец.
http://www.advsys.net/ken/voxlap.htm
>>398119
Тут не в аппаратном ускорении дело (в gzdoom'е он есть), а в принципе рендеринга.
Скачай его и попробуй эту карту https://www.dropbox.com/s/c6ue0gf012nxnzk/GTADoom - V3.6 - Xegethra 2017.rar
Всё безбожно лагает до тех пор, пока ты не начинаешь перемещаться к одной из границ карты, смотря в её сторону. Насколько я понял, движок дальность прорисовки не ограничивает, поэтому пускает лучи во все стороны на максимальную дистанцию.
Тут не в аппаратном ускорении дело (в gzdoom'е он есть), а в принципе рендеринга.
Скачай его и попробуй эту карту https://www.dropbox.com/s/c6ue0gf012nxnzk/GTADoom - V3.6 - Xegethra 2017.rar
Всё безбожно лагает до тех пор, пока ты не начинаешь перемещаться к одной из границ карты, смотря в её сторону. Насколько я понял, движок дальность прорисовки не ограничивает, поэтому пускает лучи во все стороны на максимальную дистанцию.
>>398119
А может, кстати, это ещё и с BSP связано, оно ж вроде не перестраивается динамически. Хотя gzdoom вроде как "полноценный" трёхмерный движок. Хуй его знает короче.
А может, кстати, это ещё и с BSP связано, оно ж вроде не перестраивается динамически. Хотя gzdoom вроде как "полноценный" трёхмерный движок. Хуй его знает короче.
>>398137
Рейкаст можно ограничить, то же bsp дерево и порталы. Но я не колупал сорцы гоззы, там скорее всего куча костылей для совместимости с думом из за чего и ограничения рендера.
Рейкаст можно ограничить, то же bsp дерево и порталы. Но я не колупал сорцы гоззы, там скорее всего куча костылей для совместимости с думом из за чего и ограничения рендера.
>>387405
Алгоритм художника такая-то хуйня, пытался как-то давно его использовать с 3д графикой и если один объект был внутри другого или был им перекрыт наполовину, то рисовался поверх и у меня глаза ломались
Так что он полезен будет только в максимально простых примерах ради оптимизации
Алгоритм художника такая-то хуйня, пытался как-то давно его использовать с 3д графикой и если один объект был внутри другого или был им перекрыт наполовину, то рисовался поверх и у меня глаза ломались
Так что он полезен будет только в максимально простых примерах ради оптимизации
>>465768
Оп ожил. Многоэтажный рейкаст -- довольно заёбистая штука, но у меня была такая идея: отрисовывать блоки точно так же, только смещать их наверх/вниз.
Оп ожил. Многоэтажный рейкаст -- довольно заёбистая штука, но у меня была такая идея: отрисовывать блоки точно так же, только смещать их наверх/вниз.
Зачем софтварный рейкастинг во времена, когда в любой процессор (даже в телефоне!) встроен 3D-ускоритель. Чтобы безбожно тупило и жрало батарейку пользователя? Вредители, а не программисты!
>>468057
и уже ради этого ускорителя приходится ебать тотже рейкастинг но уже в 3д...
тем более софтом проще многих эфектов добиться
>Зачем софтварный рейкастинг во времена, когда в любой процессор (даже в телефоне!) встроен 3D-ускоритель
и уже ради этого ускорителя приходится ебать тотже рейкастинг но уже в 3д...
тем более софтом проще многих эфектов добиться
>>318338 (OP)
Нахуя? Надо прогресс вперёд двигать, виар-мобы писать, многопользовательские. Нет, блять, хотим топтаться на месте в попытках вернуть свой ламповый 1987-й.
Говноеды, блядь.
Нахуя? Надо прогресс вперёд двигать, виар-мобы писать, многопользовательские. Нет, блять, хотим топтаться на месте в попытках вернуть свой ламповый 1987-й.
Говноеды, блядь.
>>468067
Хуёво пишут. Иначе бы мантлы-вулканы и новые директ-иксы не выходили.
>Не похоже, что ты вообще в курсе, как пишут под ускорители.
Хуёво пишут. Иначе бы мантлы-вулканы и новые директ-иксы не выходили.
>>468073
спасибо, мне врчата уже хватило
спасибо, мне врчата уже хватило
>>468132
Ты ебанутый?
Ты ебанутый?
Тред утонул или удален.
Это копия, сохраненная 27 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 27 ноября 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.