Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 22.01.2021, 12:20   #1
blackRabbbbit
Новичок
Джуниор
 
Регистрация: 21.01.2021
Сообщений: 4
По умолчанию opengl

Добрый день. Нужна помощь в запуске проекта opengl. Проект практически готов. Вознаграждение за помощь

Последний раз редактировалось blackRabbbbit; 22.01.2021 в 13:53.
blackRabbbbit вне форума
Старый 22.01.2021, 12:36   #2
FrosyaZZ
Форумчанин
 
Регистрация: 16.11.2020
Сообщений: 243
По умолчанию

Запускайте. Это не java, которая виртуальную машину требует для работы.
FrosyaZZ вне форума
Старый 22.01.2021, 13:13   #3
blackRabbbbit
Новичок
Джуниор
 
Регистрация: 21.01.2021
Сообщений: 4
По умолчанию

Благодарю за совет
blackRabbbbit вне форума
Старый 22.01.2021, 13:36   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Инструкция запуска проекта OpenGL в среде Qt Creator
  • Отрываем Qt Creator
  • Создаём новый проект: в меню выбираем "File" > "New File or Project..." > "Application (Qt)" > "Qt Widgets Application" > нажимаем кнопку "Choose..." > вводим имя для проекта > нажимаем кнопку "Next" > нажимаем кнопку "Next" > в выпадающем списке выбираем в поле "Base class" значение "QWidgets" > убираем галочку "Generate form" > нажимаем кнопку "Next" > нажимаем кнопку "Next" > нажимаем кнопку "Next" > нажимаем кнопку "Finish"
  • В файл .pro добавляем строку:
    Код:
    win32: LIBS += -lopengl32
  • Скопируйте код ниже и вставьте его в файл main.cpp. Запустите выполнение проекта, нажав зелёный треугольник в левом нижнем углу или сочетание клавиш Ctrl+R. Должно появиться окно с нарисованным треугольником.

main.cpp

Код:
// Add this line to .pro:
// win32: LIBS += -lopengl32

#ifdef _WIN32
#include <windows.h>
extern "C" __declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001;
extern "C" __declspec(dllexport) DWORD AmdPowerXpressRequestHighPerformance = 0x00000001;
#endif

#include <QApplication>
#include <QOpenGLWidget>
#include <QOpenGLShaderProgram>
#include <QOpenGLBuffer>

class Window : public QOpenGLWidget {
    Q_OBJECT
public:
    Window(QWidget *parent = nullptr) : QOpenGLWidget(parent) {
        setWindowTitle("Qt, OpenGL 3.3");
        resize(268, 268);
    }
private:
    QOpenGLShaderProgram m_program;
    QOpenGLBuffer m_vertPosBuffer;

    void initializeGL() override {
        glClearColor(0.5f, 0.8f, 0.7f, 1.f);
        const char *vertShaderSrc =
                "#version 330 core\n"
                "in vec3 aPosition;"
                "void main()"
                "{"
                "    gl_Position = vec4(aPosition, 1.0);"
                "}";
        const char *fragShaderSrc =
                "#version 330 core\n"
                "out vec4 fragColor;"
                "void main()"
                "{"
                "    fragColor = vec4(0.5, 0.2, 0.9, 1.0);"
                "}";
        m_program.addShaderFromSourceCode(QOpenGLShader::Vertex, vertShaderSrc);
        m_program.addShaderFromSourceCode(QOpenGLShader::Fragment, fragShaderSrc);
        m_program.link();
        m_program.bind();
        float vertPositions[] = {
            -0.5f, -0.5f, 0.f,
            0.5f, -0.5f, 0.f,
            0.f, 0.5f, 0.f
        };
        m_vertPosBuffer.create();
        m_vertPosBuffer.bind();
        m_vertPosBuffer.allocate(vertPositions, sizeof(vertPositions));
        m_program.bindAttributeLocation("aPosition", 0);
        m_program.setAttributeBuffer(0, GL_FLOAT, 0, 3);
        m_program.enableAttributeArray(0);
    }
    void paintGL() override {
        glClear(GL_COLOR_BUFFER_BIT);
        glDrawArrays(GL_TRIANGLES, 0, 3);
    }
    void resizeGL(int w, int h) override {
        glViewport(0, 0, w, h);
    }
};

#include "main.moc"

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
    Window w;
    w.show();
    return a.exec();
}
Изображения
Тип файла: png 7f9e3fea-b325-49a7-b99f-5b67ecb89ef7.png (2.2 Кб, 14 просмотров)
8Observer8 вне форума
Старый 22.01.2021, 13:40   #5
blackRabbbbit
Новичок
Джуниор
 
Регистрация: 21.01.2021
Сообщений: 4
По умолчанию

Требуется техническая помощь за вознаграждение. Благодарю
blackRabbbbit вне форума
Старый 22.01.2021, 14:15   #6
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Если нужно будет переписать вашу программу на Qt и возможно добавить GUI, то присылайте свой проект, а я напишу, смогу ли выполнить задачу: my-email.png
8Observer8 вне форума
Старый 22.01.2021, 18:08   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

https://www.programmersforum.ru/showthread.php?t=338321
Arigato вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL PANDA8 Помощь студентам 8 18.02.2015 12:46
Qt+OpenGL. Qt "не видит" функции OpenGL EnterFix Qt и кроссплатформенное программирование С/С++ 4 29.01.2013 18:59
OpenGL в С++ Renok Visual C++ 8 10.07.2012 20:32
OpenGL monolit111 Общие вопросы C/C++ 6 28.06.2012 23:53
OpenGL Paul_AG Общие вопросы C/C++ 3 02.02.2010 20:28