炸殺

unity 5

카테고리 설명
  • Warpped Diffuse 우리의 대인배 벨브님께서 발표한 공식으로 팀포트리스2에서 처음 도입된 쉐이딩 방식입니다. 셀쉐딩에서 극단적인 명암을 주기 위해 if문과 ceil함수를 사용했었는데요, if문은 무겁다는 단점이, ceil은 명암단계의 간격을 조절할 수 없다는 단점이 있었습니다. 하지만 Warpped Diffuse 공식은 이 두가지 단점을 한 방에 해결해버렸습니다. Warpped Diffuse를 구현해보기 위해 가장먼저 기본적인 NdotL커스텀 라이트를 만들어줍니다. 그리고 Ramp 텍스쳐를 하나 받아오는데, 이때 해당 텍스쳐의 uv는 받아오지 않습니다. void surf에도 안불러옵니다! 바로 커스텀 라이트에 tex2D함수로 새로 만든 텍스쳐를 불러와줍시다. RampTex의 uv를 받아오지 않은..

  • 이전 포스트에서 만들었던 Lambert 쉐이더에는 Specular가 포함되어있지 않습니다. 이번에는 Lambert 쉐이더에 Speculer를 추가해 봅시다. Pong Shading Phong Shading이란? 1975년 Bui Tuong Phong씨가 개발한 쉐이딩 기술로, 면단위가 아닌 버텍스간의 보간작업을 진행하는 랜더링 방식입니다. 각진 면을 부드럽게 블랜딩 하는 것에 효과적이지만 실제 스페큘러와 흡사하지 않으며, 평평한 면에서는 스페큘러가 제대로 작동되지 않는 단점이 있습니다. (하이라이트가 언제나 동그랗게 맺힌다..) 퐁 공식에서는 어떻게 Speculer를 구하는 것일까요? Reflection Vector Speculer는 '정반사'를 의미합니다. 빛이 물체에 반사 되어 눈에 들어올 때, 입사..

  • 버텍스에는 다양한 정보가 들어있습니다. 대표적으로 1. Index 2. Position 3. UV 4. Normal 5. Color 등이 있죠. 이 5개만 알고 있어도 어디가서 욕먹지는 않을 겁니다. 오늘 저희가 오늘 주목할 건 이 5개의 정보들 중 'Color'입니다. 버텍스에는 float4의 '색'을 자체적으로 가지고 있습니다. RGBA 알파까지! 공짜로요! 텍스쳐를 따로 넣지 않아도 컬러를 넣을 수 있다는 말입니다. 버텍스 컬러를 따로 건들이지 않았을 땐 기본적으로 float4( 1, 1, 1, 1 )로 되어있습니다. 흰색의 불투명. 즉 우리가 버텍스 컬러를 사용하지 않아도 버텍스 컬러의 정보는 어찌됐건 포함이 되어있는 겁니다. 사용을 안할 이유가 없겠죠. 자 그래서 버텍스 컬러를 어떻게 넣냐, 3..

  • 이번 포스트에서는 UV에 대해 조금 더 심도 있게 다뤄보겠습니다. UV 매핑란 2차원 그림을 3차원 모델로 만들기 위한 프로세스로, 간단하게 말하면 3D 모델링의 '전개도'를 만드는 것입니다. 이전 포스트에서 우리가 모델링을 하고, UV를 펴고 저장을 하게되면 그 모양 그대로 보존되는 것이 아니라 각각의 버텍스에 위치, UV, Normal, Vertex Color등의 데이터가 저장되고, 엔진에 불러왔을 때 이 데이터를 바탕으로 엔진에서 '재구성'이 이루어진다고 이야기 했었죠? 버텍스에 저장되어있는 데이터를 기반으로 엔진에서 다시 만들기 때문에 버텍스를 겹쳐두거나 쓰레기 버텍스가 있을 경우 엔진에 불러왔을 때 오류가 생기기도 합니다. UV는 이러한 버텍스에 들어있는 정보 값 중 하나로 struct Inpu..

  • 24bit 컬러에서 흰색을 만들려면 R 255 G255 B255의 값을 주어야 합니다.최솟값인 0, 0, 0은 당연히 검정이겠죠? 색상 슬라이더나 색상 피커를 이용해보신다면 좀 더 빠르게 이해하실 수 있을 겁니다. 하지만 각 채널이 5,6,5bit가 되는 16bit 컬러에서는 R32 G64 B32가 흰색입니다. 즉 압축 포맷에 따라 범위가 모두 다르다는 뜻인데요. 이 다양한 압축 포멧에 따라 프로그래머가 일일이 색상 값을 입력한다? 머리가 터져버릴 것입니다. 여기서 사용하는 개념이 바로 '백분률'입니다. 백분율을 사용하게 되면 최댓값이 다르더라도 0~100%의 비율을 이용하여 색상을 가져오기 때문에 파일 포맷이 달라도 비슷한 결과가 나오게 되죠. 백분율이라 하면 0에서 100에 숫자를 떠올리기 쉽지만 0..