Рендеринг в текстуру против рендеринга в CAEAGLL-слойную поддержку? - PullRequest
0 голосов
/ 18 декабря 2011

Я очень слабо разбираюсь в среде OpenGL, поэтому я пытаюсь понять это.Может ли кто-нибудь объяснить в простом выражении, в чем разница между этими двумя стилями рендеринга?Прежде всего, я хотел бы понять, что это значит для рендеринга в текстуру и когда было бы целесообразно сделать это?

1 Ответ

3 голосов
/ 18 декабря 2011

Если вы рендерится в текстуру, то изображение, которое вы рендерили, обрабатывается таким образом, чтобы сделать его сразу пригодным для использования в качестве текстуры, что на практике обычно означает с незначительным или нулевым усилием ЦП. Обычно вы визуализируете текстуру как часть более сложного конвейера рендеринга.

Буферы теней являются наиболее очевидным примером - это один из способов рендеринга теней. Вы размещаете камеру там, где должен быть источник света, и визуализируете сцену оттуда так, чтобы окончательная информация о глубине оказалась в текстуре. Вы не показываете это пользователю. Для каждого пикселя, который вы намереваетесь показать пользователю, вы определяете его расстояние от источника света и место его появления на карте глубины, а затем проверьте, находится ли он ближе или дальше от источника света, чем то, что осталось на карте глубины. Следовательно, прилагая определенные усилия для повышения точности, вы проверяете, является ли каждый пиксель «видимым» из источника света и, следовательно, горит ли он.

Рендеринг в представление с поддержкой CAEAGLLayer - это способ создания вывода OpenGL, который UIKit знает, как скомбинировать с экраном. Таким образом, это средство, с помощью которого iOS позволяет вам представить ваш окончательный вывод OpenGL пользователю в иерархии обычного сенсорного дисплея Cocoa.

...