Как нарисовать куб с буфером глубины в OpenGL ES 2.0?

Я безуспешно пытался нарисовать куб, используя OpenGL ES 2.0 и буфер глубины.

Есть ли какие-либо примеры этого, с которыми я мог бы сравнить, чтобы увидеть, где я ошибаюсь?


person HiTECNOLOGYs    schedule 12.12.2010    source источник


Ответы (1)


В качестве примера для недавнего занятия я создал пример приложения, рисующего текстурированный куб с использованием OpenGL ES 1.1 и 2.0, которое можно загрузить с сайта здесь. К сожалению, это приложение ни для чего не использует буфер глубины.

Я создал более сложное приложение OpenGL ES 2.0, в котором используется один здесь, так что вы можете перетащить код из этого в другой, чтобы выполнить то, что вы хотите.

person Brad Larson    schedule 12.12.2010
comment
Я не перепроверял, но у вас все еще есть этот (извините) уродливый хак с отбраковкой лицевой стороны в примере с кубом? Я чертовски сбит с толку в сочетании с некоторыми ошибками выбора и моими собственными лайфхаками. - person fzwo; 14.12.2010
comment
@fzwo - Да, знаю (по крайней мере, для реализации OpenGL ES 1.1). Я никогда не садился и не выяснял, как правильно обращаться с чередующимися витками индексированных треугольных полос, которые я использую для построения куба. Переключатель выбраковки на передней панели был предложен инженером Apple в качестве быстрого решения, поэтому я оставил его там. Кроме того, я до сих пор не исправил все индексы текстур в этом примере. Если у вас есть предложения, я весь слушаю. - person Brad Larson; 14.12.2010
comment
@Brad: я взял ваши кубы и использовал их (с указанием авторства, конечно) в прототипе строго 3D-программы GLES2. Мне кажется, они правильно отображаются (как без отбраковки, так и с отбраковкой обратной стороны), и я также пробовал и следовал тому, как вы делали индексы треугольников, и эта установка также показалась мне правильной. На данный момент у меня нет доступа к Xcode, поэтому я не могу сейчас комментировать ваш проект. В любом случае, спасибо за курс iTunes U — это один из очень и очень немногих ресурсов, доступных для новичков в GLES2. - person fzwo; 15.12.2010
comment
Когда я создаю проект с нуля и пытаюсь загрузить шейдеры с помощью GLProgram, они просто не загружаются. Есть ли что-то тонкое, что я должен сделать, чтобы правильно включить их в проект? Если я проверяю файл .app, файлы .fsh и .vsh отсутствуют. Есть идеи? - person sharvey; 17.12.2010
comment
@sharvey - вам нужно убедиться, что Xcode рассматривает ваши файлы шейдеров как ресурсы, а не код для компиляции. Убедитесь, что шейдеры перечислены в фазе сборки Copy Bundle Resources в вашей цели, а не в фазе Compile Sources. Таким образом, они будут скопированы в пакет вашего приложения и использованы во время выполнения. - person Brad Larson; 17.12.2010
comment
Большое спасибо, это была проблема. - person sharvey; 17.12.2010