Guten Tag, mal ne blöde Frage: Ich habe gerade ein Programm erstellt, welches eine virtuelle "Karte", so nenne ich es mal, in 3D darstellt. Das heißt, ich gebe dem Programm die Eckpunkte eines Objekts (X,Y und Z Koordinaten) und Verschiebungs- und Rotationsdaten und es berechnet virtuelle 3D Drahtgittermodelle. Funktioniert alles sehr gut, Rotation, Verschiebung und Darstellung klappt wunderbar und sieht toll aus. Das Programm dient einzig und allein dem Zweck, die Funktion von Grafikengines ganz einfach zu demonstrieren, wobei es sich bei dieser natürlich um eine sehr primitive Engine handelt, doch Sie erfüllt ihren Zweck. Naja das einzige Problem ist, das es flimmert, was daran liegt, dass ich direkt auf den Bildschirm zeichne. Gelesen habe ich, dass zuerst in einen Buffer gezeichnet wird und solange die Berechnung dauert, wird noch der alte Buffer angezeigt um dem Flimmern vorzubeugen. Tja in der Theorie toll, nur weiß ich leider gerade nicht, wie das geht :) Also ich zeichne mit MoveToEx und LineTo ein HDC objekt. Wie zeichne ich dieses also in einen buffer? PS: Sorry für die blöde Frage, hab gerade irgendwie ein Brett vorm Kopf^^ Würd mich freuen, wenn mir jemand eben den entsprechneden Befehl schreibt oder eine entsprechende Inetseite verlinkt.
verwende doch einen 2. HDC und schalte nach den Zeichen zwischen beiden um.
Wenn man nach HDC Doublebuffered sucht, da kommen viele brauchbare ergebnisse... Aber da es hier um 3d geht, will ich darauf hinweisen das gute engines mit der grafikkarte arbeiten, dafür gibt es 2 libraries: opengl/gles und directX Dann muss man auch nichtmehr selbst die linie zeichnen, das kann auch die grafikkarte. Ich empfehle opengl, dass ist einfach, platformunabhängig, und hat bereits doublebuffering support.
:
Bearbeitet durch User
Daniel A. schrieb: > Wenn man nach HDC Doublebuffered sucht, da kommen viele brauchbare > ergebnisse... > > Aber da es hier um 3d geht, will ich darauf hinweisen das gute engines > mit der grafikkarte arbeiten, dafür gibt es 2 libraries: opengl/gles und > directX > Dann muss man auch nichtmehr selbst die linie zeichnen, das kann auch > die grafikkarte. > > Ich empfehle opengl, dass ist einfach, platformunabhängig, und hat > bereits doublebuffering support. Hi, danke für die Antwort. Ich werd gucken, was ich finde^^ Ja ich weiß, dass es dafür entsprechende Bibliotheken usw. gibt, auch von OpenGL habe ich gehört. Es geht mir aber erstmal darum, wie diese 3D Darstellung berechnet wird und wie so eine Engine arbeitet. Ein Spiel wollte ich nicht damit programmieren, zumal der Prozessor der das packt wahrscheinlich auch noch erfunden werden muss^^ Aber es ist schon interessant zu sehen, was simple Mathematik in zusammenarbeit mit einem PC kann^^ Ich muss sagen, ich war sehr erstaunt, das es funktioniert und auch so ziemlich auf Anhieb. Naja mal sehen, ob ich überhaupt wirklich mit OpenGL und 3D Spieleentwickelung im Allgemeinen arbeite, es ist ja trotzdem immernoch sehr Zeit- und Schreibaufwendeig. Über sehr kleine Spiele werde ich wohl nicht hinaus kommen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.