Loading...
2013. 12. 2. 11:01

피부는 왜 피부처럼 보이는가? 1

물, 메탈, 그림자 이후 피부 시리즈이다. 물 관련 포스트는 아래 포스트를 참조하면 된다. 앞의 글 참조 1. http://mgun.tistory.com/1282 2. http://mgun.tistory.com/1294 3. http://mgun.tistory.com/1304 4. http://mgun.tistory.com/1306 5. http://mgun.tistory.com/1351 6. http://mgun.tistory.com/1368 (비공개) 꽤 오래동안 쓴 물 관련 시리즈물인데 6번째 글이 비공개인 이유는 아직 쓰고 있기 때문이다. 마지막 글은 계속해서 추가되는 공부와 자료들로 늘 계속해서 이어질 수 있도록 비공개로 둔다. 메탈, 그림자 관련 강좌 시리즈도 아직 비공개인 이유는 아직 정리가..

Depth Of Field 2 (Advanced DOF)

이전 글 참고 : http://mgun.tistory.com/1388 이전글에 이어서 Advanced Depth Of Field를 언급한다. Depth of Field의 구현. 1. destination alpha(출력 알파) 채널에 per pixel depth와 blurriness 정보를 저장한다. 2. post processing을 위한 pixel shader . a. 이미지를 downsample해서 pre blur한다. b. COC 근사치를 위해 다양한 크기의 필터커널을 사용한다. c. 더 나은 이미지 품질을 위해 원본과 pre blurred한 이미지를 섞는다. d. 또렷한 전경값이 블러 원경으로 쓰이는 것을 측정해서 방지한다. 위의 내용이 핵심이다. 이 개념을 실제로 옮겨 보자. 1. destin..

2013. 3. 21. 11:57

행렬

행렬이란 무었인가? 벡터를 움직이는 것. 행렬을 사용하면 벡터의 방향이나 크기를 바꿀 수 있다. EX) x축 방향을 향하고 있는 벡터가 아래의 행렬을 통해 방향을 바꾸는 모습을 볼 수 있다. [0, -1, 0] [1] [0*1 + -1*0 + 0*0] [0] [1, 0, 0] * [0] = [1*1 + 0*0 + 0*0] = [1] [0, 0, 1] [0] [0*1 + 0*0 + 1*0] [0] x축을 향하던 벡터가 행렬과 연산된 후 y축을 향하는 것을 볼 수 있다. 행렬의 내용은 대략 위의 사진과 같고 행과 열을 같을 경우 정방행렬이라고 한다. 정방행렬로 벡터를 변환하면 벡터의 차원이 변함없기 때문에 컴퓨터 그래픽에서 정방행렬을 많이 사용한다. 행렬을 사용하여 벡터를 움직이는 것은 행렬의 각 열을 벡터..

2013. 3. 18. 11:14

Depth Of Field 1 (Simple DOF)

Depth Of Field - 한국어로 피사계 심도(한국어가 더 어려운...)라고 한다. 원래 사진술 관련 용어로서 한장의 사진에서 초점이 맞은것으로 인식되는 범위. 즉, 실제 사진에서 초점면을 중심으로 서서히 흐려지는 현상이 발생하는데 이때 충분히 초점이 맞은것으로 인식되는 범위의 한계를 피사계 심도라고 한다. 그렇다면 이 DOF(피사계심도, Depth Of Field)에 영향을 주는 것은 어떤것이 있는가? 1. 조리개 값 조리개는 간단히 말해 빛의 양을 조절한다. 렌즈를 통해 카메라로 빛이 유입되는 통로의 폭을 결정하는데 당연히 그 폭이 넓을 수록 보다 많은 빛이 유입되고, 빛이 많이 유입될 수록 DOF에 미치는 영향력도 커진다. 조리개값이 작을 수록 DOF가 얇아진다. 위 사진은 작은 조리개값을 사..

