본문 바로가기

Learn OpenGL - Advanced Lighting : Deferred Shading link : https://learnopengl.com/Advanced-Lighting/Deferred-Shading Deffferd Shading 지금까지 조명을 사용한 방식은 Forward Rendering 또는 Forward Shading 이라고 불렀다. 즉, 객체를 렌더링하고 장면의 모든 광원에 따라 빛을 비운 다음 객체를 렌더링하는 등의 직접적인 방법이었다. 상당히 이해하기 쉽고 구현하기는 하지만 각 렌더링된 객체가 렌더링 된 모든 조각에 대해 각 광원에 대해 반복해야하므로 성능면에서 상당히 중요하다! 또한, 앞으로 렌더링은 대부분의 조각 쉐이더 출력을 덮어쓰므로 깊이 복잡도가 높은 장면에서 많은 조각 쉐이더 실행을 낭비하는 경향이 있따. (여러 객체가 동일한 화면 픽셀을 가리는 경우) 지연된 ..
Learn OpenGL - Advanced Lighting : Bloom link : https://learnopengl.com/Advanced-Lighting/Bloom Bloom 밝은 광원 및 밝게 조명된 영역은 모니터의 강도 범위가 제한되어 있기 때문에 종종 시청자에게 전달하기 어렵다. 모니터에서 밝은 광원을 구별하는 한 가지 방법은 빛을 비추는 것이다. 광원을 중심으로 빛의 번짐이 발생한다. 이것은 효과적으로 관측자에게 이러한 광원 또는 밝은 영역이 강렬하게 빛나는 환상을 준다. 이 가벼운 블리딩 또는 글로우 효과는 블룸이라는 사후 처리 효과로 얻을 수 있다. 블룸(Bloom)은 모든 밝은 조명 영역에 반짝이는 효과를 준다. 반짝이는 장면과 없는 장면의 예가 아래에 있다. (Unreal의 이미지): 블룸은 오브젝트의 밝기에 대한 눈에 띄는 시각적 단서를 제공하여 블룸은..
LearnOpenGL - Advanced Lighting : HDR link : https://learnopengl.com/Advanced-Lighting/HDR HDR(High Dynamic Range) 기본적으로 밝기와 색상 값은 프레임 버퍼에 저장 될 때 0.0에서 1.0 사이로 고정된다. 이것은 처음에는 겉으로 보기에 문제가 없어보이지만, 우리는 이 범위의 어딘가에서 항상 빛과 색채 값을 지정해 장면에 적합하도록 했다. 이것은 괜찮았고 좋은 결과를 줬다. 그러나 합계가 1.0을 초과하는 여러 개의 밝은 광원을 사용해 특별히 밝은 지역을 보면 어떻게 될까? 1.0 이상의 밝기 또는 색상 합계를 갖는 모든 조각이 1.0으로 고정되어 보기 흉하게 바뀐다: 많은 수의 단편 색상 값이 1.0으로 클램핑되기 때문에 각 밝은 단편은 넓은 영역에서 정확히 동일한 흰색 색상을 가..
[백준 5525번] IOIOI link:https://www.acmicpc.net/problem/5525 IOIOI 성공한국어 시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB218757144430.600%문제N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다.P1 IOIP2 IOIOIP3 IOIOIOIPN IOIOI...OI (O가 N개)I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000)출력S에 PN이 몇 군데 포함되어 있는지 출력한..
[백준 1764번] 듣보잡 link : https://www.acmicpc.net/problem/1764 듣보잡 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB77443004212840.030%문제김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.입력첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.출력듣보잡의 수와 그 명단을 사전순으로 출력한다.예제 입력 1 복사3..
[백준 1157번] 단어 공부 link : https://www.acmicpc.net/problem/1157 단어 공부 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB259528981707035.155%문제알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.입력첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.출력첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.예제 입력 1 복사Mississipi 예제 출력 1 복사? 예제 입력 2 복사zZa 예제 출력 2 ..
[백준 10217번] KCM Travel link : https://www.acmicpc.net/problem/10217 KCM Travel 성공시간 제한메모리 제한제출정답맞은 사람정답 비율10 초256 MB392559330915.653%문제각고의 노력 끝에 찬민이는 2014 Google Code Jam World Finals에 진출하게 되었다. 구글에서 온 초대장을 받고 기뻐했던 것도 잠시, 찬찬히 읽어보던 찬민이는 중요한 사실을 알아차렸다. 최근의 대세에 힘입어 구글 역시 대기업답게 비용 감축에 열을 내고 있었던 것이다.초대장 내용에 의하면 구글은 찬민에게 최대 M원까지의 비용만을 여행비로써 부담해주겠다고 한다. 인천에서 LA행 직항 한 번 끊어주는게 그렇게 힘드냐고 따지고도 싶었지만, 다가올 결승 대회를 생각하면 대회 외적인 곳에 마음을 ..
LearnOpenGL - Advanced Lighting : Parallax Mapping link : https://learnopengl.com/Advanced-Lighting/Parallax-Mapping Parallax Mapping Parallax Mapping은 일반적인 맵핑과 비슷한 기술이지만 다른 원칙에 기반한다. 일반 맵핑과 마찬가지로 텍스처 표면의 디테일을 대폭 향상시키고 깊이감을 주는 기법이다. 또한, 환상이지만 시차 맵핑은 깊이 감각을 전달하는데 훨씬 뛰어나며 일반 맵핑과 함께 매우 현실적인 결과를 제공한다. 시차 맵핑은 반드시 조명과 직접적으로 관련이 있는 기술은 아니지만, 이 기술은 일반적인 맵핑의 논리적인 후속 작업이므로 여기서도 논의 할 것이다. 시차 맵핑을 배우기 전에 일반 맵핑, 특히 탄젠트 공간에 대한 이해를 강력히 권장한다. 시차 맵핑은 텍스처 내부에 저장된 ..