• Как обеспечить работу с текстурами OpenGL с очень маленькой видеопамятью?

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

    Ну а если проблема все же в обьеме, то можно мониторить сколько памяти вы занимаете и динамически выгружать одни текстуры, которые в данный момент не нужны, загружать необходимы для рендера. Это конечно просадит FPS, но что поделаеш.
    Как вариант переделать уровни, так чтобы уменьшить количество текстур.

    Чисто для теста можно уменьшить размер всех текстур и посмотреть, что получится.

    P.S. У вас все размеры текстур кратны степени двойки?
    P.S.S. Прикол с QtCreator склоняет меня к мнению, что это проблемы с поддерживаемыми разширениями у самой видеокарты.
    Ответ написан
    2 комментария
  • Скачать библиотеки для с++ в Linux?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    windows.h для Linux? Нет, скопировать его конечно можно, но что будете делать дальше? h-файлы это только описатели типов и заголовки функций, сами функции для windows.h реализованы по большей части в WinAPI, которого под Linux само собой нету.
    Если хотите портировать программу, то разбирайтесь со всеми нестандартными типами данных и вызовами функций, ищите их аналоги под Linux и подключайте соответствующие h-файлы и библиотеки.
    Ответ написан
    Комментировать
  • Как подключить заголовочный файл частично?

    maaGames
    @maaGames
    Погроммирую программы
    Не парься, компоновщик оставит только те функции, которые реально используются.
    Ответ написан
    7 комментариев
  • Почему static и namespace не ограничивают область видимости?

    @Lol4t0
    Дело в том, что спецификатор static ограничивает область видимости не одним файлом, а единицей трансляции

    В языках программирования Си и Си++ единица трансляции (англ. translation unit) — подаваемый на вход компилятора исходный текст (файл с расширением .c или .cpp) со всеми включёнными в него файлами.
    Ответ написан
    Комментировать
  • Почему static и namespace не ограничивают область видимости?

    @lookid
    препроцессор компилятора с++ заменяет #include на содержимое файла, который написан в <...> или "...". Если хотите ограничить область видимости, то пишите реализацию в срр, а не в h.
    Ответ написан
    3 комментария
  • Как получить указатель на файл?

    risik
    @risik
    Программист
    В С++ рекомендуется использовать iostream (cin, cout, etc). Это совершенно другая библиотека, которая не имеет прямого отношения к stdio (FILE* etc). И, в общем случае, они никак не совместимы друг с другом.

    Однако, Вас никто не принуждает использовать iostream в Вашем С++ проекте. Используйте C++ + stdio. Проблема будет если Вам надо использовать две разных библиотеки, одна из которых принимает FILE *, а другая iostream, и Вам для чего-то нужно передать один и тот же файл из одной в другую.

    ктстаи, праивльнее использовать в С++
    Ответ написан
    1 комментарий
  • Как получить указатель на файл?

    Судя по аналогичному вопросу, стандартного способа получить FILE* из std::fstrream не существует. Но существуют хаки, смотрите ссылку.
    Ответ написан
    1 комментарий
  • Как в C++ красиво реализовать множество условий?

    Во вложенных условиях есть смысл, когда алгоритм ветвится, то есть куча else имеется.
    Вообще, хорошо придерживаться стандартов. Если работаете в компании, спросите, как обычно в такие моменты поступают. Если пишете самостоятельно, делайте так, как считаете удобным. Просто придерживайтесь одного стиля.
    Например, попробуйте сделать условие многострочным. Что-нибудь вроде:
    if (
            water[qX][qY] < water[x][y]
        &&
            qX >= 0
        &&
            qY >= 0
        &&
            qX < room_size
        &&
            qY < room_size
        &&
            water[x][y] != 0
    ) {...}

    Если приоритет выражений в условии идет не по порядку, то, используя такой метод, можно значительно повысить читаемость.
    Ответ написан
    Комментировать
  • C++ список файлов текущего каталога

    sdevalex
    @sdevalex
    По стандарту, сейчас, STL такого не умеет. Используйте API OS или Boost.Filesystem.
    Ответ написан
    1 комментарий
  • Стоит ли учить OpenGL 1?

    MrGobus
    @MrGobus
    Иван
    Да стоит.
    OpenGL делится на 2 ветки CORE PROFILE и COMPATIBILITY PROFILE

    CORE ввели в версии OpenGL 3 и выше и позволяет добиться большей производительности за счет использования шейдеров, но все, освещение, текстурированные и многое другое вам придется делать самому организуя связь между вашей программой и шейдером. Тудаже придется добавить знание GLSL (язык на котором пишут шейдер). Также напомню, что не все железо поддерживает этот модный профиль.

    COMPATIBILITY профиль существует потому, что OpenGL это индустриальный стандарт и обратно совместим со всеми предыдущими версиями. Вы может легко создавать 3д сцены без глубокого знания математики 3D.

    Итого, если вы решили прикоснутся к 3Д для понимания или строить простенькие графики, крутить модельки и т.п. COMPATIBILITY PROFILE для вас.

    Если же есть желание «наклонить линейку», вы легко воспринимаете матрицы (как умножать и оперировать), можете рассчитать освещение вершины или текселя по фонгу или еще как то вам в CORE PROFILE.
    Ответ написан
    Комментировать
  • Уделяет ли хабра-сообщество время на выбор/поиск обоин для рабочего стола?

    rtzra
    @rtzra
    Как-то Сисадмин спросил:

    – Учитель, не желаете ли красивую картинку для вашего десктопа? У меня есть коллекция «обоев для рабочего стола» со звёздным небом и моральным законом.

    – Почему ты думаешь, что мой нынешний «wallpaper» хуже? – спросил в ответ Инь Фу Во.

    – Я не знаю, какая у вас картинка сейчас. Я никогда не видел вашего десктопа. У вас всегда открыто множество окон.

    – Я тоже его никогда не видел, – сказал почтенный Инь. – Я работаю.
    Ответ написан
    Комментировать