Бред

Ответить в тред Ответить в тред
Аноним 05/12/20 Суб 21:10:46 2347404101
S01205-21053304.jpg 372Кб, 720x908
720x908
S01205-21060459[...].jpg 92Кб, 662x717
662x717
Сап Бибики, по работе пишу реализацию RayCasting'а на c++, графическую часть на opengl пишет другой человек, моя задача написать математически наиболее оптимизированный вариант для свое удобства, чтобы видеть как идет дело - визуализирую с sfml и передать ему.
Можно было бы сказать что я закончил, но функция с расчитыванием длинны луча(просто немного удлинняет его пока не упрется в стену, как в жизни, и передает расстояние) , хоть и выдает миллион фпс на плюсах на этом начальном этапе, но далее может начать тормозить, да и очевидно, что это говно можно оптимизировать еще 100500 раз, и напрашивается вопрос?
-Как?

Т. к. карта это массив n x m 1 и 0 для стен и пустоты( 1 и 0 это не int, а bool, т. к. занимает всего 1 байт, гораздо пизже ящитаю) то можно было бы как то расчитать количество элементов между двумя элементами по прямой, но как это математически сделать я ума не приложу, это же тупо массив единиц и нулей, какое расстояние... помогите если вы умнее....

КОД НА ПИКЕ

1пик - что из себя представляет карта, переделал в одномерный массив, доступ теперь по tilepmap[x + y*map_x].

