Pull to refresh
12
Oleg Sapronov@holydel

realtime graphics software engineer

0,1
Rating
2
Subscribers
Send message

Будет ли статья про Harfbuzz? А, отбой, нашёл.

Я утверждаю, что в ИТ нет лёгких денег и привожу пример.

Это так не работает. Вы не можете на основании того, что вы чего-либо не пронаблюдали сделать вывод — что этого нет (не существует).

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

Так и тут — конкретно Ваш неудачный опыт не говорит о том, что в ИТ все плохо.

А вот статистика зарплат говорит об обратном — что ИТ отрасль одна из самых денежных, по крайней мере в относительно бедных регионах. Возможность удаленной работы на более богатые регионы поднимает и локальные зарплаты.

Да ладно тебе. До Щей автору ещё расти и расти :)

Спасибо! Пришло письмо с этими дурацкими анкетами, думал распечатывать, сканировать, отправлять обратно. Не подумал, что через ИПшные госуслуги может быть намного проще.

Зависит от статьи. Если это вывод сложной, исследовательской работы, то собственно, написание — занимает небольшой процент. И разница между наивным языком и другим, но со словарём — будет минимальной (в процентном отношении к другой работе). И с другого конца — если это просто перевод, то вариант "со словарём" проигрывает кардинально. Работа программиста, на мой взгляд, ближе к исследовательской. Для ребят, что просто переводят с бизнес-логики на какой-нибудь питон (надеюсь, никого не обидел), знать наизусть команды фреймворка, наверное, важно.

