이창희(cagetu79@gmail.com) Billboard 이창희(cagetu79@gmail.com) copyright cagetu(cagetu79@gmail.com)

Slides:



Advertisements
Similar presentations
강의 내용 : 카메라 DirectX 9 을 이용한 게임 개발 기본 코스. 목 차 카메라 요구사항 구현.
Advertisements

수학을 통해 배우는 IT 과학의 세계 전북대: 한상언 교수.
1차 발표: Control Artist 학번: 이름: 서민성.
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
3D Project Cloud Warcraft 박 종 선.
2d 게임 프로그래밍 기말 프로젝트 1차 발표 김대현.
공차 및 끼워맞춤.
연결리스트(linked list).
사원수 (Quaternion)
1-1 일과 일률.
Windows Server 장. 사고를 대비한 데이터 백업.
openGL Project 제안서 - 해상 전투
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
3차원 객체 모델링.
스크래치 언어 이해 스크래치 이용법 습득 고양이가 말을 하며 움직이는 예제 작성
소마큐브로 3*3*3(정육면체)만드는 방법 탐구하기
벡터의 공간 이문현.
CSS2(Cascading Style Sheets)
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
뇌를 자극하는 Windows Server 2012 R2
TFT-LCD 구조 동작원리 응용분야.
포스트잇으로 노란 나비 만들기.
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
Clipping 이진학.
2D Game Programming Project 1
4장 기하학적 객체와 변환 - 기하 1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용
COMPUTER ANIMATION (Key Frame Animation)
2 자동화와 로봇 2 기계 운동의 원리 기계의 이해 기계요소 기계의 동력 전달 과정 금성출판사.
OpenGL (spaceship movement) PROJECT 2012.
인체 대 탐험 3D GAME ENGINE 게임 공학과 이성진.
테셀레이션(tessellation) 테셀레이션(tessellation) 이란 마루나 욕실 바닥에 깔려 있는 타일처럼 어떠한 틈이나 포개짐이 없이 평면이나 공간을 도형으로 완벽하게 덮는 것을 말한다.
P 등속 직선 운동 생각열기 – 자동차를 타고 고속도로를 달릴 때, 속력계 바늘이 일정한 눈금을 가리키며 움직이지 않을 때가 있다. 이 때 자동차의 속력은 어떠할까? ( 속력이 일정하다 .)
다면체 다면체 다면체: 다각형인 면만으로 둘러싸인 입체도 형 면: 다면체를 둘러싸고 있는 다각형
위치 에너지(2) 들어 올리기만 해도 에너지가 생겨. 탄성력에 의한 위치 에너지.
Stepping motor로 구현하고자하는 기능
Tween Animation 천승현.
2D 게임프로그래밍 프로젝트 스틱 파이터 Stick Fighter 박하은.
CAD 실습 2013년 2학기.
대칭과 전위 3차원 대칭과 32 점군 정족과 정계 결정면의 명칭 3차원 격자와 230 공간군 결정형 결정의 투영
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
균형이진탐색트리 이진 탐색(binary search)과 이진 탐색 트리(binary search tree)와의 차이점
1. 단면도 그리기 (1) 단면도의 정의 물체의 외형에서 보이지 않는 부분은 숨은선으로 그리지만, 필요한
Real time Interaction HyoungSeok Kim
Chapter 1 단위, 물리량, 벡터.
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
Chapter 1 단위, 물리량, 벡터.
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
애니메이션 제작 기법 2D 애니메이션 3D 애니메이션 임희영.
1. 정투상법 정투상법 정투상도 (1) 정투상의 원리
가둬라 버블버블! 터트려라 팡팡!.
웹 사이트 분석과 설계 [디자인 리서치] 학번: 이름 : 홍지애.
2D 게임 프로그래밍 프로젝트 박태언.
7장 원운동과 중력의 법칙.
2D 게임 프로그래밍 제안서 김보명.
9 브라우저 객체 모델.
통계학 R을 이용한 분석 제 2 장 자료의 정리.
2D Game Programming 1차 발표 배강산.
김덕용 게임 엔진론 Project 2차발표.
Power Point 예제 디자인 적용 (서식) - (디자인적용) - (원하는 디자인 선택)
: 3차원에서 입자의 운동 방정식 제일 간단한 경우는 위치만의 함수 : 시간, 위치, 위치의 시간미분 의 함수
플래시MX2004 디자인스쿨 Chapter 11. 플래시와 사운드.
7 생성자 함수.
Ch. 11 각운동량(Angular Momentum)
Lecture #6 제 4 장. 기하학적 객체와 변환 (1).
CCISS 어레이 형식 centos7 설치방법
타이머를 시작하려면 슬라이드 쇼 메뉴에서 쇼 보기를 클릭하십시오.
BoardGame 보드게임 따라가기.
Presentation transcript:

이창희(cagetu79@gmail.com) Billboard 이창희(cagetu79@gmail.com) copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) Billboard? 빌보드의 가장 큰 특징은 카메라가 어느 방향에서 바라보아도 항상 카메라의 정면을 향하고 있다는 것 이펙트의 기초가 되는 파티클(Particle)이나, 게임에서 나무나 풀, 렌즈 플레어(Lens flare)등에 사용된다. copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) Billboard 빌보드란 간단하게 이야기하면, 항상 카메라를 바라보는 판때기를 의미한다. 즉, 카메라의 회전하는 방향대로 판때기를 카메라를 바라보도록 회전하면 된다. 화면 정렬 빌보드 축 정렬 빌보드 copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 구현 다각형의 방향을 지정하기 위해 표면 법선 벡터와 위쪽 방향(up vector)를 설정한다. 이 두 벡터만으로도 그 표면에 대해 서로 수직한 기저 벡터를 만들 수 있다. 이 두 벡터만 있으면 평면을 목표로 하는 방향으로 회전하는 회전 행렬을 구할 수 있다. 표면 벡터 n 과 상향 벡터 u는 보통 수직하지 않는다. 모든 빌보드 기법에서는 이 두 벡터 중 하나가 주어진 방향을 유지하기 위해 고정되는 벡터로서 사용되며, 이처럼 고정된 벡터에 수직한 다른 벡터를 만드는 과정은 항상 똑같다. copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) u 와 n을 이용해서, 평면의 우향 벡터 r을 만든다. 이 벡터를 정규화하면, 회전 행렬에 대한 서로 수직한 기저의 한 축으로 사용될 수 있다. n 이나 u 벡터 중에서 변경될 벡터는 고정된 벡터와 r을 외적한 결과에 따라 변경되는데, 이렇게 하면 양쪽 모두 수직인 벡터가 만들어진다. 특히, 법선 벡터 n이 고정되어 있을 경우, 변경할 축에 맞게, 새로운 상향 벡터 u’은 다음과 같이 구할 수 있다. copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) u’ = cross( n, r ) 만일, 상향 벡터가 고정되어 있다면, 새로운 법선 벡터 n’는 n’ = cross( r, u ) (풍경화에 나오는 나무들 같이 축에 정렬된 빌보드에서등…) 새로 만들어진 벡터는 정규화되고, 이 세 벡터들을 이용하여, 회전 행렬을 구한다. 이 행렬에 의해 적절하게 회전되도록, 중심을 앵커(원점) 위치로 옮겨준다. 그 다음에 평행 이동 행렬을 적용하여, 사변형의 앵커(원점)를 원하는 위치로 옮겨준다. 빌보드의 방향을 정의하기 위해 어떤 표면 법선 벡터와 상향 벡터를 사용할 것인지를 결정하는 것은 매우 중요한 일이다. copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 화면 정렬 빌보드 가장 단순한 형대의 빌보드 항상 화면과 평행하며, 고정된 상향 벡터를 가진다. n 은 관측 평면 법선 벡터의 역벡터가 된다. 즉, 월드 공간에서 카메라가 바라보는 방향 벡터의 역벡터(-view)이다. u 는 카메라 자체로부터 설정된 것으로서 카메라의 상향 벡터 방향을 정의. r은 cross( n, u ) copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 축 빌보드 주요 원리는 텍스쳐를 입힌 객체가 관측자와 정면으로 마주하지 않는다는 것이다. 대신에 보편 공간의 축을 중심으로 회전시킬 수 있고, 허용하는 범위 내에서 최대한 관측자쪽으로 향하도록 조정할 수 있다. 화면 정렬 빌보드가 구형으로 대칭된 물체들을 표현하는 데 적합한 것처럼 축 빌보드는 원통 모양의 대칭성을 가지는 객체를 표현하는 데 유용하다. 예를 들어, 레이저 빔의 모양을 축을 중심으로 어느 각도에서 보아도 똑같이 보이기 때문에, 레이저 빔 효과는 축 빌보드로 랜더링 할 수 있다. copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 빌보드의 활용 실제로 게임을 만들다 보면 여러 가지 빌보드가 필요하다. 첫째로는 Yaw 방향으로만 회전하는 빌보드를 들 수 있겠다. 이러한 빌보들은 카메라가 위 아래로 움직였을 때 이 카메라를 바라보면 매우 우수워지는 물체에 많이 쓰이는데, 나무나 가로등 같은 것을 빌보드로 표현할 때 이런 빌보드를 사용한다. 일반적인 빌보드를 사용하면 정말 나무가 종이 한 장처럼 보이기 때문에 난감해 질 수 있기 때문이다. copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 활용 두 번째는 항상 위쪽을 바라보는 즉, 땅바닥에 붙어있는 빌보드를 들 수 있다. 이러한 빌보드는 보통 효과에 많이 쓰이게 된다. 바닥 위에서 나타나는 효과들에 많이 사용된다.  빌보드는 효과에 많이 쓰이게 되는데, 이는 직접 만들어진 메시보다 조작이 쉬워서 그렇다. 그렇기 때문에 u, v좌표를 바꿔서 애니메이션을 만든다거나, 빌보드를 축 방향으로 회전시킨 다거나, 빌보드를 축 방향으로 회전시킨다거나 또는 크기를 확대, 촉소시킴으로써 좀 더 멋진 효과를 만들어 낼 수 있다. 미사일의 연기를 빌보드로 만들 경우에는 텍스쳐가 애니메이션 되는 빌보드를 만들어서 미사일이 날아가는 궤적을 따라 일정간격으로 시간마다 빌보드를 생성하여 준다. 이때 파티클의 움직임을 추가하여 천천히 위로 움직이게 한다면, 빌보드는 천천히 텍스쳐 애니메이션 되면서 위로 올라 갈텐데 여러 장의 파티클이 연속적으로 나오게 되면, 미사일의 후미에서 나오는 연기처럼 표현할 수 있다. 이처럼 빌보드는 게임에서 효과를 만들 때나 많은 물체를 나타낼 때 많이 사용되며, 여러가지 방법으로 응용되곤 한다.  copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 기타 임포스터(Imposter) 렌즈 플레어(Lens Flare) 입자 시스템(Particle Systems) copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) 참고자료 http://blog.naver.com/sexychs/150005118777 Real-Time Rendering 2판 – 정보문화사 3D 게임 프로그래밍 – 김용준 저 copyright cagetu(cagetu79@gmail.com)

copyright cagetu(cagetu79@gmail.com) Q & A copyright cagetu(cagetu79@gmail.com)