나는 렌더링 원숭이와 HTC Desire HD에서 완벽하게 잘 작동하는 가장자리 감지 쉐이더를 가지고 있습니다. 그러나, 내 LG 3D P920에서 작동하지 않습니다. 다음은 쉐이더입니다.OpenGLSL 이상한 효과 - 원인 불명
즉, 중심 픽셀을 가져 와서 주변의 8 개 값을 뺍니다. 텍스처는 512x512입니다.
precision highp float;
varying vec2 vTextureCoord;
uniform sampler2D sTexture;
vec4 edges(void)
{
const float offset = 1.0/512.0;
vec4 c = texture2D(sTexture, vTextureCoord);
vec4 edge = texture2D(sTexture, vTextureCoord + vec2(-offset, -offset)) +
texture2D(sTexture, vTextureCoord + vec2(-offset, 0.0)) +
texture2D(sTexture, vTextureCoord + vec2(-offset, offset)) +
texture2D(sTexture, vTextureCoord + vec2(0.0, offset)) +
texture2D(sTexture, vTextureCoord + vec2(offset, offset)) +
texture2D(sTexture, vTextureCoord + vec2(offset, 0.0)) +
texture2D(sTexture, vTextureCoord + vec2(offset, -offset)) +
texture2D(sTexture, vTextureCoord + vec2(0.0, -offset));
return 8.0 * (c + -0.125 * edge);
}
void main() {
gl_FragColor = edges();
}
이제 PC와 Desire HD에서 색이 지정된 가장자리가 강조 표시된 주로 검은 색 이미지로 표시됩니다. 그러나 LG 장치에서는 과다 노출 이미지로 표시되지만 노이즈는 상당히 있습니다.
정확도 문제가있는 것처럼 느껴졌 고 정밀도를 높이려고 시도했으나 시도 할 대상이 무엇인지 또는 그 일을 올바르게 수행했는지 알 수 없습니다.
이것은이 쉐이더와 관련이 없으며,이 장치에는 노이즈가 있지만 다른 장치에는 노이즈가있는 것으로 보이는 조명 쉐이더가 있습니다.
나는 최종 값을 너무 고정하려고 시도했다.