2пик сама функция
Аноним 05/12/20 Суб 21:14:17 2347406722
"можно было бы как то расчитать количество элементов между двумя элементами по прямой" я конечно имел ввиду, между камерой вида если ее координаты привести к положению в массиве и объектами в поле зрения*
Аноним 05/12/20 Суб 21:14:44 2347407083
бамп
Аноним 05/12/20 Суб 21:15:06 2347407324
бамп
Аноним 05/12/20 Суб 21:15:30 2347407675
кстати ответы "срален ебал ленена вжопу" не принимаются
Аноним 05/12/20 Суб 21:16:28 2347408356
бамп
Аноним 05/12/20 Суб 21:22:17 2347412647
>>234740410 (OP)
Ты с фиксированным шагом идёшь, сделай иерархическую структуру данных, чтоб эффективно скипать пустые пространства.
Плюс из очевидного напрашивается разнести всю эту работу по нескольким потокам.
Аноним 05/12/20 Суб 21:27:34 2347416458
>>234741264
хмм, типо можно например не созданные координаты луча искать в массиве и проверять что там, переводить, а проверять элементы массива вокруг камеры и исходя из колличества нулей скипать? Мне щас на ум пришлл типо того: depth+=tile_size*kollichestvopustoti в каждом шаге. Но мне кажется я тебя не так понял, да и это тоже не самое пиздатое из решений
Аноним 05/12/20 Суб 21:28:17 2347416899
Аноним 05/12/20 Суб 21:28:47 23474172610
>>234741645
тут еще вопрос встает - как направление учитывать в двумерном массиве...
Аноним 05/12/20 Суб 21:29:05 23474174811
Аноним 05/12/20 Суб 21:29:16 23474176212
>>234740410 (OP)
заведи профайлер тулу, посмотри где ботлнек
05/12/20 Суб 21:29:40 23474179613
>>234740767
срален ебал ленена вжопу
Аноним 05/12/20 Суб 21:30:01 23474183414
>>234741689
я просто решил, что раз у меня всего 2 варинта, то смысл инт юзать, когда он в несколько раз больше памяти займет
Аноним 05/12/20 Суб 21:31:00 23474190815
>>234741762
ботлнека мне кажется нет, но самая нагруженная функция - эта, ее и оптимизирую
Аноним 05/12/20 Суб 21:31:16 23474193916
>>234741834
bool может и 4 байта быть. не думаю что тут это повлияет в принципе, в кэш все поместится 100% (если размеры 40 на 40). если больше, то можно пробовать использовать uint8_t и пихать битовую логику
Аноним 05/12/20 Суб 21:32:15 23474201617
Вы тут специально пишете непонятными рандомными словами чтобы никто не мог понять про что выпишите и думали ебать какие вы умные?
Аноним 05/12/20 Суб 21:33:25 23474210518
>>234742016
Ты просто тупой, хули ты сюда вообще зашёл?
Аноним 05/12/20 Суб 21:34:51 23474220119
S01205-213156.jpg 203Кб, 720x1440
720x1440
>>234741939
Странно, я вроде подзаебался и все переменные так расположил, чтобы пустых пространств не было, чем тяжелее объект тем он раньше объявлен, все по уму, а тут на тебе. Если логически подумать то несколько bool должны располагаться в стеке подряд и эти 7 пустых бит не будет, неужели компиляторы это не понимают?
Аноним 05/12/20 Суб 21:35:34 23474225320
>>234742105
Я начал изучать питона неделю назад, думал подчерпну что то полезное а тут какая то хуйня непонятная, пишите по русски для нюфагов пожлст
Аноним 05/12/20 Суб 21:36:01 23474228721
>>234741939
ансигнед насколько мне известно занимает столько же места, просто не дает себя использовать как число со знаком
Аноним 05/12/20 Суб 21:36:02 23474228822
>>234741645
> Мне щас на ум пришлл типо того: depth+=tile_size*kollichestvopustoti в каждом шаге
Я к тому, что, для начала, почитай про dda-алгоритм, и сделай рейкаст с помощью него.
А затем уже этот метод можно улучшить с помощью создания квадродерева из твоего массива, и начинать траверсить локацию с наименее детализованного "корня", при обнаружении столкновения спускаться на более детализованные уровни этого дерева. Тем самым, будут скипаться пустоты.
Аноним 05/12/20 Суб 21:37:40 23474240623
>>234742288
это же уже элементы рэй марчинга, нет? Хотя никто не запрещал этого
Аноним 05/12/20 Суб 21:38:18 23474243824
>>234740410 (OP)
>длинны луча
>) ,
>Вместо Си сразу плюсы, а код явно не плюсовый какая-то хуйня на коленке да ещё и на SFML, вся широта которого - это example с гитхаба; да ещё и poll-эвент у них через жопу сделан.
Пиздец, а какие требования выдвигают: несколько лет опыта работы, высшее образование, знание С++... Я хуею...
Аноним 05/12/20 Суб 21:38:33 23474246225
>>234742406
Он самый, но по факту же то же самое получится, просто рейкаст – более тупая версия.
Аноним 05/12/20 Суб 21:38:44 23474247826
dFHFY.png 3Кб, 325x132
325x132
>>234742288
а ведь и вправду шагов гораздо меньше, надо подумать
Аноним 05/12/20 Суб 21:39:33 23474254327
>>234742253
Ну так и иди в загон к питонистам, тут программисты собрались
Аноним 05/12/20 Суб 21:39:40 23474255228
Аноним 05/12/20 Суб 21:39:55 23474257329
Аноним 05/12/20 Суб 21:40:03 23474258230
>>234742438
это прототип, братан, ты вообще видишь названия переменных и размер карты?
Аноним 05/12/20 Суб 21:40:58 23474264631
>>234742438
Что такое poll-эвент?
Мимо C++ кодер.
Аноним 05/12/20 Суб 21:41:17 23474267432
>>234742287
Я имею в виду использовать 1 uint8_t элемент как 8 bool элементов. Но здемь это судя по всему не нужно
Аноним 05/12/20 Суб 21:41:32 23474269333
>>234740410 (OP)
тип байт или чар к тебе в СИ не завезли? булевый он блядь.
Аноним 05/12/20 Суб 21:41:46 23474270734
Бамп
Аноним 05/12/20 Суб 21:42:55 23474279335
Хочу вкатиться нахуй
Ничего не советуйте
Спасибо
Аноним 05/12/20 Суб 21:43:17 23474282136
>>234740410 (OP)
Поясните мимо гуманитарию, что вообще значит написать лучи на чем-то? Как можно отдельно написать лучи без собственно того, к чему они будут применены? Должна же быть какая-то прикладная часть. Или нет? И если нет, то как человеческим языком вообще упрощенно выглядит алгоритм к подобному? Реально темный лес
Аноним 05/12/20 Суб 21:43:43 23474285237
>>234742552
Намного легче этой хуйни кстати >>234742478
Запилишь таблицу тангенсов, чтоб лишний раз не вычислять и будет заебись
Аноним 05/12/20 Суб 21:43:46 23474285938
S01205-21413814.jpg 189Кб, 720x870
720x870
S01205-21423294.jpg 55Кб, 720x239
720x239
>>234742573
я все сделал правильно, но с объявлением битовых полей проебался, спасибо, освежу память
Аноним 05/12/20 Суб 21:44:11 23474288739
Аноним 05/12/20 Суб 21:45:33 23474300340
>>234742859
Чем тебе Стивен Прата или K&R не угодили? В них в одной главе материала как 5 таких статеек
Аноним 05/12/20 Суб 21:45:39 23474301041
Аноним 05/12/20 Суб 21:46:13 23474305842
>>234742887
так это ты должен был понять, ебантей, а не мне мозги ебать чтобы пальцем показал
Аноним 05/12/20 Суб 21:46:26 23474307743
>>234742821
Анон стреляет ебалом. Из ебала вылетает луч длиной Х = 0 + шаг. Луч столкнулся с чем-нибудь? Если да, мы узнали расстояние до объекта. Если нет, то прибавляем Х = Х + шаг и проверяем снова. Вот тут для совсем дегенератов нормальный алгос >>234742552
Аноним 05/12/20 Суб 21:50:56 23474343344
>>234742852
А если ещё распаралелишь, то вообще заебись будет. Видеокарту можно использовать? Юзай тогда openCL. Ёбнешь сразу 1000 параллельных лучей.
Аноним 05/12/20 Суб 21:53:31 23474364845
>>234742552
хуйня, что за ебланский способ убирать искажения? у меня лучше имхо
Аноним 05/12/20 Суб 21:55:05 23474376246
>>234742646
В контексте sfml, poll - это такой механизм, который ловит события, чтобы уместить их в один поток. Ну, например, ты кликнул на мышку, потом нажал клавишу 'q' - sfml поймал каждое твое событие (sfMouseEvent, sfKeyEvent) и последовательно обработал ТОЛЬКО тогда, когда они поступили в пул.

