fragment shader 급 질문....

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

운영자: 류광

Locked
fantajeon
전체글: 8
가입일: 2003-08-04 22:56
사는 곳: 우송대학교

fragment shader 급 질문....

전체글 글쓴이: fantajeon » 2008-04-20 21:31

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)로 바꾸면, 결과는 검은색 화면입니다.

이게 어떤날은 잘 됬는데, 코드를 조금바꾸니깐.. 에러를 냈습니다.


하아~~ 미치고 팔짝할 노릇이네요 ㅠㅠ.....

도대체 무슨 설정을 잘 못했길래 결과가 제대로 나오지를 않는 것입니까?

lifeisforu
전체글: 225
가입일: 2005-02-25 11:33
사는 곳: (주)위메이드엔터테인먼트 엔진개발팀
연락처:

compile 에러인가요?

전체글 글쓴이: lifeisforu » 2008-04-22 14:25

코드: 모두 선택

float A = sample[2] + sample[5] + sample[8];
이 부분 주석처리 하고 mag 넣어 보세요.
자기계발을 멈추는 순간 죽는다

fantajeon
전체글: 8
가입일: 2003-08-04 22:56
사는 곳: 우송대학교

전체글 글쓴이: fantajeon » 2008-04-22 16:45

네, 감사... ^^
^^

Locked

접속 중인 사용자

이 포럼을 보고 있는 사용자: 회원 0 명, 손님 4 명