본문 바로가기

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)이며, 이 데이터를 이용해서 다..
AndroidManifest란? AndroidManifest란? (https://developer.android.com/guide/topics/manifest/manifest-intro.html?hl=ko) 모든 애플리케이션에는 루트 디렉토리에 AndroidManifest.xml 파일(정확히 이 이름이어야 함)이 있어야 한다. 매니페스트 파일에서는 Android 시스템이 앱의 코드를 실행하기 전에 확보해야 하는 앱에 대한 필수 정보를 시스템에 제공한다. 이외에도 매니페스트 파일은 다음 작업을 수행한다. 애플리케이션에 대한 Java 패키지의 이름을 지정한다. 이 패키지 이름은 애플리케이션에 대한 고유한 식별자 역할을 한다. 액티비티, 서비스, 브로드캐스트 수신기 및 콘텐츠 제공자 등 애플리케잉션을 이루는 구성 요소를 설명한다. 또한, 각..
Application.mk란? Application.mk란? (https://developer.android.com/ndk/guides/application_mk?hl=ko) 이 문서는 ndk-build에서 사용되는 Application.mk 빌드 파일에 대해 설명한다. 개요 Application.mk 파일은 실제로는 컴파일을 위한 여러 가지 변수를 정의하는 작은 GNU Makefile 프래그먼트이다. 이것은 보통 $PROJECT/jni/ 아래에 위치하는데, 여기에서 PROJECT가 애플리케이션의 프로젝트 디렉토리를 포인팅한다. 다른 방법으로는 최상위 NDK/apps/ 디렉토리의 하위 디렉토리에 이 파일을 넣는 방법이 있다. 예: $NDK/apps//Application.mk 여기서 은 NDK 빌드 시스템에 대한 앱을 설명하는 데 사..
Android.mk란? Android.mk란? (https://developer.android.com/ndk/guides/android_mk.html?hl=ko) 이 페이지는 ndk-build가 사용하는 Android.mk 빌드 파일의 구문에 대해 설명한다. 개요 Android.mk 파일은 프로젝트의 jni/ 디렉토리에 속한 하위 디렉토리에 있으며, 빌드 시스템에 대한 소스 및 공유 라이브러리를 설명한다. 이 파일은 실제로는 빌드 시스템이 한 번 또는 그 이상 파싱하는 작은 GNU 메이크파일 프래그먼트이다. Android.mk 파일은 Application.mk, 빌드 시스템, 환경 변수가 정의되지 않은 상태로 남겨두는 프로젝트 전반의 설정을 정의하는 데 유용하다. 이 파일은 특정 모듈에 대한 프로젝트 전체 설정을 재정의할 수도..
ABI란? ABI란? () 다양한 Android 핸드셋은 각기 다른 CPU를 사용하므로, 서로 다른 명령 집합을 사용한다. CPU와 명령 집합의 조합별로 나름의 애플리케이션 바이너리 인터페이스(ABI)가 있다. ABI는 애플리케이션의 기계어 코드가 런타임에 시스템과 상호작용하는 방식을 매우 정밀하게 정의한다. 여러분의 앱이 사용할 각 CPU 아키텍처에 대해 ABI를 지정해야 한다. 전형적인 ABI는 다음과 같은 정보를 포함한다. 기계어 코드가 사용해야 하는 CPU 명령 집합 런타임 시 메모리 저장 및 로드의 엔디언 실행 가능한 바이너리의 형식(예: 프로그램 및 공유 라이브러리)과 이러한 바이너리가 지원하는 콘텐츠의 유형 코드와 시스템 간에 데이터를 전달하기 위한 다양한 규칙. 이러한 규칙에는 정렬 제약 조건뿐 아니..
NDK란? NDK란? (https://developer.android.com/ndk/guides/concepts.html?hl=ko) 소개 Android NDK는 Android 앱에 C 또는 C++("네이티브 코드")를 삽입할 수 있게 해주는 도구 집합이다. Android 앱에 네이티브 코드를 사용할 수 있는 능력은 다음 중 한 가지 이상을 수행하려는 개발자에게 특히 유용할 수 있다. 플랫폼 간의 앱 이식 기존 라이브러리를 재사용하거나 재사용할 고유의 라이브러리 제공 특정한 경우, 특히 게임과 같이 집약적인 계산 작업이 이루어지는 앱의 성능 향상 작동 방식 앱을 빌드할 때는 다음 구성 요소에 대해 잘 파악하고 있어야 한다. 네이티브 공유 라이브러리: NDK는 개발자의 C/C++ 소스 코드에서 이러한 라이브러리 또는..