Однако, эта библиотека не даёт тебе права на свои события, а определяет их за тебя. Те же sf*Event: другие события, которые тебе вдруг могут захотеться не предусматриваются - либо лезешь в сорс, либо довольствуешься тем что есть.

А вообще, в общих чертах про poll: man poll или https://man7.org/linux/man-pages/man2/poll.2.html.
Аноним 05/12/20 Суб 21:56:13 23474385247
>>234742852
жертствовать озу ради скорости не привыкать, сделаем. >>234743433
не уверен, что можно, надо будет узнать
Аноним 05/12/20 Суб 21:57:16 23474393748
image.png 88Кб, 320x200
320x200
>>234740410 (OP)
> по работе пишу реализацию RayCasting'а на c++

Чего блять? Это что за дноработа, где такое требуется написать? Так и скажи, что дрочишь сам с собой, нечего выдумывать несуществующую работу.

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

https://lodev.org/cgtutor/raycasting.html
Аноним 05/12/20 Суб 21:58:18 23474402449
>>234742852
бляяяяя можно тогда и карту сделать как массив vertex'ов и делать не ебучие квадратные стены. ахуенная тема рэй марчинг, прямо сейчас иду переделывать
Аноним 05/12/20 Суб 21:59:39 23474413050
>>234743937

