[Unity3D] 일정 범위내의 존재하는 Collider 객체를 추출.
1 | Collider[] colls = Physics.OverlapSphere(transform.position, 10.0f); | cs |
Physics.OverlapSphere(); 함수는 특정 위치의 반경내의 있는 객체의 Collider를 반환해주는 함수이다.
인자는 2가지가 있는데,
첫 번째 인자는 위치를 나타내고.
두 번째 인자는 위치를 기준으로 범위를 나타낸다.
'Unity3D > Tip' 카테고리의 다른 글
[Unity3D] 파티클의 반복여부, 지속시간 설정. (0) | 2017.04.27 |
---|---|
[Unity3D] AddExplosionForce(); - 폭발 시 여파 적용. (0) | 2017.04.27 |
[Unity3D] 비균등스케일 (non-uniform scale) (0) | 2017.04.27 |
[Unity3D] 셰이더 및 물리 기반 셰이딩 (0) | 2017.04.25 |
[Unity3D] Sprite 동적할당. (0) | 2017.04.21 |
[Unity3D] 비균등스케일 (non-uniform scale)
실제 게임 개발 시 외부에서 불러들인 모든 3D모델의 스케일은 반드시 FBX importer의 Scale Factor 속성으로 맞춰야 한다.
만약 Transform Scale 속성을 직접 수정하게 되면 매 프레임 마다 수정된 스케일에 맞게 복사복을 생성하는 작업을
내부적으로 수행하기 때문에 CPU 연산이 많아져 속도 저하의 원인이 된다.
'Unity3D > Tip' 카테고리의 다른 글
[Unity3D] AddExplosionForce(); - 폭발 시 여파 적용. (0) | 2017.04.27 |
---|---|
[Unity3D] 일정 범위내의 존재하는 Collider 객체를 추출. (0) | 2017.04.27 |
[Unity3D] 셰이더 및 물리 기반 셰이딩 (0) | 2017.04.25 |
[Unity3D] Sprite 동적할당. (0) | 2017.04.21 |
[Unity3D] 배칭 & 드로우콜 (0) | 2017.03.16 |
[Unity3D] 셰이더 및 물리 기반 셰이딩
셰이더는 머테리얼에 적용한 텍스처를 렌더링할 때 표면의 재질감을 표현하는 방식을 결정한다.
셰이더 프로그래밍은 DirectX, OpenGL에 따라 서로 다른 언어로 구현되고, 3D그래픽스의 이론적인 배경을 많이 알아야 할 정도로 깊의 있는 지식을 요구하는 분야이기도 하다.
유니티는 셰이더 프로그래밍 지식이나 경험이 없더라도 손쉽게 사용할 수 있게 내장 셰이더(Built in Shader)를 제공한다.
유니티 5에서 처음 선보인 물리 기반 셰이딩(PBS, Physically-Based-Shading)은 물체가 갖고 있는 고유의 특성에 맞게 재질을 표현하는 것으로 현실세계에 존재하는 돌, 나무, 유리, 플라스틱, 금속 등과 같은 재질감을 하나의 셰이더에서 표현할 수 있도록 설계돼 있다.
유니티 5의 기본 셰이더인 Standard 셰이더는 물리 기반 셰이딩을 위해 다양한 옵션을 제공한다.
1. 렌더링 모드 (Rendering Mode)
2. 알베도 (Albedo)
3. 메탈릭 속성 (Metallic)
4. 노멀 맵 (Normal Map)
5. 하이트 맵 (Height Map)
6. 오클루전 (Occlusion)
7. 이미션 (Emission)
8. 디테일 마스크 (Detail Mask)
1. 렌더링 모드
렌더링 모드는
- 불투명 (Opaque)
- 그물망 표현 (Cutout)
- 홀로그램 효과 (Fade)
- 투명 (Transparent)
의 네가지 설정을 통해 다양한 재질감을 표현할 수 있다.
불투명 (Opaque) |
기본값으로 불투명한 텍스처를 표현하는 옵션이다. 투명한 부분이 전혀없는 Solid객체에 적합. |
그물망 표현 (Cutout) |
불 투명한 부분과 투명한 부분을 동시에 표현하는 옵션. 주로 풀, 그물망 등을 표현. |
투명 (Transparent) | 투명한 플라스틱 또는 유리와 같은 재질을 표현하는 옵션. |
홀로그램 효과 (Fade) | 투명 속성값을 갖고 있는 객체를 페이드 아웃 시키는 옵션. 불 투명한 객체를 부분적으로 페이드 아웃시킬 수 있어 홀로그램 효과를 구현할 수 있다. |
2. 알베도
알베도는 빛을 반사하는 정도를 말하며, 반사율이라고도 한다.
유니티 5에 도입된 물리 기반 셰이딩을 구현하기 위해 추가된 텍스처다.
즉, 현실세계에 있는 모든 물체는 각각 다른 빛 반사율을 갖고 있는 것에서 비롯됐다.
3. 메탈릭 속성
메탈릭은 객체 표면에 금속의 재질을 표현하기 위한 텍스처이다.
이 텍스처 슬롯 옆에 있는 슬라이드 값이 1에 가까워 질수록 금속 재질에 가까워 지는 특성이 있다.
4. 노멀 맵
노멀 맵은 표면의 굴곡을 표현하기 위한 텍스처의 일종으로 3D 모델링으로 많은 폴리곤을 소모하지 않고 같은 효과를 낼 수 있다. 노멀 맵 텍스처 슬롯 오른쪽에 있는 속성 값이 커질 수록 거친 음영효과를 낸다.
5. 하이트 맵
하이트 맵은 텍스처로 높 낮이를 표현하는 것으로 보통 지형(Terraun)을 표시할 때 사용된다.
텍스처가 연결되면 슬라이드가 표시되고 돌출되는 높이를 설정할 수 있다.
6. 오클루전
오클루전은 흑백의 텍스처로 간접조명에 의해 생기는 명암을 더욱 뚜렷히 표시해 사물의 입체감과 깊이감을 살리는데 사용한다.
오클루전 맵에 사용될 텍스처는 일반적으로 3D 모델링 툴 또는 서드 파티 툴에서 추출한다.
7. 이미션
이미션은 스스로 빛을 방출하는 속성을 말한다.
속성값을 변경하면 객체의 표면에서 방출되는 빛의 강도와 빛의 색상을 설정할 수 있는 항목이 나타난다.
또한 하단에 저녁조명에 반영하기 위한 옵션이 나타난다.
8. 디테일 마스크
디테일 마스크는 Secondary Maps에 적용할 마스크를 설정하는 텍스처 슬롯이다.
특정 부분만 좀 더 세부적인 텍스처를 표현할 때 사용된다.
'Unity3D > Tip' 카테고리의 다른 글
[Unity3D] AddExplosionForce(); - 폭발 시 여파 적용. (0) | 2017.04.27 |
---|---|
[Unity3D] 일정 범위내의 존재하는 Collider 객체를 추출. (0) | 2017.04.27 |
[Unity3D] 비균등스케일 (non-uniform scale) (0) | 2017.04.27 |
[Unity3D] Sprite 동적할당. (0) | 2017.04.21 |
[Unity3D] 배칭 & 드로우콜 (0) | 2017.03.16 |