SlideShare a Scribd company logo
유니티 고급 과정
1. 3차원 렌더링, 컴퓨터 그래픽스
- 삼각형
- 메쉬
2. 유니티에서 메쉬를 표시하는 방법
- 메쉬 사용
- 삼각형 직접 그리기
3. 물리 표현하기
- InteractiveCloth
- 강체(RigidBody)
4. 쉐이더(Shader)
- 가장 간단한 쉐이더 작성하기
Kiyoung Moon(문기영)
3차원 렌더링, 컴퓨터 그래픽스
컴퓨터가 화면을 표시하기 위해 사용하는 방법은 점 하나를 찍는 작업이다.
내부적으로 3차원으로 표현되는 물체가 있더라도 최종적으로 화면에 나타날
때는 2차원으로 변환된다.
이러한 과정을 뷰 변환, 투영 변환이라고 하는데 그 자세한 내용은 참고 문헌을
참고할 것.
삼각형(Triangle)
삼각형은 면을 이룰 수 있는 가장 간단한 도형이다.
점 3개로 정의할 수 있고 면을 구성할 수 있다.
최근의 모든 그래픽 카드는 폴리곤을 구성할 때 삼각형을 기본 단위로 사용한
다. 즉, 삼각형만 그릴 수 있다면 3차원 컴퓨터 그래픽을 구현할 수 있다.
삼각형의 정점을 표현하는데 순서가 중요한가?
앞서 살펴본 삼각형을 구성하기 위해 v0, v1, v2가 필요했다. 정점을 나열 할 때
는 그 순서가 중요한데 그 이유는 순서에 따라 화면에 보이거나 안보일 수 있
기 때문이다.
% 여기서 간단한 질문 유니티는 왼손 좌표계일까? 오른손 좌표계일까? %
카메라는 물체를 볼 수 있다고 판단하기 위해 평면의 수직 벡터(노말 벡터)가
카메라를 바라보는 방향에 있는지 검사한다. 만일 평면의 수직 벡터가 뒤쪽
을 향하면 면을 화면에 나타내지 않는다.
삼각형이 보인다.
카메라를 뒤쪽으로 이동하면 삼각형이
더 이상 보이지 않는다.
정점 v0, v1, v2의 순서를 보자.
a = v1-v0
b = v2-v0
a와 b벡터를 얻고 a x b (외적)
을 하면 방향이 어디로 향하는가?
왼손 좌표계를 썼을 때와 오른손
좌표계를 썼을 때 그 방향이 어떻
게 결정 되는가?
그래서 왼손, 오른손이 중요하다.
메쉬(Mesh)
메쉬란 삼각형으로 이루어진 폴리곤을 말한다.
오른쪽 이미지는 VirtualFighter5의 캐릭터가
어떻게 표현되는지 잘 보여주고 있다.
메쉬 사용
예제> renderingMesh
삼각형 직접 그리기
유니티에서 제공하는 기능을 이용하지 않고 삼각형을 그릴 수 있다.
삼각형을 그릴 수 있다면 다른 모든 것을 그릴 수 있다는 뜻!
즉, 자체 엔진에서 사용하던 방식대로 유니티를 이용할 수 있다.
삼각형 그리기
예제> renderingTriangle
삼각형을 그리는 순서가 중요하다!
물리 표현하기
왜 필요한가? 게이머는 사실적인 장면들을 원하고 우리는 만들어야 하기 때문.
물리 표현을 위해 물리학을 공부해야 하는가?
컴퓨터에서 표현하는 물리 세계는 현실 세계와 같지 않다.
유니티는 물리를 위해 PhysX를 미들웨어로 사용하고 있다. 물리 시스템을 다시
작성할 필요는 없다. 하지만 유니티에서 제공하는 것 외에 없는 기능을 만들
어야 할 필요도 많다.
천 표현하기
InteractiveCloth사용
예> renderingInteractiveCloth
강체(RigidBody)
예>
쉐이더(Shader)
유니티에서 제공하는 Built-in 쉐이더 다운로드
http://unity3d.com/unity/download/archive/

