글 작성 이유 렌더러 코드 정리하다가 include를 수정했는데 갑자기 에러가 마구잡이로 터지면서 실행할 수가 없었다. 처음에는 뭘 잘못 건드렸는지 모르고 있다가 에러메세지에서 stb_image에 문제가 있다고 해서 찾아서 고치는데 성공. 일반적으로 렌더링에서 텍스처를 사용하기 위해 이미지 파일을 읽어와서 텍스처로 저장하는데 이때 stb_image.h를 사용하면 간단하게 이미지를 읽어올 수 있다. 사용방법은 다음과 같이 코드를 작성하면 된다. #define STB_IMAGE_IMPLEMENTATION #include "stb_image.h" stb_image.h 파일을 살펴보면 다음과 같이 적혀있는데 보면, 구현을 생성하기 위해서는 이 파일을 포함하기 전에 단 하나의 c나 cpp 파일에만 전처리기를 지시..
Blender로 간단한 모델(큐브)을 만들어서 Fbx로 추출한뒤 Fbx Sdk로 불러오는 작업을 해보고 있었는데 제대로 파악을 잘 못해서 그런지 렌더링이 잘 되지 않았다. 정육면체에 대해 디버깅을 해보면 Polygon의 개수가 6개로 표시된다. 해당 메쉬에서 사각형 6개를 읽어온다는 뜻이다. Primitive Mesh로 익숙한 삼각형으로 두는 방법은 없을까 해서 찾아보니 다음과 같은 코드로 구조적으로 보기 편하게 만들 수 있었다. FbxMesh* mesh = (FbxMesh*)attribute; FbxGeometryConverter gc{ m_fbxManager }; mesh = (FbxMesh*)gc.Triangulate(mesh, true); auto newMesh = ProcessMesh(mesh,..
https://honglab.co.kr/ honglab All Courses, Graphics Introduction to Computer Graphics with DirectX 11 - Part 2. Realtime Pipeline honglab.co.kr 강의 링크 흐림 효과(Blur) 블러 효과란 위의 이미지처럼 원래 이미지를 흐릿해 보이게 만드는 효과이다. 이미지 처리에서 이를 구현하기 위해서는 커널이라는 것을 이용한다. 커널(Kernel) 이미지 처리에서 커널이란 흐림(Blur), 선명화(Sharpen), 엠보싱(Emboss), 가장자리 감지(Edge Detection) 등에 사용 되는 작은 행렬을 말한다. 이미지 처리를 위해 커널을 가지고 이미지의 모든 픽셀의 값에 대해 계산하는 과정을 컨볼루..
이 글은 홍정모의 그래픽스 새싹코스 파트 1을 보고 정리했습니다. https://honglab.co.kr/ honglab All Courses, Graphics Introduction to Computer Graphics with DirectX 11 - Part 2. Realtime Pipeline honglab.co.kr 이미지 읽고 저장하기 이미지 처리를 위해서는 이미지 파일을 읽어 오거나, 처리가 끝난 이미지를 특정 포맷(.ppm, .png, .jpg...) 등으로 저장할 수 있어야 한다. 하지만 C++은 일반적인 방법으로는 이미지를 읽어오거나 처리할 수 없다. C++ 언어는 그래픽 출력보다는 컴퓨터 하드웨어 조작, 데이터 처리, 논리 연산을 위해 설계되었기 때문에 이러한 이미지를 직접 출력하는 기..