Microsoft
Software
Hardware
Network
Frage : Probleme mit Opengl Schabloneenpuffer
Hallo, haben das
I morgens Mühe using den Schabloneenpuffer in OpenGL.
Basically habend, welches die einfache Version meines Probleme this.
I ist, ein Viererkabel, das als eine Vierecks„Haupt“ Bodenfläche angesehen werden kann. Ich habe auch einige flache Polygone, auf der Bodenfläche auf der gleichen Höhe zu sitzen, also sind sie koplanar und leiden unter z fighting.
To erhalten ringsum dieses, ohne jene Polygone wirklich zu schneiden aus der Hauptbodenfläche heraus, ich, benutzen die Schablone buffer.
I lassen auch einige andere Formen, die Mai oder Mai transparent nicht sein diese sind. Diese eingeschränkt nicht ht, auf die Bodenfläche also konnten sein, ist z.B., Dächer, Code der Wände etc.
The, wie folgt:
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 alle adaequat ist und alles ist lovely.
However, ich muss in etwas Text hinzufügen, der jede mögliche Stellung im Raum 3D nehmen kann. Dieses muss vor dem oben genannten Code getan werden, damit es hinter jedem transparenten surfaces.
The Problem erscheint, das ich bin erhalte, dass, wann immer der Text vor den otherPolygons ist, er auf der Farbe der otherPolygons nimmt. Dieses bildet offensichtlich die Spitzen des Textes unreadable.
Any auf, wie ich dieses verhindern könnte? Ich denke, dass der Grund dieses geschieht, weil ich die Schabloneenfunktion auf immer Durchlauf für die otherPolygons einstelle, also der Text wie ein stencil.
I versucht den, Schabloneenpuffer, bevor fungiert das Zeichnen des Fußbodens aber des nichts zu löschen work.
Thanks im Voraus
scheint
Antwort : Probleme mit Opengl Schabloneenpuffer
Ich bin nicht sicher, wie man die oben genannte Codefunktion erhält. Dieses ist Code, den ich pflege, um auf Webseiten zurückzugreifen. Es ist drittes oder der vierten Generation und recht robustes. Dieses ist ein komplettes Codemodul.
'clsInternetConnection
'
'Kategorie zur Verfügung stellt functionalty, um Webseiten zu lesen.
'
'Eingeführt wie ein Kategorienmodul für Gebrauch mit irgendeinem VB oder VBA Projekt.
'
'© Kevin 2008-2010 M. Jones
Wahl ausdrücklich
Privates Const INTERNET_OPEN_TYPE_PRECONFIG
= 0
Privates Const INTERNET_FLAG_RELOAD = &H80000000
Privates Const INTERNET_FLAG_PRAGMA_NOCACHE
= &H100
Privates Const INTERNET_OPTION_RECEIVE_TIMEOUT
als lang = 6
Privates Const UserAgent = „VB“
Privates mConnectionHandle als lang
Private mTimeoutSeconds als lang
Privat Funktion InternetCloseHandle Bibliothek „wininet“ erklären (_
ByRef hInet als langes _
) Als lang
Privat Funktion InternetOpen Bibliothek „wininet“ alias „InternetOpenA“ erklären (_
ByVal sAgent als Schnur, _
ByVal lAccessType als lang, _
ByVal sProxyName als Schnur, _
ByVal sProxyBypass als Schnur, _
ByVal lFlags als langes _
) Als lang
Privat Funktion InternetOpenUrl Bibliothek „wininet“ alias „InternetOpenUrlA“ erklären (_
ByVal hInternetSession als lang, _
ByVal lpszUrl als Schnur, _
ByVal lpszHeaders als Schnur, _
ByVal dwHeadersLength als lang, _
ByVal dwFlags als lang, _
ByVal dwContext als langes _
) Als lang
Privat Funktion InternetReadFile Bibliothek „wininet“ erklären (_
ByVal hFile als lang, _
ByVal sBuffer als Schnur, _
ByVal lNumBytesToRead als lang, _
lNumberOfBytesRead als langes _
) Als ganze Zahl
Privat Funktion InternetSetOption Bibliothek „wininet.dll“ alias „InternetSetOptionA“ erklären (_
ByVal hInternet als lang, _
ByVal dwOption als lang, _
ByRef lpBuffer als irgendwelche, _
ByVal dwBufferLength als langes _
) Als lang
Privates VorClass_Initialize ()
mConnectionHandle = InternetOpen (UserAgent, INTERNET_OPEN_TYPE_PRECONFIG
, vbNullString, vbNullString, 0)
Wenn mConnectionHandle = 0 dann
MsgBox „nicht imstande, einen Internetanschluss zu öffnen. Die höchstwahrscheinliche Ursache ist zu viele Handgriffe verursacht worden.“
Beenden wenn
mTimeoutSeconds = 30
Enden-Unterseeboot
Privates VorClass_Terminate ()
InternetCloseHandle mConnectionHandle
Enden-Unterseeboot
Allgemeine Funktion GetWebPage (_
ByVal URL als Schnur, _
Wahlweise freigestelltes ByVal ProxyUserID als Schnur, _
Wahlweise freigestelltes ByVal ProxyPassword als Schnur, _
Wahlweise freigestelltes ByVal TimeoutSeconds als langes _
) Als Schnur
'Eine Webseite erhalten.
'
'Syntax
'
'GetWebPage (URL, [ProxyUserID], [ProxyPassword])
'
'URL - Ein komplettes URL zu einer Webseite.
'
'ProxyUserID - die Benutzernummer für den Proxy-Server, wenn überhaupt. Wahlweise freigestellt. Wenn Sie ausgelassen
'dann angenommen kein Proxy-Server n.
'
'ProxyPassword - das Kennwort für den Proxy-Server. Wahlweise freigestellt. Ignoriert wenn
'ProxyUserID ausgelassen en.
'
'TimeoutSeconds - die Zahl den Sekunden, zum zu warten, bis heraus festsetzen. Wahlweise freigestellt.
', wenn sie dann ausgelassen, verwendet 30 Sekunden.
Schwaches ConnectionHandle als lang
Schwaches URLHandle als lang
Schwaches BytesRead als lang
Schwaches Resultat, wie Boolesch
Schwaches InputBuffer als Schnur * 10000
Schwaches PageContent als Schnur
Schwaches SecurityData als Schnur
Wenn Len (ProxyUserID) > 0 dann
SecurityData = ProxyUserID
Wenn Len (ProxyPassword) > 0 dann
SecurityData = SecurityData u. „: “ U. ProxyPassword
Beenden wenn
SecurityData = SecurityData u. „@“
URL = ersetzen (URL, „: /“, „: /“ u. SecurityData)
Beenden wenn
Wenn TimeoutSeconds = 0 dann TimeoutSeconds = mTimeoutSeconds
Wenn mConnectionHandle <> 0 dann
Resultat = InternetSetOption (mConnectionHandle
,
INTERNET_OPTION_RECEIVE_TIMEOUT
, TimeoutSeconds * 1000, Len (TimeoutSeconds))
URLHandle = InternetOpenUrl (mConnectionHandle
, URL, vbNullString, 0, INTERNET_FLAG_RELOAD oder INTERNET_FLAG_PRAGMA_NOCACHE
, 0)
Wenn URLHandle <> 0 dann
Tun
InputBuffer = vbNullString
Resultat = InternetReadFile (URLHandle
, InputBuffer, Len (InputBuffer), BytesRead)
PageContent = PageContent u. verließen (InputBuffer, BytesRead)
Schlingen während BytesRead > 0
InternetCloseHandle URLHandle
Beenden wenn
Beenden wenn
GetWebPage = PageContent
Enden-Funktion
Staatseigentum erhalten ValidInternetConnection () wie Boolesch
ValidInternetConnection = mConnectionHandle <> 0
Enden-Eigentum
Staatseigentum erhalten TimeoutSeconds () als lang
TimeoutSeconds = mTimeoutSeconds
Enden-Eigentum
Staatseigentum ließ TimeoutSeconds (_
ByVal Wert als langes _
)
mTimeoutSeconds = Wert
Enden-Eigentum
Kevin
Weitere Lösungen
Wort-Presse, die Frage bewirtet
asp.net: Mein Problem ist, benutze ich einen ajax Ergänzung Kalender, um BeginDate u. EndDate Werte einzutragen
Silverlight 4 UI Ereignisse
wie kann ich irgendeine Bildentschließung online ändern und sie zum lokalen PC dann innen sparen??
ZFS Sicherungshilfe Ubuntu 10.0.4 LTS
Form-Frage für Kristallreports
Betreffend INOTES in Lotos 8.5
Mühen, die ZWISCHEN Logik erhalten zu arbeiten
Spannungs-Sensor ermittelte einen Ausfall auf Bediener DELL-PowerEdge 2650
broadcom NIC teaming