More Related Content

Viewers also liked

유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-
Kiyoung Moon
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
Kiyoung Moon
 
셰이더 합성
셰이더 합성셰이더 합성
셰이더 합성
JiUng Choi
 
해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4
Haesun Park
 
5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기
GukHwan Ji
 
Digipak research
Digipak researchDigipak research
Digipak research
Anya Wagstaff
 
VEHICLES SOSTENIBLES
VEHICLES SOSTENIBLESVEHICLES SOSTENIBLES
VEHICLES SOSTENIBLES
Dani Florido Guerra
 
Typography analysis
Typography analysisTypography analysis
Typography analysis
09froudeden
 
University of Limerick Library supports first year student transition
University of Limerick Library supports first year student transition University of Limerick Library supports first year student transition
University of Limerick Library supports first year student transition
Glucksman Library, University of Limerick
 
2015 Investors Survey Final
2015 Investors Survey Final2015 Investors Survey Final
2015 Investors Survey FinalDavid Larcker
 
It 090210116057
It 090210116057It 090210116057
It 090210116057
yogesh767618
 
Irb Advisors Intro
Irb Advisors IntroIrb Advisors Intro
Irb Advisors Intro
irbadmin
 
Some thoughts on 2 d 3-d information processing
Some thoughts on 2 d 3-d information processingSome thoughts on 2 d 3-d information processing
Some thoughts on 2 d 3-d information processing
CurvSurf
 
Financial Regulation
Financial Regulation Financial Regulation
Financial Regulation Evan Rassman
 
Salsa mutiarani
Salsa mutiaraniSalsa mutiarani
Salsa mutiarani
panglimaagus
 
Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...
Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...
Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...
NET University, s.r.o.
 

Viewers also liked (18)

유니티 고급 과정 -1-
유니티 고급 과정 -1-유니티 고급 과정 -1-
유니티 고급 과정 -1-
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
셰이더 합성
셰이더 합성셰이더 합성
셰이더 합성
 
해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4해커에게 전해들은 머신러닝 #4
해커에게 전해들은 머신러닝 #4
 
5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기5시간만에 유니티로 카드보드용 VR게임 만들기
5시간만에 유니티로 카드보드용 VR게임 만들기
 
Digipak research
Digipak researchDigipak research
Digipak research
 
VEHICLES SOSTENIBLES
VEHICLES SOSTENIBLESVEHICLES SOSTENIBLES
VEHICLES SOSTENIBLES
 
Typography analysis
Typography analysisTypography analysis
Typography analysis
 
IADCHernandez2001
IADCHernandez2001IADCHernandez2001
IADCHernandez2001
 
University of Limerick Library supports first year student transition
University of Limerick Library supports first year student transition University of Limerick Library supports first year student transition
University of Limerick Library supports first year student transition
 
2015 Investors Survey Final
2015 Investors Survey Final2015 Investors Survey Final
2015 Investors Survey Final
 
It 090210116057
It 090210116057It 090210116057
It 090210116057
 
UL LibGuides
UL LibGuidesUL LibGuides
UL LibGuides
 
Irb Advisors Intro
Irb Advisors IntroIrb Advisors Intro
Irb Advisors Intro
 
Some thoughts on 2 d 3-d information processing
Some thoughts on 2 d 3-d information processingSome thoughts on 2 d 3-d information processing
Some thoughts on 2 d 3-d information processing
 
Financial Regulation
Financial Regulation Financial Regulation
Financial Regulation
 
Salsa mutiarani
Salsa mutiaraniSalsa mutiarani
Salsa mutiarani
 
Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...
Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...
Jak e-learning pomůže naší škole? Mnohostranné využití platfotmy pro řízení v...
 

Similar to 유니티 고급 과정 -3-

셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습
Jungsoo Park
 
파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기
Devgear
 
