셰이더란?- 화면에 출력할 픽셀의 위치와 색상을 계산하는 함수. 파이프라인- 정점셰이더 -> 래스터라이저 / 보간기 -> 픽셀셰이더 정점셰이더- 물체를 구성하는 정점들의 위치를 화면 좌표로 변환.- 로컬공간(Local) -> 월드 공간(World) -> 뷰 공간(View) -> 투영 공간(Projection) *월드행렬 *카메라행렬 *투영행렬 각 행렬들을 곱한다. - 위치나, 법선벡터 등 - 정점의 갯수만큼 호출된다. 픽셀셰이더- 화면에 출력할 최종 색상을 계산하는 부분.- 픽셀의 갯수만큼 호출된다. ( 래스터라이저에서 찾아낸 픽셀 수만큼 ) 래스터라이저 - 정점을 모아 면이되는 부분의 픽셀을 찾아낸다. 보간기- 정점 이외의 정보 (ex) 픽셀의 UV값) 인접한 세 정점까지의 거리에 비례하여 값을 보간해..
3D 연산을 할 때는 모든 변수들이 존재하는 공간이 일치해야 한다.
MonoBehaviour Singleton. public class MonoBehaviourSingleton : MonoBehaviour where T: MonoBehaviour { protected bool isDonDestroy = false; void Awake() { if (isDonDestroy) { DontDestroyOnLoad(this.gameObject); } } private static T instance; public static T Instance { get { if (instance == null) { T[] objs = FindObjectsOfType(); if (objs.Length > 0) { instance = objs[0]; } if (instance == null) {..
MonoBehaviour DescriptionOnBecameInvisible is called when the renderer is no longer visible by any camera.This message is sent to all scripts attached to the renderer. OnBecameVisible and OnBecameInvisible is useful to avoid computations that are only necessary when the object is visible. 화면 밖으로 나가 어떠한 카메라에도 보이지 않을경우 불리는 함수. OnBecameInvisible / OnBecameVisible 은 Render 관련 함수여서 Mesh Render Compon..
- 2D Sprite 의 Pixels Per Unit은 3D World에서의 단위숫자 ' 1 ' 이 몇 Pixel인가를 나타낸다. - 유니티의 카메라가 Othographic인 상태에서 텍스쳐와 카메라의 크기를 맞추는 공식 - 카메라 size = GameTargetHeight / 텍스쳐의 Pixels Per Unit값 / 2 - 카메라 사이즈가 고정일 경우: 카메라size(원래size) / 계산된size(위에서 계산된 size) 값으로 텍스쳐 크기를 변경해줘도 된다 (텍스쳐가 깨질수있다)
유니티 메모리 프로파일러 관련 링크. 유니티 5.3 이상부터 적용이 가능. 다운받은 에디터 폴더를 개발중인 프로젝트의 에디터 폴더로 임포트 하면됨. 스크립트 백엔드는 IL2CPP로 적용해줘야 한다.( 유니티 5.3에서는 안드로이드 IL2CPP가 정식 지원이 아니기 때문에 유니티 5.4이상으로 업데이트를 해야됨) Development Build로 빌드 후 게임을 띄우고 유니티 프로파일러를 띄우고 디바이스에 프로파일러를 연결하여 프로파일링이 되는것을 확인 한다. 이 후 유니티에서 Windows > Memory Profiler를 선택. Window가 뜨면 TakeSnapShot을 누르면 데이터를 가져온다. 다운로드 : https://bitbucket.org/Unity-Technologies/memoryprof..
