본문 바로가기

2018/11

(10)
HDR 컬러 공식. HDR = Vector4 Color * mathf.Pwo(2.0, intensity);
닥치고 사칙연산으로 이해하는(?) 기초 수학2 : 사각형의 부피와 삼각형의 부피 위와 같은 4개의 박스가 4줄이 있다고 가정해보자.그럼 저기에 있는 총 박스의 갯수는 몇개 일까?아주 쉽게 4X4로 16개의 박스가 있음을 알 수 있다. 또 다른 관점으로 보면 박스 하나의 가로, 세로 길이가 1이라 가정해보면 박스의 갯수가 곧 넓이가 된다는것을 알 수 있다.넓이란 2차원 공간을 얼마나 채우느냐라는 관점이다.총 16개의 박스가 있고, 그 16개의 박스가 공간을 채우고 있다.사각형의 넓이는 그래서 밑변 X 높이 인 것이다. 다음과 같은 삼각형이 있다.초등학교에서 배웠던 삼각형 넓이의 공식을 기억하는가? 밑변 X 놉이 / 2 이다.왜 그런가 하면... 삼각형은 곧 4각형의 절반이기 때문이다.다음 이미지를 보면 이해할 수 있을 것이다. 이게 뭐가 중요하냐고?? 조만간 삼각함수랑 연결되거등
코루틴 : 유니티 게임 오브젝트가 사라질 경우 유니티에서 코루틴은 StartCoroutine(코루틴)으로 시작하는데, 이때 StartCoroutine은 MonoBehaviour에서 상속 받는다. 그리고, 해당 MonoBehaviour가 사라지거나 꺼져서 작동하지 않게 될 경우에는, 해당 인스턴스가 사라져서, 코루틴은 중도에 터지게 된다. 이러한 부분을 해결할 수 있는 방법이 하나 있는데 바로 다른 MonoBehaviour에서 코루틴을 실행해 주는 방법이다. 이렇게 될 경우, 코루틴을 실행해주는 MonoBehaviour에 해당 코루틴이 인스턴스되어(참조가 아니라 인스턴스 된다. 그렇기에 코루틴이 돌고 있는 게임오브젝트가 destory되더라도 코루틴은) 정상 작동된다. 추천하는 방법은 : ContentManager.instance.StartCorouti..
Uniform Uniform Application이 OpenGL ES API를 통해 Shader로 전달되는 읽기 전용 값을 저장하는 변수.(일반 C# 코드에서 접근이 가능하다.)Uniform변수는 Vertex Shader와 Fragment Shader에서 모두 쓰이며, 주로 Matrix, Lighting Parameter, Color등의 값을 저장하는데 사용된다. uniform float4 _position;uniform half _Radius;uniform half _Softness;
Unity Shader lab 서피스 쉐이더 인풋 구조 서피스 쉐이더 인풋 구조 입력 구조체 Input에는 일반적으로 쉐이더에 의해 요구되는 텍스처 좌표가 있습니다. 텍스처 좌표의 이름은 uv 뒤에 텍스처 이름이 오는 형태로 해야 합니다(두번째 텍스처 좌표 세트를 사용하려면 uv2로 시작)다음 값을 입력 구조에 입력할 수 있습니다.float3 viewDir - 뷰 방향을 포함합니다. 시차 효과, 림 라이팅 등의 계산에 사용됩니다. *float4 withCOLOR 의미 - 보간된 정점 당 색상을 포함합니다.float4 screenPos - 반사 효과의 스크린스페이스 위치 또는 스크린스페이스 효과를 포함합니다.float3 worldPos - 월드 공간상의 위치를 ​​포함합니다.float3 worldRefl - Surface Shaders이 o.Normal에 기입..
(예제 / 설명) Spherical Mask Shader Part.2 [Step] 1. Part. 1에서 작업된 grayscale의 자료형을 half로 변경, /3으로 한것을 *0.333으로 바꿔줌 (속도 향상)2. c_g값을 grayscale로 변경하는데, half에서 fixed3로 캐스팅(형변환)3. inspector에서 색이 변하는 위치의 중심점을 잡아줄 vector _Position Properties를 생성해줌 (World기준이 될 것임)4. 색이 변할 영역의 크기를 정할 Range(0,100) _Radius Properties를 만들어줌5. 색이 변하는 테두리의 맺음의 정도를 지정해줄 Range(0,100) _Softness Properties를 만들어줌6. SubShader에 Properties를 받아줄 변수를 만듬7. _Position은 vector이기 때문..
(예제 / 설명) Spherical Mask Shader Part.1 [Step] 1. 새로운 Standard Surface Shader를 생성2. 셰이더 이름을 변경3. 머트리얼 생성4. 큐브 게임오브젝트를 생성5. 큐브 게임 오브젝트에 머트리얼 적용6. 적용된 머트리얼에 셰이더 적용 7. float grayscale = (c.r + c.g + c.b) / 3; // 회색은 RGB의 평균값으로 한다.8. fixed3 c_g = (grayscale, grayscale, grayscale); // fixed3(color) 값은 산출된 grayscale 값을 각각의 요소에 적용한다.9. o.Albedo = c_g; // 객체의 컬러 값을 위에 적용된 값으로 대체 한다.
ShaderLab 구문 (Unity) ShaderLab 구문Unity 의 모든 셰이더 파일은 “ShaderLab”이라는 선언형 언어로 작성되어 있습니다. 이 파일에서 중첩 중괄호 구문은 셰이더를 서술하는 다양한 요소를 선언합니다. 예를 들어, 어떤 셰이더 프로퍼티가 머티리얼 인스펙터에 표시되어야 하는지, 어떤 종류의 하드웨어 폴백을 할지, 어떤 종류의 블렌딩 모드를 사용할지 등을 선언합니다. 그리고 실제 “셰이더 코드”는 동일 셰이더 파일에서 CGPROGRAM 스니핏으로 작성되어 있습니다. 표면 셰이더와 버텍스 및 프래그먼트 셰이더를 참조하십시오.이 페이지와 하위 페이지에서는 중첩 중괄호 “ShaderLab” 구문을 기술합니다. CGPROGRAM 스니핏은 표준 HLSL/Cg 셰이딩 언어로 작성되어 있습니다. 각 문서 페이지를 참조하십시오.S..