Shader 개발을 위한 툴

1. FX Composer https://developer.nvidia.com/fx-composer 사실 2.5까지 버전업이 되었는지도 몰랐다. 이전에 1.x 버전을 쓸 때는 버그가 꽤나 많아서 몇번 쓰다가 패스해 버린 기억이 난다. 2. RenderMonkey http://developer.amd.com/wordpress/media/files/RenderMonkey.2008-12-17-v1.82.322.msi 상당히 조아라 하는 툴이다. 이유는 단지 가벼워서!! 그냥 적당히 필요한 기능은 다 있는 것 같다. 아쉬운건 한 패스에 물체 하나밖에 그리질 못한 다는 거... 3. UDK Material Editor. Unreal에서 제공하는 비쥬얼 머티리얼 제작 편집 툴. 코딩할 필요도 없고(물론 custom..

2013. 2. 20. 10:28

5. 왜 물은 물처럼 보이는 걸까?

앞의 글 참조 1. http://mgun.tistory.com/1282 2. http://mgun.tistory.com/1294 3. http://mgun.tistory.com/1304 4. http://mgun.tistory.com/1306 5번째 글이 늦은 이유는..... 글 적다가 한번 날려서 멘붕이 왔다... 글을 적을 때 한번에 쫘악~ 다 적을 능력이 안 되서 하나의 글을 몇일동안 조금씩 적는데 그걸 날려먹으니 멘탈이 쫀득쫀득해져서 한동안 다시 쓸 엄두가 안났다는...ㅜㅜ... 무튼~! 기본적인 라이팅도 했고 반사도 했으니 이젠 굴절(Refraction)이라는 녀석을 살펴 볼 차례다. 굴절이란 무었인가??그림 1. 출처 : http://mathforum.org/mathimages/index.ph..

2013. 1. 28. 11:10

4. 왜 물은 물처럼 보이는 걸까?

앞의 글 참조 1. http://mgun.tistory.com/1282 2. http://mgun.tistory.com/1294 3. http://mgun.tistory.com/1304 법선맵을 사용한 범프맵핑으로 잔물결을 표현하고 주위의 정경이 비치는 화면반사를 환경맵 텍스처를 이용하여 표현하고, 물의 특성인 가까운 물밑일 수록 물 아랫바닥이 투과되어 보이고 멀수록 수면에 주변 정경이 비쳐 보이는 효과를 적용하기 위한 라이팅(프레넬)을 추가해 준다. 여기 까지가 이 전 글에 다루었던 내용이다. 이제 실제로 만들어 가며 되짚어 보자. 위의 이미지를 보면 위의 글에서 언급했던 "화면반사"의 모습이 뚜렷이 나타난다. 이는 환경텍스처를 사용한 것이라고 하였는데 게임에서 이 환경맵을 사용하는 방법은 크게 두가지..

2013. 1. 17. 14:01

3. 왜 물은 물처럼 보이는 걸까?

앞의 글 참조 1. http://mgun.tistory.com/1282 2. http://mgun.tistory.com/1294 BRDF라는 개념이 왜 중요한가? BRDF는 단순하게 말하자면 입사하는 빛에 따른 반사하는 빛의 비율에 대한 함수다. 우선 물을 물처럼 보이기 위해 Lighting이라는 개념이 들어가는데 렘버트의 단순함 만으로는 사실적인 결과물을 얻기 힘들다. 그 이유는 렘버트는 빛이 입사하는 방향에 관계없이 모든 방향으로 같은 양의 빛을 반사한다고 가정하기 때문이다. (렘버트 모델은 상수 BRDF에 의해 완벽하게 분산 표면을 표현한다.) 하지만 실제로 물을 본다면 물을 바라보는 위치에 따라 물의 빛의 반사정도나 투과정도가 다르다는 것을 알 수 있다. 즉, 특정 표면이 현재 내가 바라보는 시점..