Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Three.js, FX файл, vertex и fragment Shader (https://javascript.ru/forum/misc/84023-three-js-fx-fajjl-vertex-i-fragment-shader.html)

Raadsert 14.05.2022 17:10

Three.js, FX файл, vertex и fragment Shader
 
Здравствуйте.

Возникла проблема с присваиванием шейдеров объекту, имеется файл с расширением .fx который содержит в себе оба типа шейдеров vertex и fragment. В документации я не нашёл способа загрузить шейдеры одним fx файлом.

Возможно кто-то из местных знает как можно загрузить такой файл в three.js или как разделить код в fx-файле на вершинный и фрагментный шейдеры?

MallSerg 14.05.2022 18:03

Открываешь файл блокнотом и одну часть сохраняешь как один шейдер а другую как другой шейдер.
Или делаешь тоже самое но уже скриптом который отделяет теплое от мягкого.

Но боюсь тебе это не поможет т.к. расширение fx используют для HLSL шейдерного языка (Direct X) у а Tree JS используется язык GLSL (OpenGL SE). А это разные языки.

Raadsert 14.05.2022 18:20

Цитата:

Сообщение от MallSerg (Сообщение 545393)
Открываешь файл блокнотом и одну часть сохраняешь как один шейдер а другую как другой шейдер.
Или делаешь тоже самое но уже скриптом который отделяет теплое от мягкого.

Но боюсь тебе это не поможет т.к. расширение fx используют для HLSL шейдерного языка (Direct X) у а Tree JS используется язык GLSL (OpenGL SE). А это разные языки.

А как отличить один от другого? Вы знаете где можно достать такой скрипт? У меня что-то совсем мало информации по шейдерам выдаёт, не говоря уж о скриптах.

MallSerg 14.05.2022 19:04

>> А как отличить один от другого?
На глазок.

Ну или формализовать признаки отличающие одно от другого, что позволит сформулировать различия в виде алгоритма, реализовав этот алгоритм программированием ты получишь программу для машины.
И уже такая машина исполняя сформулированную задачу (программу) сможет отделять одно от другого. =)

Ну а на глазок GLSL отличается от HLSL синтаксисом ну или в коде шейдера есть явные признаки по типу строк " #ifdef GL_ES " или " gl_FragColor = ... ".


Часовой пояс GMT +3, время: 15:09.