Пик в тему. Вулфенстейн какой-то с элементами raycast
>>234742887
Аноним 05/12/20 Суб 22:00:38 23474418551
>>234743937
вот такая вот работа, хоть верь, хоть не верь. Меня через раз заставляют вообще бэк на шарпе писать, так что ебанутости задач тут я уже не удивляюсь. Джунов ебут только так, а ты думал
Аноним 05/12/20 Суб 22:01:33 23474424452
>>234743937
тебе тоже объяснять что это прототип и указывать пальцем? >>234742582
Аноним 05/12/20 Суб 22:02:03 23474427653
Аноним 05/12/20 Суб 22:02:07 23474428454
>>234743762
Круто, спасибо, то чувство, когда на Дваче узнаешь что-то полезное.
Аноним 05/12/20 Суб 22:02:47 23474432955
>>234744185
Да врешь ты. Кому нахрен нужен этот рейкастинг блять? Максимум что я мог бы выдумать в оправдание - задачка джуну в геймдеве, где будет мини игра на нем основанная. Но это уже явно не Российский геймдев с бесконечными его мобильными дрочильнями, а по твоему коду ты не тянешь на джуна в нормальной компании.

Вот и вопрос - зачем пиздишь, а если таки хочешь меня развлечь - скажи нахуя тебе эту задачу дали?
Аноним 05/12/20 Суб 22:02:56 23474434356
>>234744185
Я что-то не понял, ты в какой-то геймдев-параше работаешь, или что?
Аноним 05/12/20 Суб 22:03:00 23474434757
>>234744185
можно сказать я разнорабочий тоджык под обманным названием программист, в вакансии
Аноним 05/12/20 Суб 22:03:57 23474443358
>>234744244
Это хуже прототипа. Тебе придется переписать все под ноль, если ты захочешь нормально сделать.
Аноним 05/12/20 Суб 22:05:00 23474450159
>>234744343
можно сказать аутизмсорс
Аноним 05/12/20 Суб 22:05:19 23474452360
>>234744347
Суть в том, что такая задача нигде абсолютно не нужна. Поэтому возникает большой вопрос - либо ты выдумываешь, либо в твоей конторе совсем какой-то странной хуйней занимаются, что такие дебильные задачи джунам дают.
Аноним 05/12/20 Суб 22:05:23 23474452661
>>234744433
>>234744329
Че вы доебались на ровном месте? Пояснили бы лучше по строкам в чем косяки
Аноним 05/12/20 Суб 22:06:13 23474457862
>>234744329
ахахах кому ты на хуй упал долбаеб тебе еще объяснять что-то, боже, какие аноны ахуевшие стали
Аноним 05/12/20 Суб 22:06:44 23474461163
>>234744244
Да засунь ты себе этот палец в жопу! Почитай книжки по Raycast что ли, а не выдумывай уже давно выведенные законы и правила геометрии, ебя своими потоками сознания об упавшем тебе на голову яблоке окружающих...
Аноним 05/12/20 Суб 22:07:42 23474468264
>>234744523
>абсолютно нигде не нужна
я передам, не знают детишки наверно, 300к наносек папа с двача пояснит
Аноним 05/12/20 Суб 22:08:23 23474473665
image.png 45Кб, 190x190
190x190
>>234744578
> школьник долбаеб зачем-то врет о том, что ему ПО РАБОТЕ дали задачу уровня "написать калькулятор хыыы"
> удивляется почему к нему доебались

Так интересно же в какой компании и при каких условиях такое могут попросить написать. Даже в гейдеве такие задачи - нонсенс. Не врал бы с самого начала - другой разговор был бы.
Аноним 05/12/20 Суб 22:09:11 23474478866
>>234744611
ТАК СКАЖИ ЧТО ЭТО ЗА ПРАВИЛО ТАКОЕ В ГЕОМЕТРИИ - СЧИТАТЬ В ПИКСЕЛЯХ РАСТОЯНИЕ ПО КОЛИЧЕСТВУ ЭЛЕМЕНТОВ МЕЖДУ ДВУМЯ ЭЛЕМЕНТАМИ МАССИВА В РАЗНЫХ РЯДАХ
Аноним 05/12/20 Суб 22:10:18 23474486767
>>234744526
Тебе ведь даже гайд выше скинул анон -> >>234743937

