2011-06-14 3 views
0

나는 다음과 같은 유니폼을 가진 쉐이더 선언이 :은 (IOS)를 실패

균일 FR을 떠 highp;

GLfloat num = 1.0f; 
glUniform1f(glGetUniformLocation(self.Program, "fr"), num); 

을하지만 전혀 설정되지 않습니다 내 렌더링 방법에

, 그것은 적절하게 설정됩니다. 이것들은 꽤 기본적인 것 같아서 나는 그것이 작동하지 않는 이유를 발견 할 수 없다. 올바른 구문을 사용 했습니까? 어쩌면

+0

어떻게 당신은 설정되지 않습니다 알 수 있습니까? 셰이더는 네가 원하는 걸하지 않니? 아마도 그 원인은 다른 것으로 인한 것입니다. 나는 그것을 밖으로 최적화되고 그것의 문제가있을 수 있습니다 생각보다 내 의견으로 당 0의 기본 값을 사용하여 –

+0

그것. 나중에 업데이트됩니다! – Simon

답변

0

나는 내 문제를 발견했다.

내가 사용하는 프로그램을 호출하기 전에 유니폼을 설정했다. 이 답변을 찾는 사람은 해당 프로그램의 유니폼을 설정하기 전에 use program을 호출하십시오.

1

당신은 쉐이더 코드에서이 FR 값을 사용하지 않는? 그리고 컴파일러는 정말 컴파일 된 프로그램에 포함이 비활성 균일하지 만들 것, glGetUniformLocation 그렇게 -1과 같이 인덱스를 반환합니다. 셰이더를 확인하고 glGetUniformLocation에서 반환되는 값은 무엇입니까?

건배, 르지 Zabłocki

+0

머리를 주셔서 감사합니다. 나는 컴파일러를 최적화 할 것인지 궁금하지만 아마존에서 내 쉐이더 책이 도착했을 때 단지 오늘 아침에 대한 참조를 발견했다. – Simon