Скажи спасибо, что LUT текстуру не перевели как ВИЗТБЛ текстуру :)
И кстати, Vulkan API.
Это чтобы дать четырем формочкам шанс добилдиться, пока пишется статья.
Спасибо! В реальном коде есть хелперы, для часто использующихся штук — например создание imageMemoryBarriera для смена layout-а текстуры. Дополнительных уровней абстракций над вулканом нет. Снаружи пользовательские объекты, типа текстуры — внутри голый сишный вулкан.
Самую жесткую жесть, что я видел — это код игры «ЩИ!!! Симулятор жестокости».
вот для затравки кусок:
Одно условие
if(!menu_font||!oboima_text||!info||!infoR||!infoD||!infoBR||
      !oblaka1_tex||!fon1_tex||!fon2_tex||!fon3_tex||
      !galka_tex||!galka_menu_tex||!strelka_menu_tex||!strelka_menu_D_tex||
      !znak_myasnik_tex||!znak_strelok_tex||!znak_razrushitel_tex||!znak_tehnik_tex||
      !status_opit_tex||!status_udar_tex||!status_status_tex||!opit_okno_vibora_tex||
      !okno_lvl_progress_tex||!okno_lvl_progress_red_tex||!okno_lvl_progress_green_tex||!okno_lvl_polzunok_tex||
      !snd||!ak_reload1||!ak_reload2||!pm_fire||!pm_reload1||!pm_reload2||
      !pp19_fire||!pp19_reload1||!pp19_reload2||!fn_f2000_fire||!tt_fire||
      !mac_fire||!mac_reload1||!mac_reload2||!webley_fire||!webley_reload1||!webley_reload2||!milkor_fire||
      !fn_five_seven_fire||!winch_fire||!drob_reload1||!drob_pompa||!vzriv_grena1||
      !rocket_fire||!rocket2_fire||!rocket_polet||!rocket2_polet||
      !myaso_upalo1||!myaso_upalo2||!myaso_upalo3||!myaso_upalo4||!myaso_upalo5||!myaso_upalo6||!myaso_upalo7||
      !myaso_upalo8||
      !myaso_razriv_user1||!myaso_razriv_user2||
      !menu_sound||!menu_choose||
      !shot1||!headshot1||!headshot2||!headshot3||!headshot4||!headshot5||!headshot6||!headshot7||!headshot8||
      !ssik1||!ssik2||!ssik3|!ssik4||
      !ptenec_death1||
      !ak||!ak2||!ak_upgraded||!ak2_upgraded||!w_pm_tex||!w_pp19_vityaz_tex||!w_fn_f2000_tex||!w_fn_f2000_upgraded_tex||
      !w_tt_tex||!w_rpk_tex||!w_mac_tex||
      !w_winchester_tex||!w_winchester_anime_tex||!w_rpk47_tex||!w_glok_tex||!w_glok2_tex||!w_rgd5_tex||!w_milkor_tex||
      !w_panzer_tex||!w_panzer_out_tex||!w_webley_tex||!w_fn_five_seven_tex||!w_granata_podstvol_tex||!w_granata_panzer_tex||
      !w_qlz87_pushka_tex||!w_qlz87_trenoga_tex||!katana_udar_sleva_tex||
      !blood1_tex||!blood2_tex||!blood3_tex||!blood_shot1_tex||
      !blood_plyam1_tex||!blood_plyam2_tex||!blood_plyam3_tex||!blood_luzha1_tex||
      !blood_myaso1_tex||!blood_myaso2_tex||!blood_myaso3_tex||!blood_myaso4_tex||!blood_myaso5_tex||
      !blood_zayac_noga1_tex||!blood_zayac_noga2_tex||!blood_zayac_noga3_tex||!blood_zayac_noga4_tex||
      !blood_zayac_rebra1_tex||!blood_zayac_rebra2_tex||
      !blood_vzriv1_a_tex||!blood_vzriv1_b_tex||!blood_vzriv1_c_tex||!blood_vzriv1_d_tex||!blood_vzriv1_e_tex||
      !blood_vzriv1_e2_tex||
      !player1_myasnik_gogranata_ruka1_tex||!player1_myasnik_gogranata_ruka2_tex||
      !player1_strelok_gogranata_ruka1_tex||!player1_strelok_gogranata_ruka2_tex||
      !player1_razrushitel_gogranata_ruka1_tex||!player1_razrushitel_gogranata_ruka2_tex||    
      !player1_tehnik_gogranata_ruka1_tex||!player1_tehnik_gogranata_ruka2_tex||
      !player1_myasnik_tex||!player1_strelok_tex||!player1_razrushitel_tex||!player1_tehnik_tex||
      !player1_myasnik_ruka1_udar_sleva_tex||!player1_strelok_ruka1_udar_sleva_tex||
      !player1_razrushitel_ruka1_udar_sleva_tex||!player1_tehnik_ruka1_udar_sleva_tex||
      !player1_myasnik_ruka1_pistol_tex||!player1_strelok_ruka1_pistol_tex||
      !player1_razrushitel_ruka1_pistol_tex||!player1_tehnik_ruka1_pistol_tex||
      !player1_myasnik_ruka1_vintovka_tex||!player1_strelok_ruka1_vintovka_tex||
      !player1_razrushitel_ruka1_vintovka_tex||!player1_tehnik_ruka1_vintovka_tex||
      !player1_myasnik_ruka1_winch_tex||!player1_strelok_ruka1_winch_tex||
      !player1_razrushitel_ruka1_winch_tex||!player1_tehnik_ruka1_winch_tex||
      !player2_strelok_tex||!player2_gogranata_ruka1_tex||!player2_gogranata_ruka2_tex||
      !player2_strelok_ruka1_udar_sleva_tex||!player2_strelok_ruka1_vintovka_tex||!player2_strelok_ruka1_pistol_tex||
      !zayac_go_tex||!zayac_uhi_k_tex||!zayac_uhi_s_tex||!zayac_uhi_tex||
      !zayac_boshka_tex||!zayac_boshka_bezuh_tex||
      !volk_go_tex||!volk_trup1_a_tex||!volk_trup1_b_tex||!volk_trup1_c_tex||
      !medved_go_tex||!medved_boshka1_tex||
      !medved_trup1_a_tex||!medved_trup1_b_tex||!medved_trup1_c_tex||!medved_trup1_d_tex||!medved_trup1_e_tex||!medved_trup1_f_tex||
      !medved_trup1_a_bezboshki_tex||!medved_trup1_b_bezboshki_tex||!medved_trup1_c_bezboshki_tex||
      !medved_trup1_d_bezboshki_tex||!medved_trup1_e_bezboshki_tex||!medved_trup1_f_bezboshki_tex||
      !ptenec_go_tex||!ptenec_wait_tex||!ptenec_vpolete_tex||!ptenec_vpolete_reverse_tex||!ptenec_trup1_tex||
      !ptenec_boshka_vzriv1_a_tex||!ptenec_boshka_vzriv1_b_tex||!ptenec_boshka_vzriv1_c_tex||
      !ptenec_boshka_vzriv1_d_tex||!ptenec_boshka_vzriv1_e_tex||
      !RPG_healer_tex||!RPG_illusionist_tex||!RPG_teleporter_tex||
      !bonus_shilo_tex||!bonus_this_tex||
      !bonus_shilo_text_tex||!bonus_this_text_tex||!bonus_daun_text_tex||!bonus_ulitka_text_tex||!bonus_umnik_text_tex||
      !bonus_shilo_status_tex||!bonus_daun_status_tex||!bonus_ulitka_status_tex||!bonus_umnik_status_tex||
      !zayac_trup1_a_tex||!zayac_trup1_b_tex||!zayac_trup1_c_tex||!zayac_trup1_d_tex||
      !zayac_trup1_a_bezuh_tex||!zayac_trup1_b_bezuh_tex||!zayac_trup1_c_bezuh_tex||!zayac_trup1_d_bezuh_tex||
      !zayac_trup1_a_bezboshki_tex||!zayac_trup1_b_bezboshki_tex||!zayac_trup1_c_bezboshki_tex||
      !zayac_trup1_d_bezboshki_tex||
      !zayac_go_bezuh_tex||!ogon1||
      !blood_ssit_tex||!RPG_healing_tex||!vzriv_grena_tex||!vzriv_ogon_grena_tex||
      !alkash1_tex||!derevo1_tex||!penek1_tex||
      !znak_polputi_tex||!polosa_finish_tex)

Ребята. Перевод статьи 1996 года не очень своевременный. Как раз два года назад начали появляться аппаратные средства для рейтрейсинга (пересечение/построение BVH и пересечение луча с треугольником). Теперь это не так уж и медленно.

Ну. Эти «террористы» совсем распоясались. Уже прямым текстом пишут что закладывают бомбу на «А».
RTX ядра ускоряют:
1) построение BVH сцены.
2) пересечение луча с OBB.
3) пересечение луча с треугольником.
Всё.
На shader-toy-e тысячи демок с трассировкой по SDF, на обычных вычислительных (не RTX) ядрах.

Information

Rating
4,985-th
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity