OldSchoolHack

Registrieren / Anmelden Deutsch

Wireframe verwischt total?


icon Wireframe verwischt total? #1

Anmeldungsdatum: Dez 2009

Beiträge: 4

Hey,
ich beschäftige mich nun seit langem mal wieder mit Gamehacking und bin gerade dabei einen einfachen Wireframe Hack machen zu wollen (für AssaultCube) der alles als Wireframe rendert. Ich habe einen einfachen glBegin Hook und versuche nun per PolygonMode GL_LINE ein Wireframe zu erzeugen. Mein Problem ist jedoch es "verwischt" alles. Es wirkt auf mich als würde ich zunächst den Bildschirm Clearen müssen, und erst dann neuzeichnen..
Bei Animationen in JS bei Canvas ist es ähnlich - da muss man bei jedem Frame die Zeichenfläche Quasi mit einem Hintergrundbild neuzeichnen, und dann die Animation draufzeichnen weil sonst das zuvorige gezeichnete bestehen bleibt und es aussieht wie verwischt. Ich weiß aber nicht ob das hier irgendwie passend ist hier in opengl, denn ich kann ja nicht einfach den gesamten Bildschirm neuzeichnen, dann sind ja alle wichtigen Elemente weg.

Hier mal ein Bild davon was ich meine:

https://dl.dropboxusercontent.com/u/5004539/hm.png


Ich habe nun mit verschiedenen Sachen experimentiert, bekomme es jedoch irgendwie nicht wirklich gelöst. Ich habe mich bei dem ganzen an Tutorials / Informationstexte gehalten die für Counterstrike verfasst wurden, und scheinbar klappte es bei CS auf diesem einfachen Wege, und bei AssaultCube nun leider nicht (basiert ja auf der Engine von Sauerbraten).

Ich kenne mich leider (noch!) nicht sonderlich gut aus mit opengl, hatte aber schon versuche gemacht wie Crosshair zeichnen (in ner eigenen Anwendung) und solche Dinge.. leider ist mir das ganze dennoch ziemlich suspekt. Habt ihr da für mich Denkansätze wo ich ansetzen könnte (kein Sourcecode oder Komplette Lösung - nur einen Tipp.. möchte ja dazu lernen)?

Habe es auch schon mit

if(mask == GL_DEPTH_BUFFER_BIT)
{
mask = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT;
}

in der glClear versucht wie es bereits in einem Forum beschrieben ist, leider bringt dies auch nicht viel.
Meine glBegin sieht übrigens so aus ->

TEXT Code:
  1. void APIENTRY Hooked_glBegin( GLenum mode )
  2. {
  3. glPolygonMode(GL_FRONT,GL_LINE);
  4. glPolygonMode(GL_BACK,GL_LINE);
  5. (*orig_glbegin)(mode);
  6. glPolygonMode(GL_FRONT,GL_FILL);
  7. glPolygonMode(GL_BACK,GL_FILL);
  8. }
  9.  

Habe auch versucht verschiedene Abfragen des Modes zu machen, jedoch gab es nur bei 2 eine Reaktion und bei allen anderen gabs keine Reaktion - deshalb habe ich die Abfrage des GLenum Modes weggelassen (bringt keine Lösung - schon probiert).

EDIT: Habe es gerade mal mit Counterstrike 1.6 probiert - selbes Problem *g* Scheint also nicht an der unterschiedlichen Engine zu liegen.

EDIT2: Habs mir selbst beantwortet.. dadurch das die Skybox ebenfalls nur als Wireframe angezeigt wird, diese aber den Effekt hervorruft das man dieses Verwischen hat (Beobachtermodus ausserhalb der Map zb).. wird es wohl daran liegen weil man Quasi überall durchschauen kann, und dadurch ist dann der Schlierer drine was es so abf*ckt.. heißt ergo ich muss das Wireframe auf einzelne Models begrenzen (zb nur Playermodelle) ..liege ich damit richtig?

EDIT3: Jap tat ich..trotztdem Danke an alle

Liebe Grüße, Surflam

Zuletzt geändert von Surflam (Sa 28. Dez 2013, 23:49)

Grund: kein Grund angegeben