рейкастинг - тысячу раз вдоль и поперек изведанная тема, и выдумывать неоптимизированные говновелосипеды - признак твоего низкого интеллектуального развития. Ты же не для себя делаешь это, а тебе на РАБОТЕ задачу дали - так и решай её по готовому материалу, тебе не за велосипеды деньги платят.
Аноним 05/12/20 Суб 22:11:38 23474495468
>>234744788
Никто и не считает шагами этот луч. Гугли DDA линии. Это все давно уже сделано за тебя, мы не понимаем нахуй ты велосипед из своей головы выдумываешь.
Аноним 05/12/20 Суб 22:12:14 23474500469
>>234744736>>234744736
сукина дочь, делаем мы ебучие курсовые для хуесосов почти таких же как хуесосов как ты, но не настолько
Аноним 05/12/20 Суб 22:12:30 23474502270
>>234744867
Про то что его рейкастинг говно я и сам знаю. По коду доёбы я не понимаю.
Аноним 05/12/20 Суб 22:13:39 23474510671
>>234745004
> курсовые

Ору. Ну так возьми и скопируй существующее. Тысячи их на гитхабе, нахуй ты на полном серьезе еще и вдумываешься в это? Давно уже на поток должен эти работы для студентиков поставить.
Аноним 05/12/20 Суб 22:13:55 23474513072
Идите нахуй, я ушел, безполезные
Аноним 05/12/20 Суб 22:15:15 23474523473
>>234745130
лол, порвался индус плюсовый велосипедный
мимо многопоточный микросервисный хайлоад чад
Аноним 05/12/20 Суб 22:15:36 23474526274
>>234745106
так вся эта хуйня с пошаговым удлинением везде, ХОЧУ ЛУЧШЕ, ВЫШЕ, ДЛИННЕЕ И ЧТОБЫ СВОЕ
Аноним 05/12/20 Суб 22:17:22 23474539575
>>234744501
А при чем здесь аутсорс? Ты высираешь и хуйню для геймдева, и в бэкэнде на шарпе пердишь. Ты собираешься быть вечным джуном, или че? У тебя там ебанутые работодатели?
Хотя, конечно, как сказал анон >>234743937, видимо, просто сам вкатываешься, а анонам зачем-то пиздишь, зачем-то.
Аноним 05/12/20 Суб 22:17:42 23474541576
>>234745262
Смысле? Везде не векторах как раз с DDD алгоритмом. Ты где-то не там смотришь, значит.
Аноним 05/12/20 Суб 22:18:27 23474545577
>>234745234
не пизди давай, питонист фронтендер инцел
Аноним 05/12/20 Суб 22:19:20 23474551078
>>234740410 (OP)
Подгляди у Идентификаторов, они - почти что пионеры этого дела. Только рады будут.
Аноним 05/12/20 Суб 22:19:25 23474551879
>>234740410 (OP)
Зачем начинать дрочить плюсы в 2020, когда есть всякие Go? Вы ебанутые?
Аноним 05/12/20 Суб 22:20:20 23474557280
>>234745415
где везде, ты что ебанутый, у нас интернет разный или что? а ну ссылку
Аноним 05/12/20 Суб 22:20:52 23474561181
Аноним 05/12/20 Суб 22:21:23 23474563982
>>234744788
А вот тонкости реализации тебе в книге не напишут, если это не "Raycast на C++ для чайников". Ты в учебнике по алгебре хоть раз код на языке программирования видел?

>>234745262
Для этого книжки читать надо, а не статейки в гугле
Аноним 05/12/20 Суб 22:21:43 23474566583
>>234740410 (OP)
гугли ускоряющие структуры, хотя бы какое-нибудь примитивное BVH типа AABB
Аноним 05/12/20 Суб 22:23:19 23474575784
>>234745518
>не в 2020
>C++ великий, go, huython, huy#, huyscrypt и тд хуйня
Аноним 05/12/20 Суб 22:24:16 23474581985
>>234745665
Оно тут нахуй не сдалось
Аноним 05/12/20 Суб 22:24:29 23474582486
>>234745639
>в книжке не напишут
>книжки читать надо
Аноним 05/12/20 Суб 22:25:50 23474591587
>>234740410 (OP)
>просто немного удлинняет его пока не упрется в стену, как в жизни, и передает расстояние

