z-write란(z-buffer, z-value, depth test) Z-write란 3D 그래픽에서 사용되는 Depth Buffering(깊이 버퍼링) 기술 중 하나로 3D 렌더링에서 객체의 깊이를 결정하고 표현하는 방법입니다. Depth Buffer(깊이 버퍼) 또는 Z-Buffer( Z-버퍼)는 화면에 그려지는 객체들의 깊이 정보를 저장하는 버퍼입니다. 렌더링 파이프라인에서 객체를 그리기 전에 각 객체의 깊이 값을 깊이 버퍼에 기록합니다. Z-write는 현재 그려지는 객체의 깊이 값을 깊이 버퍼에 쓰는 것을 의미합니다. Z-Write는 Depth Test(깊이 테스트)와 함께 사용됩니다. Depth Test는 현재 그려지는 객체의 깊이 값을 기존 깊이 버퍼의 값과 비교하여 객체가 가려지는지 결정..
3D그래픽에서 발생하는 z fighting 현상이란 z fighting https://en.wikipedia.org/wiki/Z-fighting 3D 그래픽스에서 Z-fighting은 카메라의 시점에서 두 개 이상의 폴리곤이 같은 위치에 있을 때 렌더링된 이미지에서 폴리곤이 겹쳐보이고 깜박거리는(flickering), 노이지한 래스터화(noisy rasterization)가 발생하는 현상입니다. 두개의 면이 동일한 공간을 차지하거나 매우 가까운곳에 위치할때 깊이를 추적하는 z -버퍼에서 거의 유사하거나 동일한 값을 갖게 됩니다(z - 버퍼의 제한된 정밀도로 인해) 이로인해 렌더링 시에 깊이 값이 번갈아가며 결정되어 시각적인 충돌 현상이 발생합니다. Z-Fighting을 방지하기 위해서 깊이 버퍼의 정밀도..
유니티 재질의 렌더링 모드(rendering mode) 종류 유니티에서 재질의 Rendering Mode는 재질(Material)의 렌더링 방식을 설정하는 속성으로 오브젝트의 투명도 사용여부 및 혼합모드 유형을 설정합니다. https://docs.unity3d.com/Manual/StandardShaderMaterialParameterRenderingMode.html rendering mode의 종류 Opaque(불투명) 기본값으로 완전히 불투명한 일반 오브젝트에 사용합니다. 알파 채널을 사용할수없습니다. Cutout(컷아웃) 완전히 불투명하거나 완전히 투명한 영역(반투명 영역이 존재하지않음)의 가장자리가 hard edge인 오브젝트에 사용합니다. 이미지의 특정한 영역을 잘라내는데(cutout) 사용할수..
포토샵에서 픽셀아트 만들기 문서(Explore how to make pixel art) https://www.adobe.com/creativecloud/design/discover/pixel-art.html Learn How to Make Pixel Art: Tutorial with Tips & Tools | Adobe Discover how easy it is to make pixel art with the right tools. This Adobe tutorial covers tips for making the great pixel art & the best tools to use. www.adobe.com
안드로이드 모바일 장치 텍스처 압축형식(ETC1, ETC2, ASTC )ETC(Ericson Texture Compression)는 주로 모바일 장치에서 텍스처의 크기를 줄여 메모리 사용을 최적화하고 성능을 개선하는 것을 목표로 개발된 손실 텍스처 압축 기술로 ETC1, ETC2가 존재합니다. 안드로이드 운영체제의 OpenGL ES 그래픽 API에서 사용될수있습니다.https://en.wikipedia.org/wiki/Ericsson_Texture_Compression ETC1 OpenGL ES 2.0 이상을 지원하는 기기에서 사용 가능합니다(안드로이드 상당 부분의 장치에서지원) 투명도를 직접적으로 지원하지않지만 알파 구성요소에 보조 텍스처 파일을 사용할수있습니다. 투명한 영역을 가진 텍스처를 압축할..
lospec - 픽셀 아트 제작을 위한 다양한 정보를 제공하는 웹사이트 lospec는 픽셀 아트 및 디지털 아트를 제작하기위한 유용한 도구와 정보를 제공하는 웹사이트이다. 웹에서 사용할수있는 무료 픽셀 아트 프로그램인 Lospec Pixel Editor, 픽셀 아트를 위한 팔레트 목록인 palette list등의 제작도구를 이용할수있으며 픽셀 아트에 관련된 유용한 정보와 튜토리얼을 확인할수있다. https://lospec.com/ Lospec - Free tools and resources for people making pixel art, voxel art and more Free online tools for people creating pixel art and other low-spec art. l..
유니티(Unity) 셰이더 Shaderlab 구문과 HLSL(High-Level Shading Language)HLSL (High-Level Shading Language)HLSL은 마이크로소프트가 개발한 고급 셰이더 언어로 주로 DirectX 기반의 그래픽 API에서 사용됩니다. 셰이더는 기본적으로 그래픽 파이프라인에서 버텍스(Vertex)와 픽셀(Pixel, Fragment) 단위로 데이터를 처리하여 화면에 그래픽을 출력하는 역할을 합니다. HLSL를 사용하여 조명, 그림자, 텍스처등 셰이더 내부의 실제 계산 로직을 작성합니다.셰이더의 로직(수학, 조명 계산) , 낮은 수준에서 GPU에서 실행되는 코드, 그래픽 API 표준 언어 https://learn.microsoft.com/ko-kr/window..
유니티 게임 그래픽 최적화 주제 모음 프러스텀컬링 오쿨루젼컬링 정적 배칭 유니티에서 정적배칭(static batching) 사용하기 동적 배칭 유니티에서 동적배칭 사용하기(dynamic batching) GPU인스턴싱 유니티 GPU 인스턴싱(instancing) vsync CombineMeshes함수 유니티에서 CombineMeshes 함수를 이용하여 배칭하기 LOD(level of detail) 유니티에서 LOD 그룹 설정하기 라이팅기법 라이트맵 gpu스키닝 라이트프로브 리플렉션 프로브 텍스처 압축 파티클최적화 렌더링파이프라인(빌트인, URP, HDRP) 유니티의 렌더링 파이프라인(built-in, SRP, URP, HDRP) 포워드렌더링, 디퍼드렌더링 안티 엘리어싱 유니티 안타 엘리어싱(anti-al..
유니티(Unity) 게임 그래픽에서 텍스처 최적화 방법 몇가지텍스처 크기(Resolution)텍스처 해상도가 클수록 메모리 사용량이 많아지고 성능 저하가 발생합니다. 필요 이상으로 큰 텍스처를 사용하지 않도록 하고 텍스처 크기를 적절히 줄여서 최적화합니다. Texture Import Settings에서 Max Size를 적절한 값으로 설정 텍스처 비율(Aspect Ratio)비정형 크기의 텍스처는 그래픽카드에서 빈공간을 자동으로 채워 정형 텍스처로 변환후 GPU로 전송, 불필요한 메모리 대역폭을 낭비할수있습니다. 텍스처의 비율을 Power of Two (2의 거듭제곱) 크기로 설정하여 최적화할수있습니다.예를들어 128x128, 256x256, 512x512 텍스처 압축 포맷(Compression)텍스..