DirectX/DirectX 3D_(구) 56

54 ~ 55_ShadowShader

쉐이더 파일 더보기 55번은 통합 으로 사용하기 위해 수정 Framework 더보기 수정 (통합 기준으로) 실행 0 ~ 1 : z 파이팅 현상 관련 + 해상도 관련 2 : 피터패닝 관련 보충 더보기 그림자 3대 문제 1번째 문제 : z파이팅 현상 현상 : z버퍼(DepthBuffer)사용시 똑같은 물체(오브젝트, 폴리곤) 에서 유사한 z-Depth값을 가지고 있어서 서로 먼저 그리려는 생기는 문제점 (1Pass, 2Pass 에서 서로 깊이값으로 싸움) 해결법 : RasterizerState에서 Cull옵션에 반시계 방향 으로 그리게 만듬 (뒷면에서 봐야지만 보이게 하는 기능) 추가 문제점 : Cube 같은 경우에 이미 반시계 방향으로 그려지는 곳이면 정상적으로 그려짐 하지만 음영처리하면 이부분은 거의다 ..

53_DepthBuffer

쉐이더 파일 더보기 Depth 관련으로 함수 및 변수 구조체 선언 정의 Framework 더보기 Framework -> Objects -> Shadow (월드 조명값 가지고 깊이 관련 클래스) 실행 왼쪽아래 출력되는 것이 조명 기준으로 깊이 계산해서 출력하는 부분 보충 더보기 핵심 1. 1Pass PreRender 에서 카메라가 되는것은 월드 조명이다. 2. 1Pass 깊이 정보와 2Pass의 정보를 합쳐서 그림자계산해서 사용 RTV 방식 그림자 1. 조명 방향으로 PreRender로 찍는다 2. 찍혀진 방향과 각도를 계산해서 그림자를 그려준다 문제점 : 물체가 있으면 그림자가 가려짐 그림자 사용안하면 문제점과 쓰는 이유 1. 점프를 하면 입체감이 안느껴짐 (현실 감각이 없음) 2. 점프를 해서 낙하시 ..

51_ProjectionTexture

쉐이더 파일 더보기 수정 -> ProjectionTexture 관련 필요한 변수 및 함수 정의 생성 Framework 더보기 생성 : Framework -> Objects -> ProjectionTexture (그림을 비추는 클래스) 생성 : Framework -> Viewer-> Fixity (고정 카메라) 실행 보충 더보기 내용 : 빔프로젝트 처럼 Texture를 쏘게 되면 물체의에 그려지는 기법, 별도의 카메라를 만들고 거기서 Texture를 비춰서 해당 오브젝트나 지형에 해당 그림을 그려지는 방법 사용이 되는 곳 : 데칼 or 문신 더 나아가서 그림자 용어 Near, : 카메라가 비춰지는 앞 면 Far : 카메라가 비춰지는 마지막 면 fov : 시야각 zNear, zFar 의 수치는 -1 ~ 1로..

50_EnvCubeMap

쉐이더 파일 더보기 수정 생성 Framework 더보기 수정 생성 실행 보충 더보기 핵심 1. EnvCubeMap을 이용해서 6면에 각각의 카메라를 심어줌 빨강색 선이 카메라의 방향 2. 각 6면에서 비춰지는 rtv 정보를 토대로 씌워줄 Mesh에 찍고 있는 그림을 렌더링 3. 반사, 굴절 사용 해서 조금더 거울에 비춰지는 효과 추가 ->Fresnel 방정식 : 반사 + 굴절 합쳐진 계상 방식 쓰여지는곳 감시카메라, 거울 용도 단점 실시간 6개의 카메라가 찍힌 rtv 정보를 계산을 하면서 Mesh에 씌워지기 때문에 느려진다 보완 1. PreRender 에서 불필요한 정보를 rtv에 정보를 넣지 않고 사용 ex) 쓸모없는 오브젝트 및 지형을 뺀다 2. 써야 하는 곳에서만 잠깐 사용 하는 방식으로 사용한다

49_GaussianBlur

실행 보충 더보기 1. GaussianBlur : blur 효과와 동일하고 이번엔 x축, y축 별도로 계산 해서 사용 2. Luminosity : 어두운 부분은 어둡게 밝은 부분만 렌더링 3. Bloom: GaussianBlur + Luminosity 합쳐진 효과 4. Bloom : 에서 Luminosity만 사용하면 너무 밝아져서 픽셀 정보가 손상 되는데 여기서 Grading 기법으로 채색을 보정해서 사용 하는 기법 ※쉐이더 파일 이번껀 올리지 않고 실행만 올립니다.

48_Blur

쉐이더 파일 더보기 실행 보충 더보기 1. 주변 픽셀값을 중간 (평균) 값으로 만들어 사용 해서 흐리게(뿌옇게) 만들어주는 기법 2. 단점 ->주변 인접한 픽셀이랑 평균값을 내야하는 범위가 클수록 처리하는 속도가 느려짐 (흐려질수록 반복문을 많이 돌려야함) ->자기 중심 기준으로 8방향으로 섞이기 때문에 부드럽게 섞이지가 않음 빨강색 기준으로 8방향을 평균 값으로 내야 하기 때문에 범위가 클수록 처리 하는양이 많으므로 느려진다 3.RaialBlur : 중앙 기준으로 뻗어나가는 Blur 효과 ->쓰이는곳 : 초고속 이동, 시간 느리게 하는 효과

47_Mrt

쉐이더 파일 더보기 실행 보충 더보기 1. MRT : RTV를 여러개를 만드는 명칭 이며 1개의 파이프 라인으로 여러가지 효과를 만들때 사용 2. 여러장의 RTV 지울때는 문제가 되지 않지만 DSV 1장으로 그리기 때문에 반복문 밖에다 DSV는 1번만 CLEAR 3. 46 쉐이더 내용을 여러개 합쳐서 2가지 이상 효과를 만듬 핵심 더보기 1. PreRender 에서 메인 rtv의 정보를 따로 그려줄 3장의 rtv에 값을 넘겨줌 -> 초록색 박스 정보값을 빨강색 박스 영역 rtv에 값을 넘겨줌 2. 쉐이더 파일에서 해당 rtv의 정보를 뒤에 시메틱 영역의 번호에 맞게 각각 넣어줌 3. PS 단계에서 각각의 RTV값을 따로 따로 처리 해주고 출력

45_RenderTarget

Framework ->DepthStencil.cpp, h (DSV 관련), RenderTarget.cpp, h (RTV 관련) 더보기 실행 보충 더보기 1. RenderTarget(RTV)관련 출력 기법은 OM관련 해서 다루는 기술이다 2. Render 영역에 총 3가지 있는데 이중 2가지는 PreRender : Render 출력 하기 전에 전 출력하는 정보를 저장 하는 공간 Render : PreRender의 정보나 화면에 실제로 출력 하는 영역 좀더 쉽게 예를 들면 PreRender에서 처리된 이미지의 정보를 RenderTarget에 담아서 동영상에 있는 Cube에 해당 이미지의 정보를 넘겨서 그려주고 있다 (동영상 참조) 3. 쉐이더 PS 에서 SV_Target 관련이 있다 4. RenderTarg..