18
유니티 고급 과정 1. 3차원 렌더링, 컴퓨터 그래픽스 - 삼각형 - 메쉬 2. 유니티에서 메쉬를 표시하는 방법 - 메쉬 사용 - 삼각형 직접 그리기 3. 물리 표현하기 - InteractiveCloth - 강체(RigidBody) 4. 쉐이더(Shader) - 가장 간단한 쉐이더 작성하기 Kiyoung Moon(문기영)

유니티 고급 과정 -3-

Embed Size (px)

Citation preview

Page 1: 유니티 고급 과정 -3-

유니티고급과정1. 3차원렌더링, 컴퓨터그래픽스- 삼각형- 메쉬2. 유니티에서메쉬를표시하는방법- 메쉬사용- 삼각형직접그리기3. 물리표현하기- InteractiveCloth

- 강체(RigidBody)

4. 쉐이더(Shader)

- 가장간단한쉐이더작성하기

Kiyoung Moon(문기영)

Page 2: 유니티 고급 과정 -3-

3차원렌더링, 컴퓨터그래픽스

컴퓨터가화면을표시하기위해사용하는방법은점하나를찍는작업이다.

내부적으로 3차원으로표현되는물체가있더라도최종적으로화면에나타날때는 2차원으로변환된다.

이러한과정을뷰변환, 투영변환이라고하는데그자세한내용은참고문헌을참고할것.

Page 3: 유니티 고급 과정 -3-

삼각형(Triangle)

삼각형은면을이룰수있는가장간단한도형이다.

점 3개로정의할수있고면을구성할수있다.

최근의모든그래픽카드는폴리곤을구성할때삼각형을기본단위로사용한다. 즉, 삼각형만그릴수있다면 3차원컴퓨터그래픽을구현할수있다.

Page 4: 유니티 고급 과정 -3-

삼각형의정점을표현하는데순서가중요한가?

앞서살펴본삼각형을구성하기위해 v0, v1, v2가필요했다. 정점을나열할때는그순서가중요한데그이유는순서에따라화면에보이거나안보일수있기때문이다.

% 여기서간단한질문유니티는왼손좌표계일까? 오른손좌표계일까? %

카메라는물체를볼수있다고판단하기위해평면의수직벡터(노말벡터)가카메라를바라보는방향에있는지검사한다. 만일평면의수직벡터가뒤쪽을향하면면을화면에나타내지않는다.

Page 5: 유니티 고급 과정 -3-

삼각형이보인다.

Page 6: 유니티 고급 과정 -3-
Page 7: 유니티 고급 과정 -3-

카메라를뒤쪽으로이동하면삼각형이더이상보이지않는다.

Page 8: 유니티 고급 과정 -3-

정점 v0, v1, v2의순서를보자.

Page 9: 유니티 고급 과정 -3-

a = v1-v0

b = v2-v0

a와 b벡터를얻고 a x b (외적)

을하면방향이어디로향하는가?

왼손좌표계를썼을때와오른손좌표계를썼을때그방향이어떻게결정되는가?

Page 10: 유니티 고급 과정 -3-

그래서왼손, 오른손이중요하다.

Page 11: 유니티 고급 과정 -3-

메쉬(Mesh)

메쉬란삼각형으로이루어진폴리곤을말한다.

오른쪽이미지는 VirtualFighter5의캐릭터가어떻게표현되는지잘보여주고있다.

Page 12: 유니티 고급 과정 -3-

메쉬사용

예제> renderingMesh

Page 13: 유니티 고급 과정 -3-

삼각형직접그리기

유니티에서제공하는기능을이용하지않고삼각형을그릴수있다.

삼각형을그릴수있다면다른모든것을그릴수있다는뜻!

즉, 자체엔진에서사용하던방식대로유니티를이용할수있다.

Page 14: 유니티 고급 과정 -3-

삼각형그리기예제> renderingTriangle

삼각형을그리는순서가중요하다!

Page 15: 유니티 고급 과정 -3-

물리표현하기왜필요한가? 게이머는사실적인장면들을원하고우리는만들어야하기때문.

물리표현을위해물리학을공부해야하는가?

컴퓨터에서표현하는물리세계는현실세계와같지않다.

유니티는물리를위해 PhysX를미들웨어로사용하고있다. 물리시스템을다시작성할필요는없다. 하지만유니티에서제공하는것외에없는기능을만들어야할필요도많다.

Page 16: 유니티 고급 과정 -3-

천표현하기InteractiveCloth사용

예> renderingInteractiveCloth

Page 17: 유니티 고급 과정 -3-

강체(RigidBody)

예>

Page 18: 유니티 고급 과정 -3-

쉐이더(Shader)

유니티에서제공하는 Built-in 쉐이더다운로드http://unity3d.com/unity/download/archive/