Как мне проанализировать шейдер из ShaderToy в GLSL для использования в Android? ⇐ Android
Как мне проанализировать шейдер из ShaderToy в GLSL для использования в Android?
Во-первых, я полный нуб, когда дело касается шейдеров и GLSL. Итак, вот в чем дело:
Я пытаюсь проанализировать этот шейдер ShaderToy во фрагмент шейдера GLSL для использования внутри этой библиотеки GPUImage. Я использую этот файл в качестве образца для анализа.
Оригинал
// Форк "Simple Film Grain Shader" от terchapone. https://shadertoy.com/view/3sGGRz // 2022-04-24 03:48:40 const float GrainFactor = 0,1; //[0.0, 1.0] void mainImage (из vec4 fragColor, в vec2 fragCoord) { // Нормализованные координаты пикселей (от 0 до 1) vec2 uv = fragCoord/iResolution.xy; // Рассчитываем шум и выборку текстуры поплавок МДФ = GrainFactor; // увеличение количества шума float Noise = (fract(sin(dot(uv, vec2(12.9898,78.233)*2.0)) * 43758.5453)); vec4 tex = текстура (iChannel0, uv); vec4 col = tex — шум * mdf; // Вывод на экран фрагментЦвет = столбец; } Я получил следующий результат uniform sampler2D inputImageTexture; изменяющаяся текстура highp vec2; координата; равномерное низкочастотное флоат-зерно; пустая функция(){ lowp vec4 source =texture2D(inputImageTexture,textureCoordinate); // Нормализованные координаты пикселей (от 0 до 1) vec2 uv = текстураCoordinate.xy; // Рассчитываем шум и выборку текстуры плавающий МДФ = зерно; // увеличение количества шума float Noise = (fract(sin(dot(uv, vec2(12.9898,78.233)*2.0)) * 43758.5453)); vec4 col = источник - (шум * мдф); // Вывод на экран gl_FragColor = колонка; } Когда я изменяю значение зернистости между 0f и 1f, на выходе я получаю диагональные пунктирные линии. Что я здесь делаю не так?
Если все совсем плохо, как мне заставить здесь работать шейдер Film Grain? Есть идеи?
Во-первых, я полный нуб, когда дело касается шейдеров и GLSL. Итак, вот в чем дело:
Я пытаюсь проанализировать этот шейдер ShaderToy во фрагмент шейдера GLSL для использования внутри этой библиотеки GPUImage. Я использую этот файл в качестве образца для анализа.
Оригинал
// Форк "Simple Film Grain Shader" от terchapone. https://shadertoy.com/view/3sGGRz // 2022-04-24 03:48:40 const float GrainFactor = 0,1; //[0.0, 1.0] void mainImage (из vec4 fragColor, в vec2 fragCoord) { // Нормализованные координаты пикселей (от 0 до 1) vec2 uv = fragCoord/iResolution.xy; // Рассчитываем шум и выборку текстуры поплавок МДФ = GrainFactor; // увеличение количества шума float Noise = (fract(sin(dot(uv, vec2(12.9898,78.233)*2.0)) * 43758.5453)); vec4 tex = текстура (iChannel0, uv); vec4 col = tex — шум * mdf; // Вывод на экран фрагментЦвет = столбец; } Я получил следующий результат uniform sampler2D inputImageTexture; изменяющаяся текстура highp vec2; координата; равномерное низкочастотное флоат-зерно; пустая функция(){ lowp vec4 source =texture2D(inputImageTexture,textureCoordinate); // Нормализованные координаты пикселей (от 0 до 1) vec2 uv = текстураCoordinate.xy; // Рассчитываем шум и выборку текстуры плавающий МДФ = зерно; // увеличение количества шума float Noise = (fract(sin(dot(uv, vec2(12.9898,78.233)*2.0)) * 43758.5453)); vec4 col = источник - (шум * мдф); // Вывод на экран gl_FragColor = колонка; } Когда я изменяю значение зернистости между 0f и 1f, на выходе я получаю диагональные пунктирные линии. Что я здесь делаю не так?
Если все совсем плохо, как мне заставить здесь работать шейдер Film Grain? Есть идеи?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Передача растрового изображения в шейдер фрагмента glsl с использованием Jetpack Compose
Anonymous » » в форуме Android - 0 Ответы
- 37 Просмотры
-
Последнее сообщение Anonymous
-