2013-12-08 3 views
-1

Nexus 7에서이 셰이더 아래에서 시도하고 있는데 예상대로 작동하지 않습니다.다른 장치에서 glsl 셰이더가 다르게 작동합니다.

http://www.iquilezles.org/apps/shadertoy/index2.html?p=flower

녹색 회전 배경 그냥 넥서스 7에없는 (그리고는 Adreno 300 시리즈와 같은 GPU를 다른 장치) 중 하나가 왜 이런 일이에 관해서는 어떤 힌트를 줄 수 있습니다

?

+0

해당 webgl 예제에서 "녹색으로 회전하는 배경"이 표시되지 않습니다. 왜 그게 있어야한다고 생각하니? – derhass

+0

derhass, 이미지의 본인은 http://imgur.com/ISaQFSx에 대해 이야기하고 있습니다. 같은 종류의 이미지를 얻고 있습니까? – user1109536

+0

아니요. 백그라운드의 녹색 줄무늬가 없습니다. – derhass

답변

0

쉐이더가 다소 손상되었습니다. COL은 꽃의 외부 영역에 대한 < 0을 것 같다 때부터

gl_FragColor = vec4(
    col, 
    max(col,0.0)-h*0.5+r*.2 + 0.35*h*(1.0-r), 
    max(col,0.0)-h*r + 0.1*h*(1.0-r), 
    1.0); 

원래 라인

gl_FragColor = vec4(
    col, 
    col-h*0.5+r*.2 + 0.35*h*(1.0-r), 
    col-h*r + 0.1*h*(1.0-r), 
    1.0); 

을 변경하여 녹색 배경을 볼 수를 조정할 수 있습니다. 어떻게 하나의 준수하는 구현에 녹색 배경을 참조 궁금해.

+0

감사합니다. 그것은 효과가 있었다. 그런데 어떻게 당신이 이것을 고쳤습니까. col에 음수 값을 입력하려고 시도했지만 녹색 색상이 계속 표시되었습니다. 어쩌면 내 Geforce gpu와 관련이 있습니다. – user1109536

+0

@ user1109536 : 어떻게 설명했는지 설명했습니다. 이것이 최선의 해결책인지 확실하지 않지만. 또한 Geforce GPU (660TI, nVidia 331.17 드라이버, Linux, Firefox 25.0.1)도 테스트했습니다. – derhass

+0

부동 소수점 컬러 버퍼에 드로잉하는 경우 기본 셰이더는 조각 셰이더에서 출력 한 후 색상을 [0.0, 1.0] 범위로 고정시키는 ***이 아닌 ***입니다. 이제 기본 프레임 버퍼는 고정 소수점이며, 고정 소수점 색상 버퍼의 기본 클램핑 동작은 [0.0, 1.0] 범위로 고정됩니다. 네거티브 컬러로 블렌딩을 수행하면 무언가를 볼 수 있습니다. 나는 OP가 고정 소수점과 부동 소수점 픽셀 포맷의 차이를 이해할 것이라고 상상해보아야한다. 그러나 실제로 이것이 문제의 원인 이었다면 말이다. 어떤 경우라도 드라이버 버그와 비슷하게 들립니다. –

관련 문제