Вопрос : Проблемы с буфером восковки Opengl

Hi,
I am имея тревогу using буфер восковки в OpenGL.

Basically просто, котор вариант моей проблемы будет this.

I имеет квад который можно сосчитать как зона пола прямоугольника «главная». Я также имею несколько плоские полигоны сидеть на зоне пола на такой же высоте поэтому они копланарны и терпят от z fighting.

To получают вокруг этого без фактическ резать те полигоны из зоны главного пола, я использую восковку buffer.

I также имею несколько другие формы которые могут или не могут быть прозрачны. Эти не ограничены к зоне пола поэтому smogли быть, например, крыши, Кодий стен etc.

The следующим образом:

glEnable (GL_STENCIL_TEST);
glStencilFunc (GL_ALWAYS, 1, 1);
glStencilOp (GL_KEEP, GL_ZERO, GL_REPLACE);

mainFloorArea.Draw ();

glStencilFunc (GL_ALWAYS, 1, 1);
glStencilMask (GL_FALSE);
glDisable (GL_DEPTH_TEST);

otherPolygons.Draw ();

glEnable (GL_DEPTH_TEST);
glDisable (GL_STENCIL_TEST);

restOfTheShapes.Draw ();

This все работает отлично и всему будет lovely.

However, я нужно добавить в нескольк текста который может принять любое положение в космосе 3D. Это должно быть сделано перед вышеуказанным Кодим так как оно появится за любой прозрачной проблемой surfaces.
The я получаю что когда текст перед otherPolygons он принимает на цвет otherPolygons. Это очевидно делает концы текста unreadable.

Any на как я smog предотвратить это? Я думаю причина это случается потому что я устанавливаю функцию восковки к всегда пропуску для otherPolygons поэтому текст действует как stencil.

I имеет судимую расчистку буфер восковки прежде чем не рисовать пол но ничего покажется к work.

Thanks заранее
class=

Ответ : Проблемы с буфером восковки Opengl

Я не уверен как получить вышеуказанную деятельность Кодего. Это будет Кодий, котор я использую для того чтобы достигнуть страниц стержня. Будет третье или четвертое поколение и довольно робастные. Это будет вполне модулем Кодего.

'clsInternetConnection
'
'Тип обеспечивает functionalty для того чтобы прочитать страницы стержня.
'
'Снабжено по мере того как модуль типа для пользы с любым проектом VB или VBA.
'
'© Кевин 2008-2010 M. Jones

Вариант точный

Приватное Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Приватное Const INTERNET_FLAG_RELOAD = &H80000000
Приватное Const INTERNET_FLAG_PRAGMA_NOCACHE = &H100
Приватное Const INTERNET_OPTION_RECEIVE_TIMEOUT как длиной = 6

Приватное Const UserAgent = «VB»

Приватное mConnectionHandle как длиной
Приватные mTimeoutSeconds как длиной

Приватно объявите свободу «wininet» InternetCloseHandle функции (_
     hInet ByRef как длиннее _
  ) Как длиной

Приватно объявите псевдоним «InternetOpenA» «wininet» свободы InternetOpen функции (_
     ByVal sAgent как шнур, _
     lAccessType ByVal как длиной, _
     sProxyName ByVal как шнур, _
     sProxyBypass ByVal как шнур, _
     lFlags ByVal как длиннее _
  ) Как длиной

Приватно объявите псевдоним «InternetOpenUrlA» «wininet» свободы InternetOpenUrl функции (_
     hInternetSession ByVal как длиной, _
     lpszUrl ByVal как шнур, _
     lpszHeaders ByVal как шнур, _
     dwHeadersLength ByVal как длиной, _
     dwFlags ByVal как длиной, _
     dwContext ByVal как длиннее _
) Как длиной

Приватно объявите свободу «wininet» InternetReadFile функции (_
     ByVal hFile как длиной, _
     sBuffer ByVal как шнур, _
     lNumBytesToRead ByVal как длиной, _
     lNumberOfBytesRead как длиннее _
  ) Как интежер
 
