본문 바로가기

전체 글330

23. 빛을 가진 이미지 적용 빛을 가진 이미지 적용 - 빛을 가진 이미지란 말 그대로 빛을 발산하는 것처럼 보이는 이미지이다. - 배경이 없는(누끼가 따진) png 파일 중에 이미지가 없는 부분에 빛번짐이 있는 이미지들이 있다. (말이 조금 이상한데 실제로 보면 누끼 부분 체크무늬에 색이 바래보인다) - 이런 이미지의 경우 그냥 알파블렌딩으로 출력하면 이미지 주변에 있는 사물들에 실제 빛이 비친 것처럼 보인다 - 나는 이게 셰이더 효과인줄 알고 배경 텍스쳐와 이펙트 텍스쳐를 만들어서 합치려고 했는데 열심히 시도했는데 안되더라. (되긴 하겠지만 내 능력으론 아직 무리인듯 하다..) - 이번에 추가한 Deferred Rendering을 통해 했던 많은 삽질은 앞으로 많이 추가될 빛 연산들을 처리하기 위해서도 그렇고 추후 진행할 그래픽스.. 2023. 4. 7.
22. Effect Target 생성 Effect Target 생성 - Effect Target은 게임 이펙트만 그려주는 렌더타겟이다. - 이것을 만들어주는 이유는 이펙트 중 빛번짐이 심한 스프라이트를 가진 이펙트들이 있어서, 이 이펙트들을 자연스럽게 출력하기 위함이다. - 평소 스프라이트를 출력하는 방식대로 출력하게 되면, 빛번짐이 생긴 부분이 그냥 하얗게 나와서 보기 흉하게 된다. - 그리고 빛에 따른 그라데이션이 생겨서 포토샵에서 알파값을 부여하기가 어렵다 - 이 이펙트들을 그려줄 때, 빛번짐이 생기는 부분을 배경과 섞어줘서 자연스럽게 번짐이 적용되도록 할 예정이다. - 현재 이펙트 텍스쳐와 배경 텍스쳐를 따로 출력해서 확인하는 과정에 있고 아마 내일쯤 테스트해볼 수 있을 것 같다. 내일 할 일 - 빛번짐이 있는 스프라이트 출력 2023. 4. 6.
21. Deferred Rendering 구현 Deferred Rendering 구현 - Deferred Rendering은 Position, Normal, Diffuse 등의 값들을 텍스쳐에 한번 저장하고 나중에 그걸 취합해서 화면에 그려내는 방법인데, 이 기법은 Forward 기법에 비해 빛 연산에 대해 강점을 보인다. - Forward 방식의 빛 연산의 경우 빛 오브젝트의 위치와 범위, 종류 등을 한데 모아서 GPU로 보내주면 GPU에서 각각의 물체를 그릴때 빛 개수만큼의 for문을 돌면서 적용된 부분에 대해 밝기를 더해주는 등의 작업을 해주게 되는데 이렇게 되면 연산량이 물체의 갯수(N번) * 빛의 갯수(M번)가 되어서 연산량이 많아진다. - Deferred 방식은 위에 언급했던 것처럼 Position, Normal, Diffuse 값을 미리.. 2023. 4. 5.
20. 점프 시 발생하는 Smoke 구현 점프 시 발생하는 Smoke 구현 - 이 부분은 Dash Smoke와 비슷한 구석이 많았다. - 결국 이 이펙트도 플레이어가 소유하고 씬에 추가하는 부분까지는 동일 - Jump Smoke가 발동하는 조건은 플레이어가 더블 점프를 했을 때이므로, 점프 상태에서 다시 점프를 했을 때를 체크해서 애니메이션을 적절히 출력해주는 방식을 사용했다. - Dash Smoke 이펙트와 다른 점이라면 Dash Smoke는 오로지 DashState에서만 사용되므로 DashState에서 구현해줬는데, Jump Smoke는 Jump Rise / Fall 상태 모두에서 호출될 수 있으므로, 부모 클래스인 PlayerState에서 구현해서 두 함수가 모두 사용할 수 있도록 했다. 내일 할 일 - Deferred Rendering 구현 2023. 4. 4.