조각 쉐이더에서 보간에 문제가 있습니다. 전체 화면 쿼드를 그리기 만하면됩니다. 뷰포트는 (0, 0, 128, 128)로 설정됩니다.조각 쉐이더의 보간은 0 + 반 화소에서 시작합니다
각 정점에는 텍스처 좌표가 있습니다.
var textureCoordinates = [
0.0, 1.0,
1.0, 1.0,
0.0, 0.0,
1.0, 0.0
];
난 감촉 잘 작동 변하는 변수를 통해 단편 쉐이더 정점 셰이더 좌표로부터 패스.
보간은 0 + halfpixel에서 시작하여 1-halfpixel로 끝나는 것이 문제입니다. 절반 픽셀은 (1/128) * 0.5입니다.
보간을 0에서 시작하여 1로 끝내고 싶습니다. vTextureCoord가 프래그먼트 셰이더에있는 노이즈 함수의 입력으로 사용되기 때문입니다.
MAG 필터와 MIN 필터는 모두 NEAREST로 설정됩니다.
WRAP_S 및 WRAP_T는 CLAMP_TO_EDGE로 설정됩니다.
텍스처 좌표 속성은 필수는 아니며 0에서 1까지의 숫자를 보간하는 내 방식 일뿐입니다. 조각 쉐이더에서 0에서 1까지의 숫자를 보간하는 간단한 방법이 있다면 속성을 알고 싶다면 어떻게 해야할지!
텍스처 좌표를 반 화소만큼 오프셋하려고했지만 예상 한대로 작동하지 않습니다.
나는 또한 조각 쉐이더에 절반 픽셀을 뺄려고했는데, 다음 보간 1.
newTextureCoord = vTextureCoord - (1.0/128.0) * 0.5;
에서 끝나지 않는다 모든 팁은, 의견이나 피드백은 매우 감사합니다!
정점 좌표도 전달하고 있습니까? 버텍스 좌표를 버텍스 쉐이더에 3 개의 컴포넌트 배열 (버텍스 쉐이더에서는 vec4로 선언)로, 텍스쳐 좌표는 2 개의 컴포넌트 배열 (버텍스 쉐이더에서는 vec2로 선언)으로 전달해야합니다. Wrap_S 및 Wrap_T 들어,이 질감의 GL_CLAMP 사용할 수 있습니다. – jwlaughton
예 저는 정점 좌표를 전달하고 있습니다. 모든 것이 정확하게 그려지고 있습니다. 내가 필요한만큼 동작하지 않는 보간입니다. var noiseVertices = [ -1.0, 1.0, 0.0, 1.0, 1.0, 0.0, -1.0, -1.0, 0.0, 1.0, -1.0, 0.0 ]; – raRaRa
그런 다음 WRAP_S 및 WRAP_T에 대한 GL_CLAMP가 대답 일 수 있습니다. – jwlaughton