Приватно объявите псевдоним «InternetSetOptionA» свободы «wininet.dll» InternetSetOption функции (_
     hInternet ByVal как длиной, _
     dwOption ByVal как длиной, _
     lpBuffer ByRef как любые, _
     dwBufferLength ByVal как длиннее _
  ) Как длиной

Приватное Sub Class_Initialize ()

  mConnectionHandle = InternetOpen (UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
  Если mConnectionHandle = 0 после этого
     MsgBox «неспособное для того чтобы раскрыть интернет-связь. Самой правоподобной причиной будет слишком много ручек была создана.»
  Закончитесь если
  mTimeoutSeconds = 30

Подводная лодка конца

Приватное Sub Class_Terminate ()

  mConnectionHandle InternetCloseHandle
     
Подводная лодка конца

Общественная функция GetWebPage (_
     URL ByVal как шнур, _
     Опционное ByVal ProxyUserID как шнур, _
     Опционное ByVal ProxyPassword как шнур, _
     Опционное ByVal TimeoutSeconds как длиннее _
  ) Как шнур

'Получите страницу стержня.
'
'Синтаксис
'
'GetWebPage (URL, [ProxyUserID], [ProxyPassword])
'
'URL - Вполне URL к странице стержня.
'
'ProxyUserID - потребитель - удостоверение личности для сервера полномочия, если любой. Опционно. Если снято
'после этого никакой сервер полномочия не принят.
'
'ProxyPassword - пароль для сервера полномочия. Опционно. Проигнорировано если
'ProxyUserID снято.
'
'TimeoutSeconds - число секунд, котор нужно ждать до приурочивать вне. Опционно.
'Если снято после этого 30 секунд использованы.

  Тусклое ConnectionHandle как длиной
  Тусклое URLHandle как длиной
  Тусклое BytesRead как длиной
  Тусклый результат как булевско
  Тусклое InputBuffer как шнур * 10000
  Тусклое PageContent как шнур
  Тусклое SecurityData как шнур
 
   Если Len (ProxyUserID) > 0 после этого
     SecurityData = ProxyUserID
     Если Len (ProxyPassword) > 0 после этого
        SecurityData = SecurityData & «: » & ProxyPassword
     Закончитесь если
     SecurityData = SecurityData & «@»
     URL = заменяет ть (URL, «: /», «: /» & SecurityData)
  Закончитесь если
 
   Если TimeoutSeconds = 0 после этого TimeoutSeconds = mTimeoutSeconds
 
   Если mConnectionHandle <> 0 после этого
     Результат = InternetSetOption (mConnectionHandle, INTERNET_OPTION_RECEIVE_TIMEOUT, TimeoutSeconds * 1000, Len (TimeoutSeconds))
     URLHandle = InternetOpenUrl (mConnectionHandle, URL, vbNullString, 0, INTERNET_FLAG_RELOAD или INTERNET_FLAG_PRAGMA_NOCACHE, 0)
     Если URLHandle <> 0 после этого
        Сделайте
           InputBuffer = vbNullString
           Результат = InternetReadFile (URLHandle, InputBuffer, Len (InputBuffer), BytesRead)
           PageContent = PageContent & вышли (InputBuffer, BytesRead)
        Закрепите петлеть пока BytesRead > 0
        InternetCloseHandle URLHandle
     Закончитесь если
  Закончитесь если
 
   GetWebPage = PageContent
 
Функция конца

Общественное имущество получает ValidInternetConnection () как булевско

  ValidInternetConnection = mConnectionHandle <> 0

Свойство конца

Общественное имущество получает TimeoutSeconds () как длиной

  TimeoutSeconds = mTimeoutSeconds

Свойство конца

Общественное имущество препятствовало TimeoutSeconds (_
     Значение ByVal как длиннее _
  )

  mTimeoutSeconds = значение

Свойство конца

Кевин
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us