лол что блять...

это что за дерьмо?!
бляять

так рейкаст не делается
Аноним 05/12/20 Суб 22:26:53 23474599888
>>234745819
>Оно тут нахуй не сдалось
оно везде сдалось, только нужно уметь применять

Ты посмотри что он делает блять:

>просто немного удлинняет его пока не упрется в стену, как в жизни, и передает расстояние

они ИТЕРАЦИОННО УВЕЛИЧИВАЕТ ДЛИНУ ЛУЧА АХАХАХАХА ПОКА ТОТ АХАХА НЕ УПРЕТСЯ АХАХАХАХАХАХАХАХАХА
Аноним 05/12/20 Суб 22:30:19 23474623389
>>234745824
До конца цитаты вставляй, пожалуйста, а то нихуя не понятно что ты имеешь ввиду
Аноним 05/12/20 Суб 22:33:46 23474638790
>>234745998
ray++

а не проще ли сразу этот шар к себе подвинуть чтобы луч не увеличивать? что за пиздец...
Аноним 05/12/20 Суб 22:44:35 23474719191
>>234745455
а вот пососи падла
хз как пруфнуть не нарушиф nda
Аноним 05/12/20 Суб 22:45:06 23474721892
oekaki.png 19Кб, 400x400
400x400
>>234746387


Есть точка старта луча и направление

Есть объект и его координаты.

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

И так пробегаем по всему списку объектов.

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

Итерационно луч увеличивать не надо, это вообще ненужно. Всё решается аналитически простой геометрией за одну итерацию каста луча, в миллионы раз быстрее, чем если луч увеличивать каждый раз за такт.
Аноним 05/12/20 Суб 22:47:57 23474742393
>>234747218
Ну и список объектов и их вершин с поликами естественно должен быть представлен в виде какой-нибудь ускоряющей иерархической структуры типа BVH.
Аноним 05/12/20 Суб 22:49:42 23474754894
>>234740410 (OP)
>мам я программист
>какие алгоритмы мам я же не математик
Пиздец, а кто полы мыть у меня в кабинете будет?
Аноним 05/12/20 Суб 23:03:00 23474840395
>>234747548
Ну так это отдельные уникумы, которые в геймдев идут, дрочат плюсы и думают, что им не понадобится математика, физика и т. д.
Адекватные люди, которые хотят денег, вкатываются в какой-нибудь веб и в хуй не дуют, не пытаясь потешно дрочить какую-то хуйню для дегенератов, которая не оправдывает усилия, которые на освоения этой хуеты тратятся.
Аноним 05/12/20 Суб 23:11:07 23474887896
Аноним 05/12/20 Суб 23:14:24 23474910097
>>234747218
По мне треугольная графика круче
Аноним 05/12/20 Суб 23:19:44 23474947598
>>234748403
Не пизди, там не нужна большая часть вузовской математики.
Аноним 05/12/20 Суб 23:20:42 23474955399
>>234749475
Где? В js и php? Ну и я о том же.
Аноним 05/12/20 Суб 23:22:29 234749632100
>>234749475
>>234749553
А эти фронтэндеры и бэкэндеры, джаваскриптовые макаки и дрочеры php порой зарабатывают больше, чем какой-то мудак, который дрочит себе там матан, дискру, плюсы и т. д.
Аноним 05/12/20 Суб 23:22:58 234749671101
>>234740410 (OP)
Оффтоп.

РЕПОСТ РЕПОСТ РЕПОСТ

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

РЕПОСТ РЕПОСТ РЕПОСТ
Аноним 05/12/20 Суб 23:28:14 234750004102
Настройки X
Ответить в тред X
15000
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов