Samsung Oddyssey G8 S27FG810 사용 후기

기존 모니터 사용 경험 나는 기존에 LG 27GL850 모니터를 약 5년정도 사용중이였다. IPS 패널에 QHD 해상도를 가지는 144Hz 주사율의 모니터인데 이 모니터도 꽤나 만족했었다. 사실 새로운 모니터에 대한 욕심은 없었다. 애초에 모니터를 고를때 나는 되도록 육각형의 모니터를 고르는 편이다. 모니터를 한번 사면 최소 5년에서 10년까지도 사용하는 편이고, 하나의 모니터를 사용하면서 게임도 하고 개발도 하고 영상도 … Read more

UKismetProceduralMeshLibrary의 SliceProceduralMesh 함수 분석 – 2

충돌체 분리하기 메쉬가 가지고 있는 충돌체또한 분리가 필요하다. 분리하는 충돌체는 메쉬에 설정된 UBodySetup이 기준이다. 충돌체의 바운더리를 평면이 관통하는지 검사 먼저, 메쉬의 바운더리를 평면이 관통하는지 검사했던것 처럼 충돌체의 바운더리 역시 평면이 관통하는지 검사를 한다. 충돌체의 바운더리를 평면이 관통할 때 슬라이스 처리 충돌체를 자르는 함수 SliceConvexElem의 내용은 다음과 같다. 충돌체를 구성하는 평면들의 수집 InConvex.GetPlanes( ConvexPlanes )를 보면 … Read more

UKismetProceduralMeshLibrary의 SliceProceduralMesh 함수 분석 – 1

UProceduralMeshComponent의 메쉬를 평면 기준으로 자르는 함수이다. 프로젝트에 사용할 일도 있고 커스텀도 해야할 것 같아서 엔진 코드의 분석을 해보았다. Plane 준비 우선 컴포넌트 로컬 공간 기준으로 평면을 준비한다. 평면을 정의하기 위한 평면상의 한 점과 평면의 노말벡터를 인자로 받는다. 그리고 이 점의 위치와 노말을 로컬 공간으로 변환 후, 평면을 생성한다. 임시 데이터 컨테이너들 선언 메쉬를 자르면서 발생하는 … Read more

UPS 해골물

NAS를 사용하면서 내 의지와 다르게 전원이 셧다운된적이 몇 번 있었다. 데이터 스토리지에서 이런 전원 셧다운 문제는 생각보다 심각하다. 특히 하드디스크를 사용하고 있으면 더더욱 치명적이다. 재수 없으면 셧다운 한번에 디스크가 날아갈 수 있다. 뭐… 하드웨어 날아가는거야 그냥 다시 사면 된다쳐도 그 안에 있는 데이터들은 되살릴 수 없다. 그래서 UPS를 하나 장만하였다. EATON Ellipse ECO 650 USB모델이다. … Read more

[DirectX11] 17. Depth-Stencil Buffer 사용하기.

[DirectX11] 16. FBX File로부터 모델 데이터 Import하기.에서 아래와 같이 렌더링 결과물을 얻을 수 있었다. 이는 앞면에 가려져 보이지 않아야할 그러니까, 렌더링되지 않아야할 부분들까지 모두 렌더링되어서 그런것이다. Depth Buffer를 이용한 Depth Test를 하면 이 이슈를 해소할 수 있다. Depth Buffer는 렌더링되는 픽셀의 깊이값을 저장한다. 그리고 같은 위치에 새로운 픽셀이 그려져야 할 때 저장된 깊이값과 새로운 픽셀의 … Read more

[DirectX11] 16. FBX File로부터 모델 데이터 Import하기.

fbx파일을 로드해서 모델을 렌더링하려고 한다. fbx파일을 로드하려면 FBX SDK관련 셋팅이 필요하다. 관련 내용들은 FBX SDK Help | Getting Started | Autodesk 에서 참고하였다. FBX SDK 다운로드 및 설치 FBX | Adaptable File Formats for 3D Animation Software | Autodesk 우선 이곳에서 SDK 다운로드를 한다. 다운로드 이후 설치까지 한다. 설치된 내용이다. 필요한 파일들을 복사해서 사용하기 때문에 … Read more

[DirectX11] 15. 카메라( View & Projection ) – Constant Buffer 활용하기 2편.

카메라변환, 즉 View와 Projection변환에 대해 알아보자. 이 두개의 요소 역시 Constant Buffer를 활용해서 구현할 것이다. 이전까지의 Transform변환은 로컬 공간에서의 모양을 결정하는 정점들이 월드 공간으로의 변환을 해주는 것이였다. 여기에 추가로 해주는 View변환은 카메라 공간으로의 변환을 해주는 것이고, Projection변환은 투영 공간으로의 변환을 해주는 것이다. 각각 어떤것인지 한 번 알아보자. View 변환 View변환은 카메라 공간으로의 변환을 해주는 것이라고 … Read more

[DirectX11] 14. ImGUI 설치하기

Reference ocornut/imgui: Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies 에서 설치 및 시작 가이드를 볼 수 있다. 설치하기 Zip파일로 프로젝트 다운로드 받기 프로젝트에 직접 필요한 파일 복사하기 압축을 푼 후 루트 경로에 있는 필수 파일들을 내 프로젝트에 복사하여 포함한다. 내가 사용할 그래픽스 API에 맞는 Implement 파일들을 추가로 복사하여 포함한다. 멀티플랫폼 환경으로 … Read more

[DirectX11] 13. 라이트( Directional Light ) – Constant Buffer 활용하기.

라이트( Directional Lighting )에 대해 구현을 해보고자 한다. 그리고 이 라이트을 구현할때 Constant Buffer를 활용하려 한다. 구현하려는 라이트는 난반사( Diffused Reflection )에 기초한다. Diffused Reflection 렌더링되는 물체에 빛이 일정한 방향으로 비추고 있을때, 표면이 일정하지 않은 물체는 반사되는 빛의 양이 각 표면마다 다르다. 이 일정하지 않은 표면을 법선( Normal )벡터로 표현한다. 법선 벡터와 빛의 방향을 가지고 … Read more

[DirectX11] 12. 변환 – Constant Buffer에 대해 알아보자.

지금까지 렌더링한 사각형을 크기 및 위치를 변화시켜보자. 정점 버퍼의 내용을 수정해도 할 수 있지만, 매번 정점 버퍼의 내용을 수정하면서 렌더링하기엔 꽤나 비효율적이다. 무엇보다 강력한 GPU의 힘을 이용하지 못한다. 정점 버퍼의 내용은 모양을 정의하는 것이다. 이 모양을 Matrix를 통해 변환을 해야한다. 그리고 GPU를 이용하기 위해 해당 변환은 Vertex Shader에서 할 것이다. 이를 위해 필요한 것이 바로 … Read more