[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑
MoonLightMS
 
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Dong Chan Shin
 
Unity cookbook 2
Unity cookbook 2Unity cookbook 2
Unity cookbook 2
Jihun Soh
 
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
Sukwoo Lee
 
3D Modeling
3D Modeling3D Modeling
3D Modeling
Jung Hyojung
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2MinGeun Park
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
진상 문
 
스크래치로 시작하는 코딩
스크래치로 시작하는 코딩스크래치로 시작하는 코딩
스크래치로 시작하는 코딩
Chiwon Song
 
3D 게임 그래픽스의 이해
3D 게임 그래픽스의 이해3D 게임 그래픽스의 이해
3D 게임 그래픽스의 이해
ByungChun2
 
마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠
동환 김
 
스키닝 애니메이션
스키닝 애니메이션스키닝 애니메이션
스키닝 애니메이션
sung suk seo
 
3ds max Standard model
3ds max Standard model3ds max Standard model
3ds max Standard model
seoultech,Design, Jung Hoe Jun
 
안드로이드스터디 7
안드로이드스터디 7안드로이드스터디 7
안드로이드스터디 7jangpd007
 
캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법
지영 신
 
Unity cookbook 9
Unity cookbook 9Unity cookbook 9
Unity cookbook 9
Jihun Soh
 

Similar to 유니티 고급 과정 -3- (18)

셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습
 
파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기파이어몽키 3D 애플리케이션 만들기
파이어몽키 3D 애플리케이션 만들기
 
[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑[0918 박민수] 범프 매핑
[0918 박민수] 범프 매핑
 
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
Project anarchy로 3d 게임 만들기 part_3_움직여라 움직여
 
Unity cookbook 2
Unity cookbook 2Unity cookbook 2
Unity cookbook 2
 
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
2017 12 09_데브루키_리얼타임 렌더링_입문편(3차원 그래픽스[저자 : 한정현] 참조)
 
3D Modeling
3D Modeling3D Modeling
3D Modeling
 
[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2[박민근] 3 d렌더링 옵티마이징_2
[박민근] 3 d렌더링 옵티마이징_2
 
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
Project Anarchy(Vision Engine)으로 게임 툴 만들기! part2
 
스크래치로 시작하는 코딩
스크래치로 시작하는 코딩스크래치로 시작하는 코딩
스크래치로 시작하는 코딩
 
3D 게임 그래픽스의 이해
3D 게임 그래픽스의 이해3D 게임 그래픽스의 이해
3D 게임 그래픽스의 이해
 
마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠
 
스키닝 애니메이션
스키닝 애니메이션스키닝 애니메이션
스키닝 애니메이션
 
3ds max Standard model
3ds max Standard model3ds max Standard model
3ds max Standard model
 
안드로이드스터디 7
안드로이드스터디 7안드로이드스터디 7
안드로이드스터디 7
 
캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법캐주얼 게임 배경에서 Vertex Color 활용법
캐주얼 게임 배경에서 Vertex Color 활용법
 
Unity cookbook 9
Unity cookbook 9Unity cookbook 9
Unity cookbook 9
 
그림자 이야기
그림자 이야기그림자 이야기
그림자 이야기
 

More from Kiyoung Moon

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithm
Kiyoung Moon
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
Kiyoung Moon
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Kiyoung Moon
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game Engine
Kiyoung Moon
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
Kiyoung Moon
 
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
Kiyoung Moon
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
Kiyoung Moon
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
Kiyoung Moon
 

More from Kiyoung Moon (8)

Image generation compression using genetic algorithm
Image generation compression using genetic algorithmImage generation compression using genetic algorithm
Image generation compression using genetic algorithm
 
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
유니티 + Nodejs를 활용한 멀티플레이어 게임 개발하기
 
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
Debugging with visual studio. 비주얼 스튜디오를 활용한 디버깅
 
Cross-Platform Game Engine
Cross-Platform Game EngineCross-Platform Game Engine
Cross-Platform Game Engine
 
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법코히런트 Gt(coherent gt) 통합 및 간단한 사용법
코히런트 Gt(coherent gt) 통합 및 간단한 사용법
 
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
스케일폼(Scaleform) ue4에 통합 및 간단한 사용법
 
버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제버그 트래킹 시스템 Mantis의 사용 그리고 예제
버그 트래킹 시스템 Mantis의 사용 그리고 예제
 
유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑유니티로 해보는 게임 프로토타이핑
유니티로 해보는 게임 프로토타이핑
 

유니티 고급 과정 -3-

  • 1. 유니티 고급 과정 1. 3차원 렌더링, 컴퓨터 그래픽스 - 삼각형 - 메쉬 2. 유니티에서 메쉬를 표시하는 방법 - 메쉬 사용 - 삼각형 직접 그리기 3. 물리 표현하기 - InteractiveCloth - 강체(RigidBody) 4. 쉐이더(Shader) - 가장 간단한 쉐이더 작성하기 Kiyoung Moon(문기영)
  • 2. 3차원 렌더링, 컴퓨터 그래픽스 컴퓨터가 화면을 표시하기 위해 사용하는 방법은 점 하나를 찍는 작업이다. 내부적으로 3차원으로 표현되는 물체가 있더라도 최종적으로 화면에 나타날 때는 2차원으로 변환된다. 이러한 과정을 뷰 변환, 투영 변환이라고 하는데 그 자세한 내용은 참고 문헌을 참고할 것.
  • 3. 삼각형(Triangle) 삼각형은 면을 이룰 수 있는 가장 간단한 도형이다. 점 3개로 정의할 수 있고 면을 구성할 수 있다. 최근의 모든 그래픽 카드는 폴리곤을 구성할 때 삼각형을 기본 단위로 사용한 다. 즉, 삼각형만 그릴 수 있다면 3차원 컴퓨터 그래픽을 구현할 수 있다.
  • 4. 삼각형의 정점을 표현하는데 순서가 중요한가? 앞서 살펴본 삼각형을 구성하기 위해 v0, v1, v2가 필요했다. 정점을 나열 할 때 는 그 순서가 중요한데 그 이유는 순서에 따라 화면에 보이거나 안보일 수 있 기 때문이다. % 여기서 간단한 질문 유니티는 왼손 좌표계일까? 오른손 좌표계일까? % 카메라는 물체를 볼 수 있다고 판단하기 위해 평면의 수직 벡터(노말 벡터)가 카메라를 바라보는 방향에 있는지 검사한다. 만일 평면의 수직 벡터가 뒤쪽 을 향하면 면을 화면에 나타내지 않는다.
  • 6.
  • 7. 카메라를 뒤쪽으로 이동하면 삼각형이 더 이상 보이지 않는다.
  • 8. 정점 v0, v1, v2의 순서를 보자.
  • 9. a = v1-v0 b = v2-v0 a와 b벡터를 얻고 a x b (외적) 을 하면 방향이 어디로 향하는가? 왼손 좌표계를 썼을 때와 오른손 좌표계를 썼을 때 그 방향이 어떻 게 결정 되는가?
  • 11. 메쉬(Mesh) 메쉬란 삼각형으로 이루어진 폴리곤을 말한다. 오른쪽 이미지는 VirtualFighter5의 캐릭터가 어떻게 표현되는지 잘 보여주고 있다.
  • 13. 삼각형 직접 그리기 유니티에서 제공하는 기능을 이용하지 않고 삼각형을 그릴 수 있다. 삼각형을 그릴 수 있다면 다른 모든 것을 그릴 수 있다는 뜻! 즉, 자체 엔진에서 사용하던 방식대로 유니티를 이용할 수 있다.
  • 15. 물리 표현하기 왜 필요한가? 게이머는 사실적인 장면들을 원하고 우리는 만들어야 하기 때문. 물리 표현을 위해 물리학을 공부해야 하는가? 컴퓨터에서 표현하는 물리 세계는 현실 세계와 같지 않다. 유니티는 물리를 위해 PhysX를 미들웨어로 사용하고 있다. 물리 시스템을 다시 작성할 필요는 없다. 하지만 유니티에서 제공하는 것 외에 없는 기능을 만들 어야 할 필요도 많다.
  • 18. 쉐이더(Shader) 유니티에서 제공하는 Built-in 쉐이더 다운로드 http://unity3d.com/unity/download/archive/