본문 바로가기

DirectX Shader LUT 필터 코드 구현 안녕하세요 넬다이입니다. 오늘은 LUT에 대해서 배워보도록 할 생각인데요 LUT는 무엇인가? 아마 잘 모르시는 분들도 계실 거예요. 저도 처음에 이게 뭔가 싶었거든요. 기존에는 영상 쪽이나 포토샵 쪽에서 사용하던 기법으로 분위기를 변경하거나 할 때 사용을 한 것 같으며 후처리 필터로써 상대적으로 낮은 비용으로 최고의 효과를 얻을 수 있다고 생각을 하는 기법입니다. 자 일단 직접 보시면 편하실 거예요 지금 보시는 화면은 다른 LUT를 이용해서 필터를 적용시킨 모습입니다. 분명 하나의 씬이지만 LUT의 따라서 분위기가 전혀 다르게 바뀌는데요 LUT텍스처는 이런 형태로 되어있어요 저도 이 당시에 저런 텍스처를 처음 봤기 때문에 여러분들도 처음 보셨을 수도 있고 이미 알고 계신 분들도 있을 거예요 하지만 지금 .. 더보기
DirectX Shader Bloom 코드 구현 안녕하세요 넬다이입니다. 오늘은 Bloom에 대해서 배워보는 시간을 가져볼까 하는데요 Bloom은 무엇일까? Bloom은 렌더링 되는 부분에서 밝은 부분을 좀 더 밝게 표현하는 기법입니다. 이를 통해서 주변의 밝은 부분이 있다면은 그 경계선을 기준으로 어두운 부분으로 번지는 현상을 만들어 낼 수 있습니다. 자 직접 봐보시면 이해하기 쉽습니다. 첫 번째로 렌더링 된 화면에서 밝은 부분을 추출합니다. 이렇게 밝은 부분을 추출을 하게 된 후 이것을 Blur처리를 하게 되는데요 위에 렌더링에서 블러 처리를 하게 되면은 이런 모양으로 변하게 되고 결과적으로는 이런 모습이 됩니다 이와 마찬가지로 다른 렌더링 화면도 준비를 했는데요 직접 봐보시지요 위에 3단계를 진행한 결과입니다. 자 그러면 간단하게 보기 위해서 코.. 더보기
DirectX Blur Shader 코드 구현 안녕하세요 넬다이입니다. 오늘은 셰이더에서 Blur에 대해서 직접 해볼 생각인데요 Blur는 쉽게 생각해서 흐리게 만들거나 뿌옇게 만드는 작업을 하는 것입니다. 저 같은 경우에는 SSAO를 완료하고 나온 작업물을 blur처리를 통해서 부드럽게 표현한 후 이미지를 적용시키는 작업을 진행했는데요 직접 한번 보시면 좋을 것 같습니다. 자 일단 전체 코드는 이렇습니다 texture g_BlurTex; sampler g_BlurSam = sampler_state { texture = g_BlurTex; AddressU = clamp; AddressV = clamp; MinFilter = LINEAR; MagFilter = LINEAR; MipFilter = LINEAR; }; float m_TexW = 1600... 더보기
DirectX SSAO(Screen Space Ambient Occlusion) Shader 코드 구현 안녕하세요 넬다이입니다. 오늘은 SSAO에 대해서 공부를 해볼 생각입니다. SSAO (Screen Space Ambient Occlusion)은 사실적인 광원 표현 기술이라고 생각하면 좋습니다. 화면의 특정 부분에 기하학 기반으로 밝고 어두운 부분을 계산하여 게임의 그래픽에 적용하는 기술로써 어두워야 하는 부분은 어둡게 표현을 게임화면에 표현해줌으로써 사실적인 보다 현실적인 조명효과와 입체감을 표현해 주는 기술입니다. 앰비언트 오클루전은 여러기술이 존재하며 SSAO , HBAO , HBAO+등과 같은 기법들이 존재하며 우리가 다룰 내용은 SSAO입니다. 가장 기본적이고 프레임 저하가 적은 SSAO는 모니터에 렌더링 되는 부분만 영역으로 인식하여 물체나 표면에 앰비언트 오클루전을 적용함으로써 일정 수준의 .. 더보기
DirectX 3D 기법 및 Shader 시작하기. 안녕하세요 넬다이입니다. 이번에 이렇게 글을 쓰게 된 것은 필자가 예전에 만들어 놓은 게임에 대해서 한번 뜯어보면서 여러분들에게 많은 내용을 선물해 드리고 싶어서 이렇게 글을 남기게 되었습니다. 예전에 저는 포토 폴리 오용 게임을 만들었는데요 그 사진은 아래와 같습니다 이게 제가 만든 킬러 이즈 데드 모작한 작품입니다. 이 작품을 통해서 제가 여러분들에게 각각 기법들이나 셰이더 Shader 파일들을 하나하나 뜯어보면서 강의를 해볼까 합니다. 저는 이걸 처음에 구현할 때는 각족 예제 소스들도 부족했고 그에 따라서 개발에 필요한 지식들도 많이 부족한 상태로 시작을 했는데 특히 포트폴리오를 만들 때는 영문으로 된 사이트에 들어가서 원리를 깨우치고 그것을 직접 구현해가면서 하나하나 적용시킨 거 같습니다 필자의 .. 더보기