언어 및 엔진/Unity(30)
-
[Unity] Shading Mode
Shading Mode Shaded 3D 모델 표면에 텍스쳐 WireFrame 텍스쳐 제외, 3D모델만 보여줌 Shaded Wireframe 텍스처, 메쉬 동시 표현 Shadow Cascades 실시간 그림자 적용 시 생성된 쉐도우 맵 표시 Render Paths 객체의 렌더링 방식에 따라 다른 색상으로 표현 Alpha Channel 투명 쉐이더를 사용하는 3D 모델을 표현하기 위해 흑백으로 보여줌 Overdraw 카메라의 시야에 잡히지 않는 곳에서 색상이 중첩되어 그려지는 것을 뜻함. 성능 저하의 원인이 됨. Mipmaps 카메라에서 멀어질수록 켄스처의 품질을 낮춰 부하를 줄임 No Shadow 그림자 없음 Hard Shadow 실시간으로 딱딱한 그림자 Soft Shadow 실시간으로 부드러운 그림자,..
2024.04.22 -
[Unity] 모바일 Texture
모바일 Texture iOS 디폴트 : RGB - RGB Compressed PVRTC 4비트 - 압축된 RGB텍스처. 컬러데이터에 고품질 텍스처이지만 압축하는데 시간이 좀 걸림. 32KB RGBA - RGBA Compressed PVRTC 4비트 - 압축된 RGB텍스처. 컬러데이터에 고품질 텍스처이지만 압축하는데 시간이 좀 걸림. 32KB Android 디폴트 : RGB - RGB Compressed ETC - 압축된 RGB텍스처. 안드로이드 프로젝트에서 알파 채널이 없는 텍스처에 대한 기본 텍스처 압축 포맷. 32KB RGBA - RGBA Compressed ETC2 - 압축된 RGBA텍스터. 안드로이드 프로젝트에서 알파 채널이 있는 기본 텍스처 압축 포맷. 64KB
2024.04.21 -
[Unity] 최적화
최적화 유니티 게임 오브젝트를 찾지 말고 캐싱하라 - FindObject는 느림 오브젝트 풀링 기법을 사용 - Instanitate, Destroy함수의 비용이 큼 Update보다는 Coroutine을 활용 - Update는 매 프레임마다 호출된다.매 프레임마다 호출되는 경우가 아니라면 코루틴 사용 문자열을 연결할 땐 StringBuilder 사용 - 일반적인 String + String은 가비지컬렉터를 돌게 한다. StringBuilder.Append()사용하기 나누기보다는 곱하기 - 나눗셈 보다 곱셈의 연산속도가 몇십 배로 빠름 가비지컬렉션이 최대한 안돌도록 하자 - readonly, const사용 객체 캐싱을 활용 - GetComponent()사용 빈 콜백함수 제거 - Start, Update같은 ..
2024.04.21 -
[Unity] Forward / Deffered
Forward / Deffered 랜더링 패스. Forward Rendering 전통적인 랜더링 패스. 전형적인 유니티 그래픽 기능을 모두 갖춤. 디폴트는 밝은 라이트가 픽셀당 모드로 설정됨. 비교적 저사양에서도 잘 작동, 문제점에 대해 해결방식이 있는 경우가 많음. 라이팅 연산이 느리고, 폴리곤이 많은 모델에 렌더링 걸기에는 부적합. 포스트 이펙트는 따로 처리 Deffered Shading 제일 좋은 라이트 품질, 많은 실시간 연산량. 특정 수준 이상의 하드웨어 필요 동적 라이팅이 실시간으로 이루어짐. 많은 오브젝트를 그릴 때 적합. 요구하는 하드웨어의 사양이 높고, 안티앨리어스를 구현하기 어려우며, 알파가 빠지는 오브젝트를 구현할 수 없다.
2024.04.21 -
[Unity] Lambert광원 / Specular
Lambert광원 / Specular Lambert광원 라이팅 구조 중 가장 가벼운 것으로(연산량이 적다), 둔탁하고 딱딱한 빛 처리 Specular 반사, 색상, 강도를 전부 처리하여, 연산량이 많다
2024.04.21 -
[Unity] Light Map Bake
Light Map Bake 실시간 연산이 필요한 부분(그림자 등)이 고정되어, 오브젝트가 이동해도 그림자가 그대로 있다. 움직이지 않는 배경 같은 맵들을 미리 라이트맵으로 이미지로 만들어, 실제 게임에서는 연산처리 하지 않도록 한다.
2024.04.21