uniform sampler2D sampler0;
uniform vec2 tc_offset[9];
void main(void)
{
float sample[9];
for (int i = 0; i < 9; i++) {
sample = texture2D(sampler0, gl_TexCoord[0].st + tc_offset).r;
}
float horizEdge = sample[2] + sample[5] + sample[8] - (sample[0] + sample[3] + sample[6]);
float vertEdge = sample[0] + sample[1] + sample[2] - (sample[6] + sample[7] + sample[8]);
float mag = sqrt( horizEdge*horizEdge + vertEdge*vertEdge );
float A = sample[2] + sample[5] + sample[8];
gl_FragData[0] = vec4(A,0,0,1.0);
}
제가 너무나 힘든 상황에 처했습니다. 정말 고수들좀 도와주세요...
위에 코드는 3x3에서 edge을 추출하는 코드입니다. 그런데, 마지막에 gl_FragData[0] = vec4(A,0,0,1.0)을 하면, 화면이 붉은 색으로 잘 작동을 합니다.
그런데, gl_FragData[0] = vec4(mag,0,0,1)로 바꾸면, 결과는 검은색 화면입니다.
이게 어떤날은 잘 됬는데, 코드를 조금바꾸니깐.. 에러를 냈습니다.
하아~~ 미치고 팔짝할 노릇이네요 ㅠㅠ.....
도대체 무슨 설정을 잘 못했길래 결과가 제대로 나오지를 않는 것입니까?
fragment shader 급 질문....
Moderator: 류광
-
- Posts: 225
- Joined: 2005-02-25 11:33
- Location: (주)위메이드엔터테인먼트 엔진개발팀
- Contact:
compile 에러인가요?
Code: Select all
float A = sample[2] + sample[5] + sample[8];
자기계발을 멈추는 순간 죽는다