Back Plate 에 맞게 Tracking이 된 카메라에 맞춰서 모델링을 제작했다.
모델링은 후디니에서 HeightFiled 노드로 큰 틀을 만들고, Soft transform으로 손으로 당겨서 디테일 부분은 맞췄다.
산불을 제작할 예정인데, 모델링을 제작하고 보니 카메라에 보이지 않는 뒷면들은 필요가 없어졌다.
처음엔 직접 Rasso로 뷰포트에서 드래그해서 지웠는데, 문제점이 많다.
1) 모델링이나 카메라가 변경될시, 다시 영역을 잡아줘야함
2) 내가 지운영역이 어디인지 정확하게 알수가 없다. = 후반에 수정 발생시 번거로워짐.
Dot product를 사용해서 카메라에 보이지 않는 면들을 지우면 카메라와 모델링이 변경되어도, 모델링과 카메라만 변경해주면 셋팅 그대로 사용 가능하다.
< 작업 시작 전 모델링 셋팅 >
Dot product 로 면을 지우기 전에, 산 모델링 섹션을 나누어서 진행했다.
main 산, serve 산들로 나누어서 작업을 진행했다.
이번 포스팅에서는 main 산으로 작업했다.
main 부분영역만 남기게 셋팅하기.
< Dot product 로 카메라에 안보이는 면 지우기 >
1) 필요한 정보 : 카메라 pivot 점의 위치값 (@P) , 모델링 각 포인트들의 포지션 위치값 (@P) , 모델링의 normal 값.
2) 카메라와 모델링의 거리 구하기
3) 카메라와 모델링의 거리 normalize 하기 (1의값으로 만들어주는것)
4) 카메라와 모델링의 거리 normalize 한 값으로 Dot product 진행하기.
5) Cd 값으로 Dot product 값 확인하기.
vector cam = point(1,"P",0);
vector mod = point(0,"P",@ptnum);
vector dir = cam - mod ;
vector dirN = normalize(dir);
vector dot = dot(@N,dirN);
@Cd = dot;
cam - mod 의 방향성으로
예상했던 대로, 카메라에서 정면이 보이는 부분은 밝고, 보이지 않는 면은 어둡게 만들었다.
mod - cam 의 방향성으로 (reverse 해서) 반대 방향으로 해서 사용해도 된다.
vector cam = point(1,"P",0);
vector mod = point(0,"P",@ptnum);
vector dir = mod - cam;
vector dirN = normalize(dir);
vector dot = dot(@N,dirN);
@Cd = dot;
mod - cam 의 방향성으로 (reverse 해서) 반대 방향으로 했을때 모습.
7) removepoint 로 카메라에 보이지 않는 영역 지우기
1. removepoint 로 지워보기
= 면이 너무 칼지게 끊어지는 영역이 거슬린다.
if (@Cd.r>0.1)
removepoint(0,@ptnum);
2. attribute transfer 로 면을 부드럽게 만든다음 blast로 지우기
2-1 ) subdivision 으로 기존 modeling 면 나누기
subdivision 나눈 모델링 : Cd 값 0
Dot product 한 모델링 Cd > 0.1 (==흰영역) 에만 Cd 값 레드값 적용시켜주기
2-2 ) Cd 값 attribute transfer 로 넘겨주기
옵션값 건들이면서 원하는 모양 만들어주기.
2-3 ) blast로 @Cd.x<.1 해서 빨간영역 지워주기
= 면이 얼마나 부드럽게 지워졌나의 차이이지, 두 방법중 어떤 방법을 사용해서 지우든 상관은 없다.
카메라로 본 모습