Unity
Unity Shader : UV 매핑
이 글에서는 텍스쳐를 자유롭게 조작하고 다양한 시각 효과를 만들 수 있는 UV 매핑 심화 개념을 다룹니다. 텍스쳐 타일링, 오프셋, 애니메이션, 불 쉐이더 제작 과정을 예시와 함께 자세하게 설명하며, 텍스쳐 래핑 모드, 셰이더 변수, 시간 기반 애니메이션 등 관련 개념들을 심층적으로 이해할 수 있도록 돕습니다. 텍스쳐 타일링텍스쳐 타일링은 텍스쳐를 반복적으로 표현하여 더 넓은 영역에 적용하는 기술입니다. 벽돌, 타일, 천, 바닥 등 여러 표면에 텍스쳐를 자연스럽게 적용하는 데 사용됩니다. 예시벽돌 벽: 벽돌 텍스쳐를 타일링하여 벽 전체를 채웁니다.바닥 타일: 타일 텍스쳐를 타일링하여 바닥 전체를 채웁니다.천: 구름 텍스쳐를 타일링하여 하늘을 표현합니다.옷: 천 텍스쳐를 타일링하여 옷감을 표현합니다.코드..
Unity Shader : 텍스쳐 입히기와 UV 좌표 활용
유니티 쉐이더는 게임 개발에서 다양한 시각 효과를 구현하는 데 필수적인 요소입니다. 이 글에서는 초보자부터 중급자까지 이해하기 쉽게 쉐이더의 기본 개념과 활용 방법을 설명하고자 합니다. 특히 RGB 슬라이더 제작, 텍스쳐 입히기, UV 좌표 활용, Lerp 함수 활용에 초점을 맞추어 심층적으로 다루겠습니다. RGB 슬라이더 제작(1) 프로퍼티스 설정먼저 프로퍼티스(Properties)에서 인터페이스를 만들고 Range 속성을 사용하여 슬라이더를 생성합니다. (2) SubShader에서 변수 선언SubShader에서 'float _Red', 'float _Green', 'float _Blue'와 같이 변수를 선언합니다.변수 선언은 텍스쳐 입히기와 같은 다른 기능을 사용하기 위한 필수적인 과정입니다.(3) ..
Unity Light : 조명
개요 유니티는 다양한 조명 유형을 제공하여 게임 개발자들이 현실적인 조명 효과를 구현할 수 있도록 지원합니다. 이 글에서는 가장 일반적으로 사용되는 4가지 조명 유형인 Spot, Directional, Point, Area에 대해 자세히 설명하고 각 유형의 특징, 장단점, 활용 예시 등을 비교 분석합니다. 조명 유형 비교 유형 특징 장점 단점 활용 예시 Spot 원뿔형 조명 - 집중적인 조명 효과 - 특정 영역 강조 - 범위 제한 - 경계선 명확 - 손전등, 조명, 스포트라이트 Directional 태양광과 유사한 평행 조명 - 넓은 범위 조명 - 그림자 효과 자연스러움 - 방향 조절 제약 - 면적 조명 어려움 - 실외 환경, 햇빛, 달빛 Point 모든 방향으로 빛 발산 - 자연스러운 조명 효과 - 다..
Unity Shader : 코드 분석
이전 글에서는 Unity 쉐이더의 기본 개념과 Surface 쉐이더의 구성 요소를 살펴보았습니다. 이번 글에서는 쉐이더 코드를 직접 분석하며 쉐이더 작동 방식을 이해하는 데 집중할 것입니다. 1. CGPROGRAM & ENDCG 쉐이더 코드는 CGPROGRAM과 ENDCG 키워드 사이에 작성됩니다. 이는 Cg 또는 HLSL과 같은 프로그래밍 언어를 사용하여 쉐이더를 구현한다는 것을 의미합니다. Cg는 NVIDIA에서 개발한 고수준 쉐이더 언어이며, HLSL은 Microsoft에서 개발한 고수준 쉐이더 언어입니다. Unity는 Cg와 HLSL 모두를 지원하며, 쉐이더 모델 3.0 이상을 사용할 수 있습니다. 2. #pragma #pragma는 쉐이더 컴파일러에게 특정 지침을 제공하는 키워드입니다. 컴파일러..
Unity Shader : 기초
Unity 쉐이더는 게임 오브젝트의 렌더링 방식을 제어하는 코드입니다. 3D 그래픽에서 쉐이더는 매우 중요한 역할을 하며, 텍스처, 색상, 조명 등을 사용하여 사실적인 이미지를 만들 수 있도록 합니다. 1. 쉐이더 정의 쉐이더는 Cg 또는 HLSL과 같은 프로그래밍 언어로 작성된 코드이며, 꼭지점 셰이더와 프래그먼트 셰이더로 구성됩니다. 꼭지점 셰이더: 3D 공간에서 꼭지점의 위치를 변환하고 조명 계산을 수행합니다. 프래그먼트 셰이더: 각 픽셀의 색상을 계산합니다. 2. 쉐이더 종류 Unity에는 다양한 종류의 쉐이더가 있으며, 일반적으로 다음과 같이 분류됩니다. Standard Surface Shader: 대부분의 오브젝트에 사용되는 기본 쉐이더입니다. Lit Shader: 조명 계산을 수행하는 쉐이더..
RigidbodyConstraints : 회전과 위치 제어
유니티 RigidbodyConstraints는 리지드바디의 회전과 위치를 제어하는 데 사용되는 enum입니다. 각 옵션은 다음과 같은 의미를 가집니다. 회전 제어:FreezeRotationX: X축 회전을 동결합니다. (X축 회전 불가능)FreezeRotationY: Y축 회전을 동결합니다. (Y축 회전 불가능)FreezeRotationZ: Z축 회전을 동결합니다. (Z축 회전 불가능)위치 제어:FreezePositionX: X축 이동을 동결합니다. (X축 이동 불가능)FreezePositionY: Y축 이동을 동결합니다. (Y축 이동 불가능)FreezePositionZ: Z축 이동을 동결합니다. (Z축 이동 불가능)예시단일 제어 Rigidbody rigid = GetComponent();// X축 회전..
Rigidbody에서 오브젝트에 힘을 가할 때 사용되는 ForceMode
유니티에서 Rigidbody를 사용하여 오브젝트에 힘을 가할 때 ForceMode는 힘의 적용 방식을 결정하는 중요한 요소입니다. 이 글에서는 다양한 ForceMode 옵션과 각 옵션의 특징, 그리고 사용 시 고려해야 할 사항들을 자세하게 설명합니다. 1. ForceMode 종류 Force: 힘을 오브젝트의 질량에 비례하여 가속합니다. Impulse: 힘을 순간적으로 가하여 오브젝트의 속도를 변화시킵니다. Acceleration: 힘을 오브젝트의 질량에 관계없이 일정한 가속도로 적용합니다. VelocityChange: 힘을 오브젝트의 질량에 관계없이 일정한 속도 변화량으로 적용합니다. 2. ForceMode 옵션 비교 옵션 특징 사용 시 고려 사항 Force 질량에 비례하여 가속 시간에 따라 힘이 누적 ..
Unity에서 UnityWebRequest를 이용해 웹 접속하는 방법
Unity에서 웹 접속 기능을 구현하는 방법은 여러 가지가 있지만, UnityWebRequest는 비교적 간편하고 효율적인 방법입니다. 이 글에서는 UnityWebRequest를 이용해 웹 접속하는 방법을 단계별로 설명하고, 예시 코드와 함께 활용 방법을 제시합니다. 개요 UnityWebRequest는 웹 서버와 통신하여 데이터를 주고받을 수 있도록 하는 API입니다. GET, POST, PUT, DELETE 등 다양한 HTTP 메서드를 지원합니다. 텍스트, 이미지, 바이너리 데이터 등 다양한 형식의 데이터를 처리할 수 있습니다. 웹 접속 단계 UnityWebRequest 객체 생성 UnityWebRequest 클래스의 생성자를 사용하여 웹 요청 객체를 생성합니다 요청 URL, 메서드, 헤더 정보등을 설..