포스트 프로세스 매터리얼 작성
설정
Material - Material Domain : Post Process
Post Process Material - Blendable Location : Before Translucency
외곽선 설정
뷰의 픽셀 단위 크기, 텍셀 사이즈 얻기
ViewSize = ViewSize
TexelSize = TexelSize
외곽선 두께(1.5)적용 : 화면(view) 사이즈별로 두께가 조절될 필요가 없는 경우에는
ViewSize 처리없이 TexelSize * 1.5 만 해주면 된다.
Value = (( Clamp ( Ceil(ViewSize) ) ) * 1.5 ) * TexelSize
텍셀값 각각 마스킹해 해당 값 얻기
uv는 2차원 벡터 이므로, 0을 붙여 2차원 벡터를 만들고, 마스킹된 값을 +,- 값으로 총 4개 값으로 추출한다.
결국 R은 U, G는 V를 의미하며, U는 현재 픽셀의 좌우, V는 위아래를 의미한다.
R : right, left
G : top, bottom
Component Mask(R) <- Value
Component Mask(G) <- Value
마스킹값과 상수 0을 2차원 벡터로 확장
MaskingR = Append Vector
MaskingG = Append Vector
마스킹 벡터에 상수 -1 곱셈
MaskingReversR = MaskingR * -1
MaskingReversG = MaskingG * -1
UV 좌표
현재 스크린 포지션과 마스킹된 포지션을 더해 실제 UV 좌표를 얻는다
픽셀의 UV 좌표 얻기
ScreenPosition : Mapping 설정은 SceneTextureUV
해당 UV좌표를 R,G로 마스킹
MaskingScreen = Component Mask(R,G)
V1 = MaskingScreen + MaskingR
V2 = MaskingScreen + MaskingG
V3 = MaskingScreen + MaskingReversR
V4 = MaskingScreen + MaskingReversG
UV 좌표의 인접 픽셀의 색상 차 얻기
현재픽셀과 4곳의 깊이값을 가져와 차이가 있는지 검사한다.
ScenTexture :Scene Texture Id = Custom Depth
입력
Color1 <- 현재픽셀이므로 입력 없음
Color2 <- V1
Color3 <- V2
Color4 <- V3
Color5 <- V4
깊이차 계산 : Subtract , Add
Alpha = (( ((Color1 - Color2) + (Color1 - Color3)) + ((Color1 - Color4) +(Color1 - Color5)) ) / -100 ) -1
Alpha -> Clamp(Min=0)(Max=1)
Lerp
Linear Interpolate
A = SceneTexture : Scene Texture Id = PostProcessInput0
B = VectorParameter -> MakeFloat4
Alpha
캐릭터 블루프린트
카메라가 바라보는 위치의 오브젝트만 Custom Depth 활성화하기
오브젝트 타입 : static mesh component 레퍼런스 변수 생성
BeginPlay -> Set Timer by Function Name : 0.1초 간격 Trace 함수 호출
LineTraceByChannel
Trace -> LineTraceByChannel
Start : Camera -> GetWorldLocation
End : Camera->GetWorldLocation->Break Transform : Rotation -> Get Forward Vector -> * 10000 + Start
LineTraceByChannel Return Value 를 Branch
LineTraceByChannel Out Hit 구조체 중 HitComponent 를 static mesh component 로 형 변환
레버런스 변수에 해당 콤포넌트 저장
Set Render Custom Depth 함수 실행해 해당 메쉬의 bRenderCustomDepth 속성을 활성화
기존 메쉬는 bRenderCustomDepth를 해제 해줘야 함.
레벨에 Post Process Volume 을 배치
디테일 항목에서
Rendering Features
Post Process Materials
작성한 매터리얼 추가
Post Process Volume Settings
Unbound 체크
'프로그래밍 > Unreal' 카테고리의 다른 글
[UE4] 폰트 (0) | 2017.09.26 |
---|---|
[UE4] C++ 에셋, 오브젝트 레퍼런싱/객체생성 (1) | 2017.09.25 |
[UE4] CSV 파일 (0) | 2017.09.24 |
[UE4] unreal delegate (0) | 2017.09.24 |
[UE4] 마우스 입력 (0) | 2017.09.17 |
[UE4] 아웃라인 : 스텐실 (0) | 2017.09.16 |
[UE4] 언리얼 기본 예제 분석 (0) | 2017.09.13 |
[UE4] Line Trace (0) | 2017.09.12 |
[UE4] 액터 (0) | 2017.09.12 |
[UE4] C++ 기본 사항 노트 (0) | 2017.09.06 |