본문 바로가기

Game

(117)
4장 이벤트 주도적 프로그래밍 4장 이벤트 주도적 프로그래밍 1. 이벤트 - 유니티에서 게임 월드는 완전히 결정론적인 시스템으로서 유한한 수의 게임오브젝트를 담는 씬이고, 데카르트 3D 좌표계와 시간을 가진다. - 하나의 행동은 다른 행동을 수반하는 식으로 서로의 행동들은 중요환 관계를 맺고 있다. 이러한 연결이나 결합을 이벤트라고 부르는데, 각가의 개별적인 연결은 하나의 이벤트가 된다. 2. 이벤트 관리 - 이벤트 리스너(EventListener) : 자신이 발생시킨 이벤트를 포함한 어떤 이벤트가 발생하면 알기를 원하는 모든 오브젝트를 리스너(Listener:수신자)라고 부른다. - 이벤트 포스터(EventPoster) : 리스너와 반대로 오브젝트가 이벤트 발생을 알아차린 경우, 이 오브젝트는 다른 모든 리스너가 알 수 있게 이벤트..
1장 C# 복습 / 2장 디버깅 / 3장 싱글턴과 정적 멤버, 게임오브젝트와 월드 1장 C# 복습 1. C#을 선택하는 이유 - 각 언어들에 절대적인 우월함이나 부족함이 존재하지는 않는다. 모든 언어는 각각의 이점과 쓰임새가 있고, 유니티에서 사용되는 모든 언어는 게임을 만드는 데 있어 똑같이 쓸 만한 언어이다. - 개발자들이 유니티를 접할 때 C#을 선택하는 경우 기존에 만들어진 자료 대부분에 가장 손쉽게 접근할 수 있기 때문이다. - C#은 다른 분야의 애플리케이션 개발에 큰 영향력을 가지고 있는 관계로 대부분의 유니티 튜토리얼은 C#을 염두에 두고 만들어졌다. - C#은 유니티에서도 사용하는 닷넷 프레임워크의 역사와 함께한다. - C#은 게임 개발 분야에 큰 영향력을 지닌 C++과 가장 닮아있기도 하다. - C#을 배움으로써 현재의 게임 업계에서 유니티 프로그래머에게 요구하는 것..
unity Lambert & Blinn phong Lambert(램버트) / Blinn Phong(블린 퐁) 01: 유니티에 내장된 라이팅 구조 물리 기반 쉐이더 (Standard Shader - Metallic pass) struct SurfaceOutputStandard { fixed3 Albedo; // 반사율 (기본 색상 / 오브젝트의 텍스쳐) fixed3 Normal; // 법선 (반사각을 결정하는 면의 방향) fixed3 Emission; // 방사 (이 오브젝트가 스스로 생성하는 빛의 양 - 빛의 영향을 받지 않는 색상) half Metallic; // 재질이 금속인가 아닌가 half Smoothness; // 재질이 거친가 매끈한가 half Occlusion; // 폐색 (차폐되어 어둡게 되는 강도) half Alpha; // 투명도 };..
unity SurfaceOutputStandard SurfaceOutputStandard 사용하기 01: Standard Shader(스탠다드 쉐이더) struct SurfaceOutputStandard { fixed3 Albedo; // 반사율 (기본 색상 / 오브젝트의 텍스쳐) fixed3 Normal; // 법선 (반사각을 결정하는 면의 방향) fixed3 Emission; // 방사 (이 오브젝트가 스스로 생성하는 빛의 양 - 빛의 영향을 받지 않는 색상) half Metallic; // 재질이 금속인가 아닌가 half Smoothness; // 재질이 거친가 매끈한가 half Occlusion; // 폐색 (차폐되어 어둡게 되는 강도) half Alpha; // 투명도 }; glossiness -> 광택 (스펙큘러 반사가 퍼지는 정도) grad..
unity uv & vertex color 1) UV를 이용하는 법을 배워보자 01: UV의 기본 개념 UV 좌표는 XYZ 중 XY와 동일하게 취급된다. 02: UV를 시각적으로 확인하기 (유니티 기준으로 설명) 외부 인터페이스에서 받는 값이 아닌, 유니티 내부로부터 받는 데이터는 다음과 같이 Input 구조체 안에 선언해야 한다. 그러므로 Input 구조체 안에 있는 uv_MainTex가 _MainTex의 UV이다. struct Input{ float2 uv_MainTex; }; 그리고 이렇게 선언된 UV를 surf 함수에서 tex2D(샘플러, uv)에 사용해야 하므로 다음과 같이 사용되었다. fixed4 c = tex2D (_MainTex, IN.uv_MainTex); 2) 버텍스 컬러를 이용해봅시다 버텍스 안에 내장되어 있는 정보들은 대표적..
unity shader foundation 유니티 쉐이더 ShaderLab(쉐이더랩)이라고 불리는 자체 스크립트 언어를 사용하고 있다. 쉐이더는 모바일-PC-콘솔기기 등 플랫폼별, 그리고 그림자 유무-라이트 맵 유무 등 다양한 경우의 수에 따라 제작방법이 다르다. 이를 편하게 사용하기 위해 유니티의 쉐이더랩 스크립트가 있는 것이다. (하나만 작성하면 모두 대응) 쉐이더랩을 이용한 제작 방식은 크게 세 가지로 나뉜다. 1) 쉐이더랩으로만 작성하기 (fixed function shader) 매우 가볍고 하드웨어 호환성이 좋지만, 기능이 상당히 부족해 고급 효과를 기대하긴 어렵다. 자체 문법으로 이루어져 있어서 다른 쉐이더와 호환되지 않는다. 지원 중단 수순을 밟는중 추천 X. 2) Surface Shader로 작성하기 쉐이더랩 스크립트와 함께 일부분..
rendering pipeline & monitor right 1) 렌더링 파이프라인 01단계 : 오브젝트 데이터 받아오기 우리가 알고 있는 그래픽 카드는 버텍스(Vertex)로 이루어진 물체의 데이터 값을 받아온다. 버텍스 : 인덱스 넘버(Index number), 포지션(Position), 노멀(Normal), 컬러(Color) 등의 정보이다. 그래픽 카드에서는 이 버텍스의 정보들을 가지고 버텍스들이 이어진 삼각형 면을 생성한다. 오브젝트의 기본적인 형태가 갖추어졌고, 이 정보들을 버텍스 쉐이더로 넘길 준비가 되었다. 02단계 : 정점(버텍스 : Vertex) 쉐이더 이제 이 데이터를 가지고 본격적인 쉐이딩 작업이 가동되기 시작한다. 첫 번째 과정이 '정점 쉐이더'라고도 불리는 버텍스 쉐이더(Vertex Shader)이며, 이 데이터를 이용해서 다..
Real Time Collision Detection - Chapter 5: Basic Primitive Tests (3) 보호되어 있는 글입니다.