으읔.. 쳐다보기도 싫은 “현대통계학”


ㅎㅎ.. 벌써 한달전부터 보고 있는 책이다. 이젠 정말 보기도 싫다. 무슨 말인지도 도통 모르겠고. 그런데 어쩔수없이 보고 있는 이유는, 분명 언젠가는 반드시 통계학이라는 분야가 필요할 것이라는 추측에서이다.

또한…. 싸나이 한번 보기 시작한 책은 다 봐야하지 않냐라는 생각에서 이다. 어여 대충이라도 한번 훌터나 보자. 이거 얼릉 보고 다음엔, 유익하고 재미있는 프로그래밍 책 보고파.. ㅠ_ㅠ 어휴… 지겨워 지겨워…

아참, 신기한게.. 요 몇일전에 영풍문고엘 가서 책을 훌터보던중에.. 요 책이랑 똑 같은 책을 봤다. 걔도 4판이던데.. 내가 보는것도 4판이네.. 내가 이 책을 2002년 4월 15일날 샀는데.. 그동안 개선도 없이 그냥 막 찍어 팔기만 했구먼…. ㅡ,.ㅡ

OpenGL Shader – 16

Varying 변수
원문 : http://www.lighthouse3d.com/opengl/glsl/index.php?varying

이전에 언급했듯이, 쉐이더는 2가지가 있다 : 버텍스 쉐이더와 프레그먼트 쉐이더. 프레그먼트에 대한 값을 계산하기 위해서는, 버텍스 쉐이더에 접근할 필요가 있다. 예를들어서, 프레그먼트에 대한 빛 계산을 하려면, 해당 프레그먼트에서의 노말벡터를 얻어와야 한다. 그러나 OpenGL에서, 노말벡터는 오직 버텍스에 지정되어져 있다. Attribute 변수를 사용해서 OpenGL 어플리케이션으로부터 노말벡터를 얻어왔기 때문에 노말벡터를 버텍스 쉐이더에서 접근할 수 있지만, 프레그먼트 쉐이더에서는 접근할 수 없다.

모든 버텍스 데이터를 포함해서, 버텍스가 처리된 후에, 버텍스 정보는 연결정보를 이용할 수 있는, 파이프라인의 어떤 단계로 이동된다. 이 어떤 단계가 프리미티브가 만들어지고 계산되어지는 단계이다. 각 프레그먼트에 대해서, 자동으로 해석되어지고 프레그먼트 쉐이더에 제공되지는 변수가 있다. 예를들어 프레그먼트의 색상이 있다. 프레그먼트 쉐이더에 도착하는 색상은 프리미티브를 구성하는 버텍스의 색상 보간의 결과이다.

이 변수의 타입이 바로 “varying” 변수이다. GLSL은 미리 정의된 몇개의 varying 변수를 가지고 있는데, 위에서 언급한 색상이 한 예이다. GLSL은 varying 변수를 사용자가 정의할 수 있다. 이 변수는 버텍스 쉐이더와 프레그먼트 쉐이더 모두에서 선언되어져야한다. 아래처럼 말이다.

varying float intensity;

varying 변수는 버텍스 쉐이더에서 각 버텍스에 대한 계산값으로 설정된다. 프레그먼트 쉐이더에서 이 varying 변수(버텍스 쉐이더에서 이미 계산되어진 값들)는 단지 읽기만 할 수 있다.