Posts by Category

opengl

Learn OpenGL Getting started 2-9. Camera

실제 코드는 간단하게 작성 예시 코드의 “마우스 조작으로 시점을 회전하는 카메라 만들기” 부분에서, 삼각법의 도입부 내용은 제외했다. 혼동의 여지가 있다는 댓글이 많았고, 개인적으로도 잘 이해되지 않았기 때문이다. 그래서 도움이 되었던 댓글의 이미지를 가져와 설명을 대체한...

Learn OpenGL Getting started 2-8. Coordinate Systems

Learn OpenGL은 접근 방식에 맞게, 각 좌표계를 기준으로 변환 단계를 설명한다. 개인적으로 변환의 과정과 입/출력을 파이프라인처럼 정리하는 게 편해서, 각 단계의 동작에 초점을 맞춰보았다.

Rendering Pipeline

이 글은 Vulkan 튜토리얼의 그래픽 파이프라인 기본 사항 페이지를 정리한 내용이다

Learn OpenGL Getting started 2-6. Textures

텍스처는 개체의 세부 사항을 추가하는 데에 사용하는 2D 이미지 많은 정점을 사용하지 않고도 사실감을 살릴 수 있다 이때, 모델에 텍스처를 입히는 작업을 텍스처 매핑이라고 한다

Rendering API and structure(OpenGL 2.0)

개선점 이전: glVertexPointer/glColorPointer(fixed function pipiline)과 VBO를 사용 2.0부터는 fixed pipeline대신 shader를 통해 사용자가 직접 렌더링 구현 가능 ...

Rendering API and structure(OpenGL 1.0)

OpenGL버전별 코드 실행시 주의사항 이전 버전의 렌더링을 테스트할 때에는, 아래 네 줄 코드를 반드시 지우고 진행할 것 // 윈도우는 생성되지만, 도형이 그려지지 않음 glfwWindowHint(GLFW_CONTEXT_VERSI...

맨 위로 이동 ↑

C++

클래스에서의 참조형 변수 초기화

인스턴스를 포함하는 클래스를 만드는 상황이 있다. 이럴 경우 데이터의 용량이 크면 참조를 멤버 변수로 사용하여야 한다. 내용물을 일일이 복사하는 과정에서 시간이 많이 걸리기 때문이다.

[C26817] 범위 for 루프 auto

범위 for 루프에서 잠재적으로 비용이 많이 드는 변수 이름 복사본입니다. 이를 const 참조 (es. 71)로 설정 하는 것이 좋습니다.

typeid(C++)/instanceof(Java) 차이점

Java의 instanceof 연산자처럼, C++에서도 typeid 연산자를 사용하면 반환된 type_info객체를 통해 타입을 알 수 있다. 게임 프로젝트를 위해 두 함수를 비교하던 도중, 서로 다르게 동작하는 부분이 있어 이 글을 작성한다.

맨 위로 이동 ↑

Swift

맨 위로 이동 ↑

tips

Swift 공식 구현 코드 찾기

새로운 언어를 공부할 때, 그 언어의 공식 라이브러리 헤더에서 도움을 많이 받을 수 있다. 언어 설계자들이 프로토타입(매개변수와 반환값, 이름)과 주석을 통해 사용법을 상세하게 써놓기 때문이다. Swift의 경우, Xcode에서 제공하는 Jump to Definition(메서드 우...

영어 문서 번역 팁 정리

영어로 된 공식 문서 혹은 스택 오버플로우를 읽다 보면, 매끄럽게 번역하는 방법이 몇 가지 존재한다. 그래서 기억날 때마다 이 포스트에 기록해두고자 한다.

맨 위로 이동 ↑

architecture

맨 위로 이동 ↑

error

[C26451] 산술 오버플로 경고

API를 사용할 때, 묵시적 변환을 남용하면 자주 보이는 경고. API의 헤더에서 발생하는 경우는 어쩔 수 없지만, 직접 작성한 코드에서는 없애는 것을 권장.

맨 위로 이동 ↑

warning

[MSB8028] 프로젝트 이름 변경

MSB8028: 중간 디렉터리(shared-intermediate-path)에 다른 프로젝트(intermediate-path)에서 공유된 파일이 포함됩니다. 이로 인해 잘못된 정리와 다시 빌드 동작이 발생할 수 있습니다.

맨 위로 이동 ↑