Я делаю некоторые фракталы glsl, и я хотел бы сделать подсчеты заклада, если они задерживаются слишком долго, чтобы поддерживать скорость кадров (без необходимости выяснять, что хорошо для каждого существующего устройства и любых будущих) ,Могу ли я сделать поручение glsl из цикла, когда он работает слишком долго?
Было бы неплохо, если бы таймер я мог проверить каждые 10 итераций или что-то ....
В случае неудачи, кажется, лучший подход может отслеживать, сколько времени потребовалось, чтобы сделать предыдущий кадр (или предыдущие N кадров) и динамически изменить число «итерации» на единицу ...?
Или какое-либо другое предложение? :)
Выполняется ли на каждой итерации постоянное время? – jtbandes
Каждый пиксель в фрактале рассчитывается, чтобы увидеть, «ускользает». Значение цвета - это то, сколько раз функция повторялась до того, как она сбежала. Таким образом, каждый пиксель собирается итерировать неизвестное количество раз (или до тех пор, пока не будет спасение из-за времени, по существу). Это все происходит * каждый проход * шейдера. Если это имеет смысл? Если графический процессор достаточно быстр, чтобы вычислить функцию 256 раз в 30 мс, это удивительно. Если это не так, я хотел бы отскочить назад. –
Это имеет смысл, я написал это раньше :) Но вы могли бы просто ограничить количество итераций. Я полагаю, что процессор может нести ответственность за проверку того, сколько времени занимает весь фрейм, если это достаточно хорошо. – jtbandes