Я очень новичок в концепции и использовании шейдеров в SpriteKit.
Я нашел этот урок о том, как визуализировать фрактал Мандельброта с помощью пользовательского файла шейдера - Fractal.fsh, прикрепленного к Custom Color Color Sprite.Свойство шейдера.
https://www.weheartswift.com/fractals-Xcode-6/
Это прекрасно работает, и я подумал про себя, что изучение OpenGL ES и пользовательских шейдеров в SpriteKit будет забавным упражнением.
Согласнодля Apple OpenGL ES устарела начиная с iOS 12.
https://developer.apple.com/library/archive/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/BestPracticesforShaders/BestPracticesforShaders.html
Мой вопрос такой:
Означает ли это, что пользовательские шейдеры для использования в SpriteKit должныбыть написанным на металле на данный момент?
Я попытался выяснить, как переписать код шейдера fractal.fsh, упомянутый в первой ссылке, на металле, но я пока не смог найтилюбые ресурсы о том, как конвертировать существующие пользовательские SKShader из OpenGL ES в Metal.Тем не менее, я НЕ ищу кого-то, чтобы переписать этот код для использования металла, только указатель в правильном направлении.
ОБНОВЛЕНИЕ: Основываясь на ответе @ Knight0fDragon, я постараюсь уточнитьмой вопрос:
Документация по классу SKShader гласит:
"Объект SKShader содержит пользовательский фрагментный шейдер OpenGL ES."
https://developer.apple.com/documentation/spritekit/skshader
Так что, если объект SKShader содержит пользовательский фрагментный шейдер OpenGL ES, что он будет содержать после того, как поддержка OpenGL ES устареет?
Как можно продолжить создание пользовательского фрагментного шейдера для использования в SpriteKit, еслинельзя использовать OpenGL ES с iOS 12?Сначала я подумал, что файл * .fsh, содержащий код GLSL, можно заменить файлом * .metal, содержащим эквивалентный металлический код, но эта оценка была явно слишком наивной (потому что я пытался и не мог назначить файл * .metalСвойство «Цветной спрайт» для пользовательского шейдера)