본문 바로가기
Solution/Qt Programming

[Qt] Window에서 QGLWidget 기반 OpenGL 적용

by 이센 2023. 8. 4.

요약

어찌보면, 당연히 성공했어야 하는 예제 프로그램이었는데도 Linux 환경과 Window에서 동시에 적용하려 하다보니, 진행하는데 어려움이 있었다.

좀 구차한 설명을 하자면, Linux 에는 GPU 가 없어서 Shader Program을 지원하지 못한다. Window 환경은 GPU 를 지원하다보니, 동시에 예제를 동작하게 하려면, Window 에서 진행하는 코드가 GPU 가 아닌 이전 OpenGL 기반으로 코딩해야 하는데, 그 동안 이게 잘 되지 않았다가 이제 Window 에서 구현된 것이다. 이 결과는 어쨌던 Simulation을 진행하기 위해서는 가장 기초적으로 구현되어야 하는 기능이었기 때문에 (그래도 앞으로 추가 해야 할 기본적인 것이 많이 남아있다.. Multi-window, Multi-View Point 등등...), 이 예제는 중요하다.

아직 Linux 에서는 완전히 구현 된 것이 확인 된 것은 아니지만, 어쨌던 현재 진행하는 Window Qt 5.12.2 에서 몇 주 헤매다 얻어진 결과이다. 예제 파일은 첨부에 두었다. 

 

 

test02.zip
1.17MB

실행 결과

위의 그림과 같이 간단히 윈도우 창 (MainWindow) 에 QGLWidget Class를 사용해서 삼각형이 그려진 위젯과 창을 닫는 버튼으로 구성된 간단한 결과이다.

 

헤맨 이유

그 동안 왜 헤맸는지 결과를 이야기하면, test02.pro 에서 빨간색 라인으로 써진, LIB command를 포함하지 않으면 Compile시에 다량의 "undefined reference" 에러가 발생한다.

여러번 다양한 시도를 했지만, 안되다가 결국 Chat GPT 의 도움을 받아 성공했다.

 코드 설명 전

코드 내용이 헤맨 것에 비하면 꽤 간단하기 때문에 차근차근 하겠다.

아직 확인이 안된게 있지만, 이 것을 실행하기 위해 opengl 라이브러리를 다운받아서 Window System Folder 에 넣은 것도 유효했다. 혹시 라이브러리 설정에 문제가 있으면, 아래 파일과 링크 블로그를 살펴보자. 

https://kangjik94.tistory.com/43

 

freeglut-MSVC-3.0.0-2.mp.zip
0.20MB
glut_3.7.6_bin.zip
0.11MB

'Solution > Qt Programming' 카테고리의 다른 글

[Qt] Rotating Teapot in MDI Window  (0) 2023.08.26
[Qt] Drawing a triangle in a sub-window with Open-GL  (0) 2023.08.05
[Qt] Signal, Slot, and Connect  (0) 2023.07.22
[Qt] OpenGL 예제  (1) 2023.07.01
Qt 에서 Dial 구현  (0) 2023.06.23