Loading...

OPENGL ES 문법

지정자 1. varying lowp vec4 DestinationColor; : 저정밀도(lowp) varying 변수, 10비트 부동 소수점 2. varying mediump vec2 TextureCoordOut; : 중정밀도(mediump) varying 변수, 16비트 부동 소수점 4. varying highp vec3 Licting; : 고정밀도(highp) varying 변수, 32비트 부동 소수점 4. uniform sampler2D Sampler; : uniform 형의 샘플러(Sampler) 변수. 이 변수는 텍셀 색상을 가져올 텍스처 레벨을 나타낸다. 5. uniform : 모든 uniform 변수는 기본값이 0. vs에서 read만 가능, fs에서 read만 가능. 함수 1. textu..

GLSL에서 사용하는 수식자, 식별자

저장소 수식자. 수식자 vs의 read여부 vs의 write여부 fs의 read여부 fs의 write여부 default O O O O const O O O O attribute O X X X uniform O X O X varying X O O X 정밀도 식별자 식별자 내부형 범위 사용 highp 32비트 부동소수점 [-9.999999x10의96승, +9.999999x10의96승] 색상, 법선벡터 mediump 16비트 부동소수점 [-65520, +65520] 텍스처 좌표 lowp 10비트 부동소수점 [-2, +2] 정점 위치, 행렬 그냥..머 대충 이렇ㄷㅏ...ㄷㄷ. Uniform Application에서 OpenGL ES API를 통해 Shader로 전달되는 읽기 전용 값을 저장하는 변수. Unifo..

factory function (팩토리 함수)

새로 생성된 파생 클래스 객체에 대한 기본 클래스 포인터를 반환하는 함수. class TimeKeeper { public: TimeKeeper(void); virtual ~TimeKeeper(void); }; // 시간 계산이 어떻게 되는지 몰라도 시간 기록을 유지하기 위한 클래스들. class AtomicClock : public TimeKeeper { public: AtomicClock(void) { cout

2012. 2. 27. 11:10

감마 보정 (gamma correction)

감마 보정 http://ko.wikipedia.org/wiki/%EA%B0%90%EB%A7%88_%EB%B3%B4%EC%A0%95 감마 보정 : 비선형 전달 함수를 사용해 빛의 강도신호를 비선형적으로 변형하는 것. 감마 조정 : 디스플레이 등의 특성에 따라 감마 값을 미세하게 조정하는 것. 감마 보정의 목적 : 인간의 시각이 밝기에 대해 비선형적으로 반응하기 때문에 최적의 화질을 보여주기 위해선 비선형적으로 데이터를 인코딩 하여 어두운 부분을 더 자세히 기록해야 한다. 감마 보정(gamma correction), 감마 인코딩(gamma encoding)의 이해 http://shotgunlee.egloos.com/10607756 자극 사이의 절대적인 차이가 아닌, 자극 사이의 비율이 중요하다. 어두운 부분..

2012. 2. 10. 12:33

벡터

참고 : 2005.02.21.noerror.벡터와행렬 kasa study에서 noerror님이 발표하신 내용. 원래 웹상에서 내적관련 검색하다가 나온 스터디 자료인데 아주 오래전 것인듯..무려 7년전이다~!!!. 별생각 없이 보다가 4번째 장에 벡터 의미 라는 제목으로 space : direction, postion 이라는 단락이 있는데 이게 아무리 생각해 봐도 이해가 안되더라능... 이게 무슨 말일까.... 벡터는 그냥 크기와 방향인데....위치?? 위치는 점이 가지는 특성이고.... 벡터 의미에 방향은 왜 들어가 있는 거지? 하면서 vector space에 그러한 문구가 있었던가? 생각하다 보니 그냥 처음부터 천천히 정리해보자는 심정으로 다시 정리중..... 2005년도에도 참여해서 스터디 들었으면 ..

가우스 필터

이전 방식들(16,64 박스 필터링)은 셰이더 버전이 올라갈 수록 많은 텍셀을 샘플링 할 수 있지만 그것도 한계가 있다. 좀 더 많은 텍셀을 샘플링 하려면 어떻게 해야 할까? 이렇게 한번 해보자. 1. 가로로 한번 뭉개준다. 2. 세로로 한번 뭉개준다. 3. 쨔잔~! 즉 흐림필터를 두번 적용해 주는 것이다. 이때 모든 텍셀을 같은 가중치로 평균하는 것이 아니라 텍셀 중심을 기준으로 멀어질 수록 낮은 가중치를 적용하도록 하자. 이를 위해 필요한 것이 "가우스 함수"라는 것이다. 가우스 함수를 블러에서 쓰는 이유는 좀 더 자연스럽고 부드럽게 샘플링을 하기 위해서 이다. 사실 가우스 함수는 블러뿐 아니라 여러곳 에서 사용되는데 블럼 이펙트나 산탄총 발사시 자연스러운 렌덤 발사등에 사용되기도 한다. 위키백과님의..

64박스 필터 샘플링

이전의 16박스, 9콘 필터 샘플링은 픽셀셰이더 1_1 버전의 한계인 한번의 렌더링에서 읽어들일 수 있는 텍스쳐가 4개라는 것을 염두에 둔 방식이다. 하지만 ps 2_0에서는 16개의 멀티텍스쳐 수를 지원하므로 16개의 샘플링 점을 읽어 64 텍셀을 한번에 읽는 방법을 사용할 수 있다. 그림 1 : 16개의 샘플링 점들. 위의 그림을 보면 16개의 샘플링 점들이 구성된 모습을 볼 수 있다. ps에서는 텍스쳐를 16텍셀을 읽어 합계를 평균할 수 있지만 vs에서는 ps로 넘길 수 있는 텍스쳐 좌표의 수가 8개 까지므로 8개를 넘겨주고 나머지 8개는 좌표이동을 통해 구한다. 그림 2 : 텍셀을 왼쪽으로 이동. 위의 그림처럼 vs로 부터 오른쪽 8개의 텍셀 좌표를 입력받아 -4.0을 연산해 왼쪽 8개의 텍셀 위..

2012. 1. 26. 21:40

9콘 필터 샘플링

16박스 필터 샘플링은 텍셀 간격이 텍셀 2칸 이었지만 9콘 필터 샘플링은 텍셀 한칸을 간격으로 샘플링 한다. 그럼으로 인해서 얻을 수 있는 이점은 흐려지는 양이 적고 퀄리티도 좋아진다. 1 2 1 2 4 2 1 2 1그림1 : 텍셀 합성 가중치 값 이 9콘 필터 샘플링에서 재미있는 점은 텍셀로부터 읽어들이는데 가중치를 둔다는 것이다. 가운데 픽셀에서는 100%을 받아 들이고 상하좌우에서는 50%를, 각 모서리로부터는 25%의 가중치를 둔다. 이 샘플링의 합성 텍셀 강도를 높이 그래프로 그리면 중앙이 강하고 주변이 낮은 형태가 나오며 9개의 텍셀을 사용하기 때문에 9와 cone을 붙여 9콘 필터 샘플링이라고 한다. 그림 2 : 샘플링 위치 샘플링 위치가 이렇게 되어 있다고 생각해 보자. 이는 버텍스 셰이..