본문 바로가기

게임엔진

230506 자체 엔진 개발 : Resize https://github.com/ohbumjun/GameEngineTutorial/commit/a7c58287c4edf59969c538739bd67dcc80039f5c Window 창을 Resize 한다는 것은 무슨 의미일까 ? 우리가 렌더하는 픽셀이 Resize 에 맞게, 위치가 조정되어야 한다.즉, Resize 하면 각 픽셀이 렌더링 되는 위치도 조정되어야 한다는 것이다.자. 다시 말하면, 우리가 렌더링할 픽셀들이 모여있는 메모리 버퍼가 있다.그리고 그 메모리 버퍼의 사이즈는, 우리가 렌더링하는 창의 크기에 맞게 조정되어야 한다.(관련 함수) 즉, GraphicAPI 에게 Rendering Area 가 변경되었다는 것을 알려줘야 한다는 것이다.OpenGL 의 경우 glViewPort 함수를 통해 가.. 더보기
230504 Hazel GameEngine : CameraController , Zoom 적용하기 https://github.com/ohbumjun/GameEngineTutorial/commit/13536d609a2d0fceed2662615df37291def2e330 해당 클래스의 역할은, Camera 를 조절할 수 있는 다양성 및 변동성을 Client 단에 넘기기 위함이다. 실제 Camera Class 가 가져야할 Core 정보들은 Projection, View Matrix 등의 요소들이다. 그런데 경우에 따라 Camera 의 Pos, Rot 을 조절해서 각 게임의 특성에 맞게 Customizing 할 필요가 있을 수 있다. 따라서 이를 위해 Camera 를 감싼, 일종의 Wrapper 로서 Camera Controller Class 가 존재한다고 생각하면 된다. Zoom 적용하기 bool Orth.. 더보기
230503 자체 엔진 개발 : Shader Asset File System https://github.com/ohbumjun/GameEngineTutorial/tree/0422ce9729ceefe6010ed09b90444ea2884fff44 GitHub - ohbumjun/GameEngineTutorialContribute to ohbumjun/GameEngineTutorial development by creating an account on GitHub.github.com 과정이제 glsl 이라는 파일에 내가 사용할 Shader Code 를 작성-> 하드웨어에 존재하는 glsl 파일로부터 Shader Code Load-> Shader Code 를 Vertex, Fragment Shader 코드를 분리해서, 각각을 OpenGL 에 매핑시키기 쉐이더 코드#type vertex#.. 더보기
230502 Hazel GameEngine : Texture Blending https://github.com/ohbumjun/GameEngineTutorial/commit/0099fe921d491702a2ecff3e2915ab33200c9cc2 블랜딩 이란 ? 반투명 혹은 투명 물체를 Rendering 할 때 어떻게 처리할 것인가에 대한 것이다. 즉, 이미 프레임 버퍼에 렌더링된 색상 + 현재 렌더링 하는 색상. OpenGLRendererAPI::Init void OpenGLRendererAPI::Init() { // Blending 허용 glEnable(GL_BLEND); // Blending Function 정의 ex) glBlendFunc(src, dest) // - src : src RGBA 계산 방법 (기본 : GL_ONE == 현재 그리는 색상 그대로 가져감) // .. 더보기
230501 자체 엔진 개발 : Texture System https://github.com/ohbumjun/GameEngineTutorial/commit/78b8a6bc619757867e8fd1b1c0997972fe40eccb feat(Engine) Create Texture, Texture Sub Classes · ohbumjun/GameEngineTutorial@78b8a6bShow file tree Showing 11 changed files with 8,415 additions and 91 deletions.github.com Texture 클래스 구성Texture - Texture2D - OpenGLTexture2D - VulkanTexture2D - Texture3D - OpenGLTexture3D ..... 더보기
230430 자체 엔진 개발 : Camera system 참고 : http://egloos.zum.com/mataeoh/v/7295230 OpenGL vs DirectX이문서도 꼭 읽어보자! MatricesTips.pdf 1. 좌표계 OpenGL : 오른손 좌표계 DirectX : 왼손 좌표계 2. 행렬 ( Matrix ) https://msdn.microsoft.com/en-us/library/windows/desktop/bb509634(v=vs.85).aspx row major인지 coulmn majoregloos.zum.com World , View Matrix 행렬 계산 void OrthographicCamera::RecalculateViewMatrix(){ glm::mat4 transform = glm::translate(glm::mat4(1.f.. 더보기
230429 자체 엔진 개발 : VertexArray, VertexBuffer Layout, Renderer Flow 커밋 : https://github.com/ohbumjun/GameEngineTutorial/tree/4a0a7b5c267d602a6a0531c84dc715ca8f7c5a83 GitHub - ohbumjun/GameEngineTutorialContribute to ohbumjun/GameEngineTutorial development by creating an account on GitHub.github.comVertexAttribute, Layout- 쉽게 말하며 VertexBuffer 가 어떻게 구성되어 있는지를 GPU 측에 알려주는 것이다.  해당 정보가 없이 VertexBuffer 만을 GPU가 바라본다고 할때, VertexBuffer 는 단순히 byte 의 배열에 불과하다.  VertexAttr.. 더보기