То, что я пытаюсь сделать,-это написать текстуру хранения в одном проходе рендеринга, а затем прочитать из этой текстуры во втором проходе, но значение, которое я получаю во втором проходе, всегда одинаково, независимо от того, что я пишу в первом проходе.
То, что я ожидал получить во втором проходе A.R == 1 , поэтому все фрагменты полученного изображения должны быть красными, но я на самом деле получаю A.R == 0 , и все фрагменты черные. Ошибка, функция Texturestore не вызывается. Прямо сейчас я даже не могу понять, какой из этого случая у меня есть, но я не вижу, как может быть ошибка прочтения/записи с предопределенным местоположением.>
То, что я пытаюсь сделать,-это написать текстуру хранения в одном проходе рендеринга, а затем прочитать из этой текстуры во втором проходе, но значение, которое я получаю во втором проходе, всегда одинаково, независимо от того, что я пишу в первом проходе.[code]const storageTexture = this._device.createTexture({ dimension: '2d', size: [512, 512, 1], format: 'r32float', usage: GPUTextureUsage.STORAGE_BINDING })
return in.position; } < /code> Fragment Shader Code для второго прохода: < /p> @fragment fn fragment_main(in: VertexOutput) -> @location(0) float4 {
let a = textureLoad(texture, vec2u(0, 0), 0);
return vec4(a.r, 0, 0, 0); } [/code] То, что я ожидал получить во втором проходе A.R == 1 , поэтому все фрагменты полученного изображения должны быть красными, но я на самом деле получаю A.R == 0 , и все фрагменты черные. Ошибка, функция Texturestore не вызывается. Прямо сейчас я даже не могу понять, какой из этого случая у меня есть, но я не вижу, как может быть ошибка прочтения/записи с предопределенным местоположением.>