Мне удалось создать простой проводник Мандельброта с использованием Open Gl и CGFX SDK, предоставленный NVidia.Он работает хорошо, но в настоящее время основан на плавающей запятой и поэтому не имеет большой «глубины» - поскольку расстояние от самого низкого комплексного числа до самого большого уменьшается, точность теряется, и результирующее изображение «пикселируется».
К сожалению, CGFX, похоже, не поддерживает двойную точность, и даже тогда двойная точность ограничена моими намерениями.Поскольку CGFX из-за его предполагаемого дизайна не имеет класса bignum, я подумал, что будет лучше создать свой собственный.
Мне удалось создать прототип в C ++ - который использует только целые числа без знака -но когда я попытался переместить его в CGFX, FX Composer 2.5 не смог его скомпилировать.Поскольку я использую только целые числа без знака, умножение и сложение, код содержит много операций сдвига битов, которые в соответствии с FX Composer 2.5 недоступны в моем профиле.
Я знаю, что этот вопрос содержит многозапросов, но, к сожалению, я не очень знаком с числовым анализом, программированием шейдеров или открытым gl, и в этот момент я чувствую себя подавленным - и совершенно уверен, что пытаюсь устранить утечку с помощью кувалды.
Так что, если у кого-то есть ответ на любой из этих вопросов, я был бы благодарен:
Поддерживает ли CGFX или любой другой язык шейдеров операторы сдвига битов для целых чисел без знака и с плавающей точкой (Требуется для преобразования чисел с плавающей точкой в большие)?
Поддерживает ли CGFX или любой другой язык шейдеров двойную точность или большую плавающую точку?
Есть ли более утонченный математический способ решения моей проблемы, чем создание большого класса с плавающей точкой?
Если таковые имеютсяВам нужно больше разъяснений или фрагментов кода, не стесняйтесь спрашивать.