WannaFlySomeDay 22

[SG] Portal Shader

이 쉐이더는 texture를 원형으로(주로) 뒤섞어 회전시킨다. 이런 효과를 위해 만들어 놓은 노드를 알아 둘 필요가 있다. Twirl 노드가 이런 나선형 결과를 반환한다. 아래는 unity doc에 관련 코드다. 따라서 이 노드를 통해 휘몰아치는 유형의 2개의 float를 얻을 수 있고, 이를 주로 texture u, v coord로 사용한다. 그렇다면 자연스럽게 도는 분홍빛 texture는 어디서 가져오는가. 여러 가지 방법이 있겠지만, voronoi node를 사용하여 구현해 본다. 아래는 twril과 voronoi를 연결하기 전과 후의 image 이다. 이미 벌써 그럴싸 해 졌다. Twirl의 offset 인자를 조절하면 회전을 시킬 수 있고, 실시간 회전을 하기 위해 time node를 사용한다..

[SG] Outline Shader

예전의 cartoon 효과를 내기 위해 많이 사용한 기본 shader 이다. 예시 이미지를 보면, 기본 material이 입혀지고, 그 위에 edge가 있는것을 알 수 있다. 따라서 해당 edge를 그리는 방법을 찾아 본다. 가장 간단한 방법은 정접을 조금 확대하고 back face방향으로 어둡게 그리는 것이다. object를 그냥 확대하면, 로컬 좌표 중심 기준으로 계속 커지게 되므로, 단지 정점의 normal 방향으로 크기를 키운다. 이 점을 유의하여 만든다. 노멀 방향으로 tickness만큼 그게 한후, 원래 위치와 더해 새로운 외곽위치를 찾는다. 그 값을 vertext위치로 output 한다. 전면 제거는 여러 방법이 있다. 아래와 같이 Is Front Face노드를 사용하여 알파채널에 연결해도 ..

[SG] Rock Moss Shader

Object에 texturing을 하면서 두 texture를 덧붙힌다. 이때 상부에 이끼 texture가 입혀 지도록 한다. 포인트 1 - 두 texture의 결합. Lerp node를 사용하여 두개의 texture를 결합한다. 포인트 2 - 어느 지점으로 결합(blend) 해야 하는가. 월드의 위쪽으로만(혹은 의도하는 방향으로만) 이끼 texture가 입혀지면 될 것이다. 이것은 어떻게 구하는가. 우선 normal 벡터가 필요하다. 해당 vertex방향을 얻기 위함이다. 이를 위해 벡터 연산 내적(Dot product)을 사용한다. dot product는 cos에 대해 수식을 정규화 할 수 있으므로, 0-90 에서는 양수 90-270까지는 음수 270-360 까지는 다수 양수가 된다. (또한 특정 각도..

[08.24.21] Timline Animation Transitioner.

Unity에서 animation system은 구조적으로 참 잘 되어 있다. 블렌딩은 말 할 것도 없다. 여러 object에게 다양한 animation을 데이터 화 한 TimeLine이라는 것도 있다. 이것또한 직관적이고 참 잘 되어 있다. 타임 라인 안에서 특정 객체의 animation과 그 보간 처리, 각종 속성 및, 트리거 함수 설정 등 매우 잘 만들어져 있다. 다만 최근에 조금 아쉽다고 느낀 건 timeline이 종료되고 기본 animation으로 복귀할때, 혹은 다른 timeline간으로 전환할때 animation 보간이 부족하다고 느꼈다. (2019.2.21f 기준 - 딱히 어려운 기능이 아닌 바, 최신 버젼에서는 수정되었을 가능성도 있다.) 캐릭터 animation의 경우, 아래와 같이 바로..

[08.12.21] 현재까지의 경과.

현재 하고 있는 것. ESL class Watching News at all possible times Communicating with co-workers 쓰고 보니 별거 없긴 하네. 어쨌든 1년 반 가량이 지난 현재, 리스닝은 많이 늘었다고 믿는다. 안들리는 건 여전하지만, 들리는 부분이 훨씬 또렸해 졌고 안들리는 부분을 예전엔 특정하기 조차 힘들었지만, 지금은 특정이 되는 느낌. 따라서 회사에서도 대화 참여가 조금 더 쉬워졌다. 하지만 조리있게 말하는 것은 여전히 어렵다. 의외로 스몰 토크도 어렵다. 아는 것을 영어로 말하게 되기보다는, 영어라는 카테고리 안에서 다음 대화를 선택하게 되는 느낌. 따라서 아는 만큼 말하게 되고 이게 매우 적다 여전히. 말하는 훈련, 현재 이 방향의 훈련이 분명히 많이..

Have or Eat

영어가 관습에 익숙하지 않은 외국에게는 배우기 어렵다는 관련 Youtube 영상을 보다 아래와 같이 말하는 외국 교수를 보았다. "우리 미국인들은 have dinner 라고 하지 eat dinner. 라고 표현하지 않아요. 이상하거든요." 왜? eat은 먹는다는 표현이 아닌가? 뭔가 저급한 뜻이 함축되어 있나? 그렇지는 않다. 하지만... native speaker들에게 have와 eat는 약간 다른 표현이다. 한국어로는 동일히 '먹는다'라는 동사지만 말이다. 오늘 ESL class시간에 비슷한 표현이 나온김에 선생님에게 물어보았다. 선생님 왈.... eat - 먹는다(씹고 삼키는 등의)는 물리적 관점에 포커싱된 표현. have - 먹는 행위를 포함한 경험에 포커싱된 표현. 그런 이유로 누군가를 초대할때..

can / be able to

한국말로는 중첩적 의미로 사용하지만 영어는 다른말로 구분해서 쓰고 있는 단어/표현이 몇 된다. 그 대표적인 예 중의 하나가 아닐까 싶다. 할수 있다. can ? be able to ? 더 정확하게 한국말로 다시 표현하면, (누가 원한다면 그것을) 해 줄 수 있다. => can (내가 할 능력이 되어서) 할 수 있다. => be able to 따라서 Can you play the baseball ? => (제안/부탁 or 능력 ) 야구 해줄 수 있어 ? Are you able to play the baseball ? => 너 야구 할줄 알어? (상대의 능력에 제한된 확실한 질문) 이정도 의미로 자주 구분해서 쓰는 것 같다.