[OpenGL] 삼각형 렌더링 구현코드와 필요한 정보의 설명
들어가며컴퓨터 그래픽스는 입문 장벽이 높은 영역 중 하나라고 생각한다. 이는 해당 도메인의 난이도 자체의 문제도 있지만, 한글로 된 자료가 부족하고, 선형 대수 연산의 기하학적인 감을 어느 정도는 잡고 있어야 하기 때문인 것 같다. 또한 코드를 작성할 떄도 managed 언어로 입문하거나, 이에 더 적응이 많이 되어있는 사람들에게는 C++이라는 언어 자체도 입문 장벽을 높이는데 기여를 꽤나 하게 된다. 여러 LLM 서비스들이 활성화되어 학습에 매우 도움이 되지만, 그래도 레퍼런스로 잡고갈만한 학습 자료는 매우 중요하다. 이에 대한 갈증을 Rinthel Kwon 교수님께서 해소시켜 주셨으며, 이에 대해 감사인사를 포스팅을 작성하며 남긴다. VScode 기반에서 CMake로 C++ 프로젝트를 운용하고 컴퓨터..
2026.03.22
[OpenGL] glPointSize()의 값 지정
문제 상황pointSize_를 어떻게 지정하던간에, 시각화되는 포인트의 크기가 1.0~1.4이라도 시각적으로 동일하게 보이고, 1.5~2.4도 동일해 보인다. 셰이더 안에서 point 크기를 다루어도 동일한 현상이 발생한다. glPointSize(pointSize_);glDrawArrays(GL_POINTS, 0, points.size()); 공식 설명glPointSize함수는 점의 래스터화 된 지름을 정한다고 한다. point size 모드가 비활성화된 경우 (`GL_PROGRAM_POINT_SIZE`를 사용하는 `glEnable` 참조) 이 값이 점을 래스터화 하는데 사용된다. 그렇지 않으면`glEnable(GL_PROGRAM_POINT_SIZE)` 인 경우, 셰이딩 언어 내장 변수 `gl_Point..
2025.12.30
[Computer Graphics] FPS 계산
FPS 계산 방식FPS는 frames per second로 1초당 몇 개의 프레임이 지나갔는지를 의미한다. 그러므로 FPS는 다음과 같은 식으로 계산한다:$$ FPS = \frac{frames}{1 \space sec} $$ 또한, FPS와 역수 관계인 frameTime이 존재한다. 이는 한 프레임을 그리는데 걸린 시간을 의미한다.$$ frameTime = \frac{sec}{1 \space frame} $$ 보통 개발할 때는 ms를 반환받아 사용하기 때문에, $1000$으로 나누어 밀리초를 초로 변환하여 사용한다. $$ FPS = \frac{frames}{\frac{elapsedMs}{1000}} $$총 프레임에 흐른 시간을 나눈다. $$ FPS = \frac{frames}{elapsedMs} \ti..
2025.07.08
[OpenGL, SPDLOG] SPDLOG의 'formatting of non-void pointers is disallowed'
SPDLOG의 'formatting of non-void pointers is disallowed'발생한 에러 메시지: error C2338: static_assert failed: 'formatting of non-void pointers is disallowed' 에러 발생 코드SPDLOG_INFO 함수 호출을 통해 glVersion을 출력하는 과정에서 에러가 발생하였다.if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)){ SPDLOG_ERROR("failed to initialize glad"); glfwTerminate(); return -1;}auto glVersion = glGetString(GL_VERSION);SPDLOG_I..
2025.04.22