카테고리 없음

56_TerrainBrush ~ 57_TerrainLine

컴맹학자 2021. 10. 27. 22:32
728x90

쉐이더 파일


Framework

TerrainEditor -> Editor

TerrainEditor -> Brush


실행

56

 

57

 

위에 올려줌 00_Terrain 사용하면 57번은 영상과 다르게 나오는데 

(5)이라고 주석 부분에 내용을 float thick = saturate(min(pixel.x, pixel.y) - TerrainLine.Thickness); 수정


보충

57은 딱히 사용해도 되고 안해도 상관 없음 지형에다 선을 그리기 위한 용도

 

56_TerrainBrush

더보기
56_Terrain 각각 클래스 목적
1. Editor클래스 Png파일을 선택해서 dds파일로 heightmap 만들고 지형 조절 다해보는 종합 클래스
2. Terrain클래스 heightMap적용과 Splatting 할 수 있게 지형 관련 클래스
3. Brush클래스 Terrain를 마음대로 색상 칠하거나 지형 높이 조절

핵심
1. Terrain에 있는 Leyer의 기능은 맵을 섞어서(Splatting) 그릴수 있게 해주는 클래스
2. Leyer 갯수 늘리면 BaseMap에 색상을 섞음

중요
Splatting기술은 단순히 지형에만 아닌 모델에서도 사용 할 수 있다

 

 

57_TerrainLine

더보기

내용
지형에 선을 그려주는데 왼쪽 하단 정점 기준으로 'ㄴ' 형태로 모여서 Grid 형태로 그림

핵심
Perspective(원근투영) 방식으로 카메라를 비춰지면 범위 밖에 있는 선들이 깨진다.
문제를 해결 하기 위해서 fwidth 함수를 사용 하여 맞춘다 

함수
fwidth (PS 쉐이더 영역에서만 사용)
사용 목적 : 지면에 Grid 선을 그릴때 화면과 카메라 투영 비율을 맞추는 함수
사용시 변화량은 네모의 기준이 변화량이 0에 가깝고 멀어질수록 변화량이 커진다
x축은 카메라 기준 중심부터 좌우로 멀어지면 변화량이 많고
y축은 전방 즉 z축이 크면 변화량이 많다 

 

ddx만 적용한 렌더링 중점에 가까우면 어둡고 멀어지면 변화량이 많아서 색상이 빨강색이 됨


frac
사용 목적 : 일정 거리(단위)마다 반복적으로 무언가 그릴때 
사용시 정수값만 때서 소수만 표현