• Как запустить приложение с OpenGL из командной строки без запуска x server?

    Бомбит
    2 ответа и оба абсолютно бесполезные.

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


    Можно запустить иксы просто выполнив команду 'X', а затем в другой консоли экспортировать переменную display и запускать свою программу.

    Но наиболее удобный вариант, это использовать startx, запуская свою программу вместо DM.
    https://wiki.archlinux.org/index.php/Xinitrc_(%D0%...
    Ответ написан
    1 комментарий
  • Как перекинуть указатель в glfwSetKeyCallback на си?

    @Hertz
    Посмотрите на glfwSetWindowUserPointer, glfwGetWindowUserPointer.
    Предназначены именно для этого, в callback вам передается указатель на GLFWwindow.
    Ответ написан
    Комментировать
  • На каком ЯП пишут эксплоиты?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ваш вопрос звучит примерно так:

    "На каком языке удобнее всего писать стихи"

    Ответ: На любом.

    Смотря для кого, смотря что вы знаете и умеете.
    Ответ написан
    Комментировать
  • На каком ЯП пишут эксплоиты?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Эксплойт - это программа которая автомотизирует использование уязвимости в ПО.

    Так что, на чем напишете, на том и будет.
    Ответ написан
    Комментировать
  • Кастомные контролы Qt. Как создать свойства?

    Vass
    @Vass
    C++/Qt Developer
    Чтобы ваш класс появился в дизайнере нужно написать плагин для дизайнера, который будет его там отображать.
    В документации Qt все довольно таки подробно расписано.
    Начать можно с этого примера doc.qt.io/qt-5/qtdesigner-customwidgetplugin-examp...
    ну и походить по ссылкам.
    Ответ написан
    2 комментария
  • Какой язык программирования выбрать для написания сложного телеграмм бота?

    inoise
    @inoise
    Solution Architect, AWS Certified, Serverless
    1. Любой язык в который умеете
    2. После выбора языка можно загуглить библиотеки для телеграмма или воспользоваться чисто их api (у них там все подробно написано)
    3. читать документацию и учиться программировать
    Ответ написан
    Комментировать
  • Как перемещать объекты в openGL?

    keydon2
    @keydon2
    ...
    Чз как в вашем start android, но вообще то каждый кадр при перерисовке объект "удаляется" и создается с "новыми" координатами.
    Ответ написан
    1 комментарий
  • Как перейти с C++ на C?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Особо переходить никуда не надо, просто не использовать обьектную модель. stdio вместо iostream, printf и scanf вместо cout и cin - и т.д.
    Ответ написан
    Комментировать
  • Как реассемблировать исполняемый .exe file?

    @slayez
    Ответ написан
    Комментировать
  • Как создавалась заставка с трубами на Windows 98?

    32bit_me
    @32bit_me
    Программист, встраиваемые системы
    Трубы не пересекаются. В старых SDK OpenGL есть исходник этого скринсейвера, можно его найти, если любопытно.
    Ответ написан
    Комментировать
  • Как мониторить сроки истечения сертификатов?

    Самое правильное написать скрипт на PS и добавить в планировщик для конкретных пользователей, пример есть тут

    Есть так же модуль для PS от Boe Prox, реализует функцию Get-Certificate для удобной проверки срока истечения сертификатов на ПК в локальной сети.
    Ответ написан
    1 комментарий
  • Ребят а можно ли вытищить сертификат с чужого сайта и поставть его себе на сайт?

    Сначала администратором сайта создается ключевая пара : секретный закрытый ключ (которым сервер будет "подписывать" отправляемые в интернет страницы) и общедоступный открытый ключ (которым будут пользоваться все для проверки этих страниц). (На самом деле чуть сложнее). Вторым действие администратор сайта отправляет открытый ключ в один из удостоверяющих центров, те (разными способами) проводят проверки того факта, что отправитель действительно является администратором того домена, на который он хочет выпустить сертификат и если все ОК, то выпускают сертификат (сертификат - это открытый ключ сайта, подписанный электронной подписью УЦ).

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

    Однако ! Если Вы имеете возможность добавлять сертификаты в список доверенных на машине клиента, то ничего Вам не мешает добавить туда собственный корневой самоподписанный сертификат, а затем выпустить свой на имя того домена, который хотите перехватить. Например, можно почитать как это делает squid - ключевое слово для поиска "ssl bump".

    Чего именно выдается сертификат ? домену или ип адрессу ? или там вообще по другому все ?
    Домену + (более дорогие) огранизации, подтверждая дополнительно тот факт, что организация владеет этим доменом.
    Ответ написан
    2 комментария
  • Как настроить автоматическую компиляцию используя git на linux сервере?

    @marataziat
    Джангист-тракторист
    Ответ написан
    Комментировать
  • Что такое анимация и с чем ее кушать если OpenGL?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Spine C runtime.
    https://github.com/EsotericSoftware/spine-runtimes...
    Это не серебряная пуля и не идеальные практики. Пожалуй, в плане кода это пример наоборот, как код писать точно не надо.
    Но вот в плане реализации анимаций эта репка тебе очень поможет.

    Суть такова. Есть модель, она статична. Есть отрезок времени (таймлайн), на этом отрезке есть точки - ключевые кадры. Ключевой кадр несет в себе информацию о том, какую часть модели и как сместить. Чем проще инструкция в ключевом кадре, тем удобнее. Масштаб, поворот и смещение многие любят разделять по разным таймлайнам.
    OGL в этом деле не нужен, до поры.

    С помощью SRT таймлайнов можно анимировать объекты в пространстве целиком, но если тебе захочется точно так же анимировать части меша модели, то впереди тебя будут ждать трудности.
    Анимацию меша лучше реализовать на основе скелета. Это дело в двух словах уже не описать, тут лучше читать статьи.
    www.gamedev.ru/code/terms/SkeletalAnim
    www.gamedev.ru/code/articles/skeletal_animation
    https://habrahabr.ru/post/219509/
    https://habrahabr.ru/post/304042/
    www.gamedev.ru/code/articles/?id=4182

    Самое зерно скелетной анимации в том, что модель остается моделью, анимируются только кости скелета. И именно анимация кости приводит к перемещению фрагмента меша.

    Только на одной скелетной анимации далеко все равно не уедешь. Когда требуется на одной модели одновременно задействовать сразу несколько скелетных анимаций, если сделать в лоб, то меш поплывет во все стороны.
    Для смешивания различных скелетных анимаций применяют так называемые Blend Trees (ссылок под рукой нету, так что сорри).

    В общем, как то так анимация выглядит. Анимируем в цикле обновления, вершины трансформируем в момент формирования кадра. OGL нам нужен, собственно, чтобы нарисовать раскоряченый анимацией меш.
    OGL для непосредственного анимирования мешей тебе понадобится только тогда, когда ты достаточно глубоко нырнешь в анимации, в тот же момент ты уже полностью поймешь что от OGL понадобится для этого.
    Ответ написан
    2 комментария
  • Как правильнее сделать загрузку объектов в движке?

    @hacenator
    Логично предположить что объекты могут дублироваться поэтому писать все в один файл нет смысла. Один файл на объект. Несколько инстансов одно объекта можно рисовать за один вызов (DrawCall), передавая в шейдер массив матриц для всех объекта.
    Дальше верно - перед отрисовкой делаем culling - проверяем попадает ли объект в область видимости камеры и не перекрыт ли он другим объектом.
    Для оптимизации работы с текстурами прогружают только некоторые уровни детализации (LOD), начиная с самого маленького размера. Чем ближе камера к объекту тем большая детализация используется. Текстуры действительно можно выгружать/загружать на ходу. Но нет смысла прям постоянно гонять их туда-сюда, от этого приложение быстрее не станет, надо исходить из объема свободной памяти и частоты использования текстуры.
    Текстуры накладываются по текстурным координатам. Т.е. каждой вершине соответствует некоторый тексель на текстуре далее наложение выполняется с помощью интерполяции, таким образом текстура "заливает" всю грань треугольника. Также вся эта логика наложения и смешивания определяется шейдером (пиксельным) с помощью чего и достигаются различные визуальные эффекты - освещение, тени, отражение. Обычно чтобы залить один объект используется одна текстура, в том плане что если одна сторона должна быть красная а другая зеленая, то будет одна текстура где есть и красная и зеленая часть, а не две разных текстуры. Просто она соответствующе накладывается на объект.
    Ответ написан
    1 комментарий
  • Каким образом проанализировать структуру игровых файлов?

    @koronabora
    Человек
    -1) Если игра старая и интересная, кто-то уже точно занимался такой работой. Очень внимательно ищем любые упоминания о модификации игровых ресурсов. Главный источник - фанатские форумы и сайты.
    0) Пробуем найти SDK, или исходники, либо исходники SDK, либо описания алгоритмов хранения для движка, который используется. У движков обычно разные поколения, но даже информация о другом поколении бывает полезной, т.к. иногда, от поколения к поколению, не меняют формат хранения ресурсов.
    1) Определяем, запакованы-ли ресурсы игры?
    Если запакованы:
    2.1) Ищем распаковщик. Если есть, распаковываем и преступаем к пункту 3.
    2.2) Распаковщика нет. Если игра старая, то сильно хитрых алгоритмов никто не использовал. Пробуем разные простые алгоритмы, типа zip и т.д. применить на распаковку, определить словарь и т.д. Как признак правильного движения - появление осмысленных структур или имен после действия алгоритма. Это уже чистый реверс-инжиниринг алгоритма запаковки. Если все проходит удачно, у нас появляется свой распаковщик. Далее пункт 3.
    Если не запакованы:
    3.1) Необходимо понять, где какой ресурс, а также какой ресурс в каком формате хранится. Здесь опять-же, могут быть свои форматы, а могут быть какие-то популярные в тот момент, когда игра разрабатывалась.
    4) Отдельным пунктом - вычленение из памяти загруженного приложения. Актуально для текстур, текстовых данных.
    5) Отдельным пунктом - анализ исполняемого файла приложения и библиотек на способ загрузки ресурсов. Здесь необходимо обладать пониманием низкого уровня работы разных алгоритмов и знание ассемблера. Для пункта 2 очень полезно.

    А вообще, если это RenderWare, то, наверное, подойдет что-то типа такого: libertycity.ru/files/gta-san-andreas/84860-renderw...
    Ответ написан
    1 комментарий
  • Может ли Visual C++ ограничить количество глобальных переменных?

    @mamkaololosha
    Можно либо написать в Майкрософт чтобы они стали считать char строкой или просто написать char*, как это сделано в массивах выше.
    Ответ написан
    1 комментарий
  • Как работают прерывания?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Программное - просто вызов подпрограммы, адрес которой записан в таблице векторов прерваний, только стек при этом формируется немного другим образом.
    Аппаратное зависит от реализации. На x86, ЕМНИП, используется отдельный контроллер. Поступивший на него от устройства сигнал защёлкивает соответствующий триггер, процессор на определённом этапе выполнения команды проверяет состояние всех триггеров в порядке приоритета. При обнаружении сигнала берётся нужный адрес из той же таблицы прерываний и вызывается подпрограмма по этому адресу. Подпрограмма обработки прерывания перед своим завершением должна сбросить триггер, чтобы следующий поступивший сигнал снова мог его взвести.
    Ответ написан
    Комментировать
  • Стоит ли учить ассемблер для глубокого понимания архитектуры компьютера?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Удивляюсь, что не задали вопроса: А стоит ли вообще программировать?
    Про ассемблер: Конечно стоит!
    У Джоэла Спольски есть статья про то как протекаются абстракции. Все дело в том, что пока якобы на высоком уровне программирования все идет хорошо и Вы думаете, что все ОК и не паритесь. Но как только сталкиваетесь с нетривиальной проблемой, то тут же начинаете плясать с бубном. "привязка к железу" развивает мышление в более строгим. Ведь ни один из программистов не задается вопросом "А стоит ли учить математику?". Вернее задаются, но это маргиналы. Так и с ассемблером. Он развивает программиста таким образом, что после его понимания это уже будет более качественный программист по отношению к прежнему уровню.
    Ответ написан
    1 комментарий
  • Стоит ли учить ассемблер для глубокого понимания архитектуры компьютера?

    alex-saratov
    @alex-saratov
    Вспомним фразу из книги "Шерлок Холмс" - " человеческий мозг — это пустой чердак, куда можно набить всё, что угодно. Дурак так и делает: тащит туда нужное и ненужное. И наконец наступает момент, когда самую необходимую вещь туда уже не запихнёшь. Или она запрятана так далеко, что её не достанешь."
    На цитаты не обижаемся.

    Изучать глубоко стоит, если Вы в дальнейшем собираетесь найти этому практическое применение. Поверхностное знание может пригодиться. А глубокое изучение без последующего применения - это трата времени. Самое дорогое в нашей жизни - это время, ибо его не купишь не за знания ни за деньги.
    Ответ написан
    5 комментариев