렌더링 기초는 앞 셰이더 포스팅에도 했지만 렌더링 파이프라인은 중요하기 때문에 한번 더 집고 넘어가겠습니다. 유니티 셰이더 파이프라인을 간단하게 보고 자세한건 따로 포스티하겠습니다. 대략적으론 3D 물체를 2D 화면까지 표현하는 과정인데 https://youtu.be/KnueAgpUL3Y 설명보단 영상이 좋을꺼 같아 준비했습니다. 이 포스팅은 위 영상을 토대로 갑니다. 설명은 1분부터 5분까지입니다. 이제 유니티에서 프로젝트를 생성해보겠습니다. 생성 전에 버전은 2019.3 버전 이상을 사용해야합니다.19.4버전을 사용하겠습니다. 템플릿은 Universal RP(Render Pipeline)을 클릭하고 생성합니다. 아래 파일을 삭제해줍니다. Edit -> Project Settings -> Graphic..
Shadertoy 튜토리얼 한글번역 셰이더 토이 WebGL 기반, OpenGL 베이스로된 사이트입니다. 튜토리얼을 진행해보겠습니다. 빈화면 "main" 함수는 쉐이더 효과를 출력하기 위해서 매초 마다 수십회 호출합니다. 컴퓨터 시스템은 초당 60프레임(60FPS)를 출력하려고 노력합니다. 하지만 GLSL 스크립트가 계산이 빡세지면 이 숫자는 더 낮아질 수 있습니다. (FPS는 화면 아래쪽 정보바에 표시됩니다.) 균일 색상 frageColor는 쉐이더의 출력입니다. 이 값은 화면에 보여지는 이미지를 결정합니다.이 쉐이더는 이 값을 노란색으로 지정합니다. vec4( r, g ,b , a); 값입니다. 뒤에 값에 넣는거에 따른 색이 바낍니다. void mainImage( out vec4 fragColor, i..
이제부터 렌더링 파이프라인 (Rendering Pipeline) 설명입니다. DirectX 그래픽스 파이프라인 순서 및 기본 설명과 기본 지식 블로그의 자료로 정리했습니다. 그래픽스 파이프라인(Graphics Pipeline) 과정 랜더링 파이프라인 (Rendering Pipeline) 과정 바로 위 그림 출처 : [3D] 그래픽스 파이프 라인 (tistory.com) 그림은 완벽히 이해 후 다시 만들어서 수정할 예정 알아 보던 중 헷갈리게 두개의 그래프가 나왔습니다. 차이는 그래픽스 파이프라인은 렌더링 파이프라인 속에 포함 되어있으며 같다라고도 볼 수 있습니다. 유니티 파이프라인 간략 설명(reto0) 2/3 유니티 파이프라인 간략 설명(reto0) 3/3 자세한 설명 1. 3D 모델 구축 ( 로컬 스..
화면에 색을 칠하는(Shading) 프로그램 동작방식 : 렌더링 파이프라인의 일부를 유연하게 변경하는 프로그램 렌더링 파이프라인의 일부 중 프로그래머가 수정하게 열어주었고 그걸 셰이더라고 부른다. 셰이더가 없을 땐 버텍스 3개를 받아서 삼각형을 만들면 다 똑같은 삼각형이였지만 셰이더로 인해 여러가지 결과가 출력이 가능하게 된것이다. 유니티는 서피스 셰이더, 버텍스/프래그먼트 셰이더, 고정함수 셰이더 총 3가지의 셰이더를 지원합니다.] 주로 사용하는건 서피스, 버텍스/프래그먼트이며 버텍스 셰이더는 정점의 정보값을 변화시켜서, 물체를 특별한 위치로 옮기거나, 텍스처를 바꾸거나, 색상을 바꾸는 등의 일을 할 수 있다. 하지만 기존의 정점을 지우거나 새로운 정점을 추가하는 등의 작업은 할 수 없다. 프래그먼트 ..
주변의 모든 방향에서 캡처하는 카메라와 유사합니다. 캡처된 이미지는 반사 머티리얼이 있는 오브젝트에서 사용할 수 있는 큐브맵(Cubemap)으로 저장됩니다. 특정 씬에는 여러 반사 프로브를 사용할 수 있고, 가장 가까운 프로브가 생성한 큐브맵을 사용하도록 오브젝트를 설정할 수 있습니다. 이렇게 하면 오브젝트의 반사가 주변 환경에 따라 매우 사실적으로 변할 수 있습니다. Reflection Probe Reflection Probe 컴포넌트를 씬의 아무 오브젝트에나 추가할 수 있지만, 각 프로브를 별도의 빈 게임 오브젝트에 추가하는 방법이 일반적입니다. 일반적인 워크플로는 다음과 같습니다. 새로운 빈 게임 오브젝트를 생성(메뉴: GameObject > Create Empty)하고, 그런 다음 Reflecti..
스탠다드 셰이더(Standard Shader) 포괄적인 기능을 가진 기본 셰이더, 암석, 나무, 유리, 플라스틱, 금속과 같은 현실 오브젝트를 렌더링하는 데 사용할 수 있으며, 다양한 셰이더 타입과 조합을 지원합니다. 물리 기반 셰이딩(PBS) 이라는 고급 광원 모델을 포함합니다. 물리 기반 셰이딩은 현실과 유사하게 머티리얼과 광원 간의 상호작용을 시뮬레이션합니다. 그리고 오브젝트가 받는 광원보다 더 많은 광원을 반사할 수 없다는 에너지 보존 법칙, 모든 표면은 지표각에서 반사율이 높아진다는 프레넬(Fresnel) 반사 법칙, 표면이 자신을 가린다는 지오메트리 텀 등을 포함한 물리 법칙을 따릅니다. 스탠다드 셰이더 조명 수학 구현은 Disney 모델을 디퓨즈 컴포넌트에 사용하고 GGX 모델을 스페큘러에 ..
Graphics(그래픽스 유니티 매뉴얼) Edit - Project Settings - Graphics에서 사용 가능한 셰이더 설정 기능이다. Scriptable Render Pipeline Settings Unity가 사용하는 기본 렌더링 파이프라인을 사용하는 대신 씬이 렌더링되는 방법을 제어할 수 있도록 커맨드 몇개를 정의합니다. Transparency Sort Mode 특정 축상의 거리를 기준으로 오브젝트 렌더링 순서를 정의, Unity 렌더러는 레이어 수, 카메라에서 떨어진 거리등 다양한 기준으로 정렬됩니다. 일반적으로 높이를 기준으로 또는 Y축을 따라 스프라이트를 정렬할 때와 같은 2D 개발에서만 유용 Custom Axis 기능(값에 따라서 오브젝트를 정렬) Tier Settings 미세 조정하..