В openGL, как вы можете получить элементы для рисования назад?

Try...catch

http://php.net/manual/en/language.exceptions.php

Вы можете сделать эхо-сообщение ошибки в своем собственном css.

13
задан AlanKley 9 October 2008 в 00:57
поделиться

6 ответов

Следующий вызов выключит объекты порождения тестирования глубины, которые будут оттянуты в созданном порядке. Это в действительности вызовет объекты потянуть наоборот.

glDepthFunc(GL_NEVER);      // Ignore depth values (Z) to cause drawing bottom to top

Быть уверенными Вы не называете это:

glEnable (GL_DEPTH_TEST);   // Enables Depth Testing
24
ответ дан AlanKley 9 October 2008 в 00:57
поделиться
  • 1
    Путем составления таблицы записей, где запись содержит каждую строку – MikeT 24 June 2013 в 14:23

Для Вашего конкретного вопроса нет нет никакого стандартизованного способа для определения упорядочивания глубины в OpenGL. Некоторые реализации могут сделать переднюю сторону для поддержки глубины, заказывающей по умолчанию, потому что это обычно быстрее, но это не гарантируется (когда Вы обнаружили).

, Но я действительно не вижу, как это поможет Вам в Вашем сценарии. При рисовании черного квадрата перед белым квадратом, черный квадрат должен быть оттянут перед белым квадратом независимо от того, какой порядок они привлечены в, пока Вам включили глубину, буферизующую. Если они являются на самом деле компланарными, то никакой не действительно перед другой, и любой алгоритм сортировки глубины был бы непредсказуем.

учебное руководство, на которое Вы отправили ссылку только, говорило об этом, потому что сортировка глубины релевантна при использовании прозрачности. Но это не звучит мне как, это - то, что Вы после.

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

5
ответ дан Gerald 9 October 2008 в 00:57
поделиться
  • 1
    Таблицы @MikeT - в продуктах SQL - имеют строки, не записи. don' t смущают других при помощи термина " records". – ypercubeᵀᴹ 21 May 2014 в 17:27

Потяните объекты, что Вы хотите быть в назад немного позади объектов, что Вы хотите быть в передней стороне. Таким образом, на самом деле изменитесь, значение z (принимающий z перпендикулярно экранной плоскости). Вы не должны изменять его много, чтобы заставить объекты тянуть друг перед другом. И если Вы только изменяете значение z немного, Вы не должны замечать большую часть смещения от их желаемого положения. Вы могли даже пойти действительно необычные, и вычислить корректный x, y положение на основе сменившего z положения, так, чтобы объект появился, где это, как предполагается, находится.

2
ответ дан Kibbee 9 October 2008 в 00:57
поделиться
  • 1
    Существует различие между таблицей, varables/arrays и касательно курсоров. Я думаю, что исходный вопрос о первом. – Peter Walke 24 February 2011 в 14:56

Рисование порядка твердо. Нет никакого легкого решения. alogorithm живописца (объекты вида их расстоянием относительно представления Вашей камеры) является самым простым, но поскольку Вы обнаружили, это не решает все случаи.

я предложил бы комбинацию algroithm и слоев живописца. Вы создаете слои для определенных элементов на Вашей программе. Таким образом, Вы получили фоновый слой, слои объектов, слои специального эффекта и уровень GUI.

Использование алгоритм живописца на объектах каждого слоя. В некоторых специальных слоях (как Ваш уровень GUI), не сортируйте с алгоритмом живописца, но Вашим порядком вызовов. Вы называете тот белый квадрат сначала, таким образом, он оттянут сначала.

2
ответ дан MrValdez 9 October 2008 в 00:57
поделиться
  • 1
    Запись является набором данных, которые принадлежат объекту, как таковой, может быть единственная строка в единственной таблице или много связанных строк через многие таблицы. таким образом, термин запись корректен – MikeT 23 May 2014 в 11:01

Ваш материал будет оттянут в точном порядке, в котором Вы вызываете glBegin/glEnd функции. Можно получить буферизующее глубину использование z-буфера, и если 2-е объекты имеют различные значения z, можно получить эффект, Вы хотите тот путь. Единственным путем Вы видите поведение, которое Вы описываете на Mac, то, если программа тянет материал в наоборот порядке вручную или использует z-буфер для выполнения этого. OpenGL иначе не имеет никакой функциональности автоматически, как Вы описываете.

1
ответ дан Jim Buck 9 October 2008 в 00:57
поделиться

Как AlanKley указал, способ сделать, это должно отключить буфер глубины. Алгоритм живописца является действительно 2D методом сканирующего преобразования, используемым для рендеринга полигонов в правильном порядке, когда у Вас нет чего-то как z-буфер. Но Вы не применили бы его к 3D полигонам. Вы обычно преобразовывали бы и проектировали бы их (пересечения обработки с другими полигонами) и затем сортировали бы получающийся список 2D спроектированных полигонов их спроектированной z-координатой, затем тянули бы их в обратном z-порядке.

я всегда думал об алгоритме живописца как об альтернативной технике для удаления невидимой поверхности, когда Вы не можете (или не хотеть к), используют z-буфер.

0
ответ дан davidavr 9 October 2008 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: