본문 바로가기

게임 공부/게임 개발 일지26

프로토타입(prototype) 패턴 적용 상속 관계의 오브젝트들을 생성할 때 아래와 같이 switch case를 이용했었는데 프로토타입 패턴에 대해 알게 되었다! 그리고 바로 이 부분을 수정해야겠다는 생각이 들었다. obj 타입에 따라 아래와 같이 샘플 데이터를 이용해 타입에 맞게 복사 생성했었는데 새로운 클래스를 만들 때 마다 아래와 같이 추가를 해주어야 한다는 단점이 있었다. 이걸 구현할 때도 뭔가 다른 방법이 있을 거라는 생각이 들긴 했던 것 같다.. switch (obj) { case ON_CUBE: pObj = new Cube(*(Cube*)pSample); // 샘플 객체를 해당 타입으로 형변환 후 복사 생성 break; case ON_TILE: pObj = new Tile(*(Tile*)pSample); break; default:.. 2021. 11. 6.
앞으로 더 적용해야 할 것.. 피킹(Picking): 마우스를 클릭한 곳에 어떠한 오브젝트가 존재하는지 알아내는 기능이다. 라이트 매핑(Light Mapping): 조명 계산에 사용할 정적인 라이트에 대한 정보를 미리 텍스쳐에 저장 후 가져다 쓰는 것을 말한다. 노멀 매핑(Normal Mapping): 조명 계산에 사용할 법선의 정보를 미리 저장한 텍스쳐에서 가져다 쓰는 것을 말한다. 그림자 매핑(Shadow Mapping): 그림자를 생성하는 기법 중 하나이다. 디퍼드 셰이딩(Deferred Shading): 셰이딩 단계를 뒤로 미뤄서 어차피 버려질 픽셀에 대한 불필요한 연산을 하지 않는다. 물리 기반 렌더링, 셰이딩(Physically Based Rendering, Shading: PBR, PBS): 현실 세계의 물리 법칙 중 주.. 2021. 9. 14.
오브젝트 및 라이팅 생성 및 배치 테스트 2021. 9. 7.
세 종류의 라이팅 구현 (4) - SpotLight 편 개념이나 기술적으로 틀린 부분이 있을 수 있습니다. 있다면 알려주세요 ~ - 세 종류의 라이팅 구현(1) - 소개 편 https://woo-dev.tistory.com/269 세 종류의 라이팅 구현 (1) - 소개 | Directional Light, Point Light, Spot Light 게임 엔진에 구현된 대표적인 조명 3가지인 Directional Light, Point Light, Spot Light를 구현해볼 예정이다. 조명의 특징과 기능? 들은 언리얼 엔진을 참고할 예정. 세세한 기능보단 핵심적인 특징 구현에 woo-dev.tistory.com 마지막으로 구현해 볼 라이팅은 SpotLight이다. SpotLight는 특정한 위치에서 특정한 방향으로 원뿔(cone) 모양의 광선을 발사하는 광.. 2021. 8. 29.
픽셀 셰이더의 결과의 일부분이 카메라의 위치에 따라 검은색이 나온다면.. 나처럼 바보같은 실수를 하는 경우는 없겠지만 혹시나.. 회전 시스템을 쿼터니언으로 바꾸기 전엔 정상적으로 동작했다. 그런데 쿼터니언으로 바꾸고 이상하게 카메라의 위치에 따라 일부분이 계속 검은색으로 칠해졌다. 그래서 절대 검은색이 나올 수 없도록 조건에 따라 검은색에 가까운 색일 경우 다른 색으로 출력하도록 했는데도 계속 검은색으로 나왔다. 이전엔 정상적으로 동작했기 때문에 기존 셰이더 코드엔 문제가 없을 줄 알고 몇시간을 뻘짓했는데, 잘 살펴보니 조명 계산 중 dot 연산에 max 함수를 사용하지 않았었다.. 설마 설마하고 고쳐보니 잘 나온다. 쿼터니언으로 바꾸고 줄 지은 이상 현상들이 3~4개 연속으로 나와서 며칠동안 디버깅만 계속 했다.. 빨리 나머지 SpotLight를 구현해야겠다. 2021. 8. 28.
오일러 각 기반 회전 시스템을 쿼터니언으로 바꾸었다. 바꾸게 된 배경은.. SpotLight를 구현하다가 짐벌락(Gimbal lock) 현상을 겪고 쿼터니언에 대해 공부하게 되었다. 그리고 회전 시스템을 쿼터니언으로 바꾸던 도중 이상한 결과들이 발생해서 며칠동안 고생을 했다. 예상되는 원인은 쿼터니언 곱셈 순서와 쿼터니언을 생성할 때 전달하는 회전축의 문제였던 것 같다. 아래는 쿼터니언으로 변경한 회전 시스템 (카메라)의 이동 및 회전을 테스트한 영상이다. 그런데 영상 후반에 보이듯이 여전히 이상한 현상 하나는 존재한다. https://youtu.be/kSjaezcwVG8 2021. 8. 26.