Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Suchergebnisse

Suchergebnisse 1-20 von insgesamt 40.

Werbeanzeige

14.07.2009, 18:37

Forenbeitrag von: »3dcoder«

OpenGL GLSL+VertexBuffer

Du kannst den VBO füllen so wie du es möchtest - wenn er gefüllt ist und mit glBindBufferARB aktiviert wurde kannst du OpenGL sagen welche Daten wo stehen mit: glNormalPointer glVertexPointer glTexCoordPointer ... Bei den Methoden übergibst du dann nicht den Pointer auf einen Speicherbereich als letzten Parameter, sondern den Offset zum Beginn deiner Struktur. Wenn deine Daten so aufgebaut sind: 3xfloat = Vertex, 3xfloat = Normal, 2xfloat = u/v coords (in dieser Reihenfolge und pro Punkt), dann ...

19.06.2009, 10:34

Forenbeitrag von: »3dcoder«

Portal System -> Anpassen der Frustum ans Portal

Hi! Als erstes solltest du prüfen ob alle Eckpunkte des Portals bereits in deinem aktuellen Frustum enthalten sind (geht recht flott über signed distance zu den planes) dann kannst du nämlich deinen aktuellen Frustum komplett verwerfen und einfach die Kanten des Portals nehmen um einen neuen Satz von Ebenen zu erstellen ohne irgendeinen Schnittpunkt ermitteln zu müssen. Falls das nicht der Fall ist gehe jede Kante des Portals durch und ermittle die Zustände der Eckpunkte: Im Frustum oder ausserh...

18.06.2009, 11:39

Forenbeitrag von: »3dcoder«

Problem mit Multitexturing

Hi! Ist sichergestellt, dass TexID die korrekte Textur-ID enthält? Setzt du auch die richtigen Texturkoordinaten mit glMultiTexCoord bzw. über einen Vertex Buffer mit glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY) und glTexCoordPointer(...)? Ich aktiviere die Texturen folgendermassen (zusammenkopiert - daher nicht logisch, aber die OpenGL Aufrufe sind ja wichtig hier): Quellcode 1 2 3 4 5 6 7 8 9 10 11 12 glActiveTexture(GL.GL_TEXTURE0 + getUnitId()); glClientActiveTexture(GL.GL_TEXTURE0 + getUn...

07.06.2009, 21:51

Forenbeitrag von: »3dcoder«

picking

Hi! Ich gehe mal davon aus, dass der Aufruf Quellcode 1 nodes.draw(0.2f, 16, 16); funktioniert und die Kugel wie erwartet zeichnet. Der Fehler scheint mir in der letzten Zeile zu liegen: Warum rufst du am Ende der Methode loadEnvironment Quellcode 1 GL11.glRenderMode(GL11.GL_RENDER); auf? Dieser Aufruf muss raus, denn du fragst ja den Rückgabewert später nochmal ab und durch diesen Aufruf vernichtest du ihn ja vorab schon - OpenGL liefert dir nur dann den richtigen Rückgabewert bei dieser Method...

07.06.2009, 19:43

Forenbeitrag von: »3dcoder«

picking

Hi! Du verwendest eine andere Projektion für das Picking als für das Rendern selbst - d.h. OpenGL bekommt im SELECT-Mode andere Ergebnisse wenn du renderst (was du aber nicht tust, da loadEnvironment auskommentiert ist?!). Meine Vorschläge: - entferne mal den glOrtho-Call und das glLoadIdentity 5 Zeilen drüber und lass die GL_PROJECTION Matrix so wie sie ist. - lass loadEnvironment laufen (falls das die Methode ist die deine Szene zeichnet) - ansonsten füge dort eben diese mal ein. Dann sollte e...

07.06.2009, 11:23

Forenbeitrag von: »3dcoder«

Koordinaten und Dreieckspolygone

Hi Andi! Wenn du das Dreieck ABC hast, dann nimm die Vektoren (B-A) und (C-A) und du erhälst dann jeden Punkt x des Dreiecks ABC mit der Linearkombination x = a(B-A) + b(C-A) + A wobei 0<=a+b<=1 gelten muss. Du kannst also quasi a und b als X und Y Koordinaten auf der Dreiecksebene interpretieren. Artikel auf Wikipedia Grüße Stefan

05.06.2009, 18:12

Forenbeitrag von: »3dcoder«

OpenGL blending

Hi Flux! Versuchs mal mit glAlphaFunc - laut Dokumentation werden Fragmente verworfen wenn der Alpha-Test fehl schlägt - und damit landen die dann auch nicht im Stencil Buffer. Dadurch sollte dann auch nur exakt die Kreisform im Stencil Buffer landen: Zitat The alpha test discards fragments depending on the outcome of a comparison between an incoming fragment's alpha value and a constant reference value. glAlphaFunc specifies the reference value and the comparison function. The comparison is per...

27.02.2008, 09:29

Forenbeitrag von: »3dcoder«

[OpenGL] if zweig wird ausgeführt (ChangeDisplaySet)[ungel.]

Vielleicht liegts daran dass 1024x800 keine erlaubte Vollbildgröße ist...? Grüße

15.02.2008, 17:01

Forenbeitrag von: »3dcoder«

Coden für Half-Life 2 lernen

Ich nehme an, dass du die Seite http://developer.valvesoftware.com/wiki/Main_Page schon kennst?! Da sollte eigentlich alles erklärt sein was du für dein Vorhaben brauchst. Grüße 3dcoder

11.02.2008, 18:30

Forenbeitrag von: »3dcoder«

Volumenmap - Interpolationsproblem

Hi! Also bei OpenGL gibt es die Option "GL_CLAMP_TO_EDGE" die genau das verhindert - habe das allerdings noch nie bei Volumentexturen gemacht. Sollte aber auch funktionieren. Für 2D Texturen geht das so: C-/C++-Quelltext 1 2 glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameter(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); Grüße 3dcoder

09.02.2008, 12:15

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Hi! Mir ist gerade beim Betrachten des Quellcodes noch etwas aufgefallen: Wenn du die Eckpunkte der Ebene erzeugst dann schreibst du für die Y-Koordinate ein mal C-/C++-Quelltext 1 Vertex.vPosition.y = 0.0f; und die anderen mal C-/C++-Quelltext 1 Vertex.vPosition.y = 0.001f; Das könnte auch ein Problem sein.... Grüße 3dcoder

08.02.2008, 22:34

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Ich habe leider mit DirectX noch nie was gemacht - nur OpenGL bisher. Vielleicht kann jemand mit DirectX-Erfahrung das mit den Normalen mal gegenchecken? Für mich schaut das soweit okay aus (0,1,0) ist eine top Normale für eine flache Ebene

08.02.2008, 22:08

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Das Culling wird nicht mit Normalen gemacht - sondern mit der Drehrichtung der Eckpunkte des Dreickes. Über die Normalen wäre das zeitlich zu aufwendig. Nein, ich habe mich nicht bewegt - halte bei deinem Beispielprogramm einfach mal die "Cursor-rechts" Taste für ca. 2-3 Sekunden gedrückt auf dem Rechner wo es derzeit nicht funktioniert... Grüße 3dcoder

08.02.2008, 21:53

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Nachtrag: Wenn das Bild bei der Drehung beginnt korrekt zu werden geschieht das "sanft" - das Bild fadet von weiss zur Textur - um später wenn es wieder falsch wird geschieht dies umgekeht. Spricht meines Erachtens nach ebenfalls für falsche Normalen. Du setzt in deinem Source auch keine Normalen so wie ich das sehe... Kann es vielleicht sein, dass das weiss einfach der Hilight Spot der Beleuchtung ist? Setzt doch mal die Hilight Color auf Blau oder so... Grüße 3dcoder

08.02.2008, 21:45

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Also ich habe mal dein Testprogramm gestartet und sehe die untere Hälfte komplett weiss, die obere komplett schwarz.... ABER: Wenn ich mich nach Rechts drehe kommt ein Punkt an dem es plötzlich richtig wird: Unten die Textur, hinten der Nebel und der Himmel schwarz. Etwa für eine Drehung von 5-10 Grad bleibt das Bild korrekt, dann wird der Boden wiede weiß. Drehe ich mich zurück, dann wird das Bild wieder richtig. Es sieht mir so aus als wären die Normalen der Ebene nicht korrekt - und es liegt ...

08.02.2008, 20:32

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Okay, aber sieht die fehlerhafte Textur jedesmal _exakt_ gleich aus? Falls nein würde das auf nicht initialisierten Speicher hindeuten (z.B. Mipmap Images die nicht automatisch berechnet wurden).

08.02.2008, 20:11

Forenbeitrag von: »3dcoder«

Darstellungsfehler

Ändert sich die fehlerhafte linke Seite der Skybox wenn du dich in der Map herumbewegst? Ändert sich der Fehler (das Aussehen der fehlerhaften Textur meine ich) nach einem Reboot des Rechners?

03.02.2008, 12:50

Forenbeitrag von: »3dcoder«

3D-Grafikprogrammierung; Marius Apetri-2.Auflage

Soweit ich das weiß, ist die Farbtiefe global - d.h. wenn du 24 Bit in der Systemsteuerung eingestellt hast, aber ein Fenster mit 32 Bit "bestellst" kriegst du trotzdem eins mit 24 Bit. Da das Programm direkt auf das Fenster schreibt würde natürlich durcheinanderkommen wenn es 32 Bit haben möchte aber 24 kriegt... Aber das ist nur so eine Idee - wenn du deine Grafikeinstellungen schon auf 32 Bit stehen hast liegt der Fehler woanders. Grüße 3dcoder

03.02.2008, 11:51

Forenbeitrag von: »3dcoder«

3D-Grafikprogrammierung; Marius Apetri-2.Auflage

Hast du auch 32 Bit Farbtiefe eingestellt? Aber auch wenn das dann laufen sollte - der Programmcode sieht mir, milde gesagt, "seltsam" aus. Ich vermisse da eine vernünftige OO Herangehensweise. Grüße 3dcoder

02.02.2008, 17:33

Forenbeitrag von: »3dcoder«

Seite zu 3D- und Spieleprogrammierung online

Hallo! Seit eben ist meine neue Seite zu den Themen 3D- und Spieleprogrammierung online gegangen: http://www.3dcoding.de Derzeit findet ihr dort Artikel zu den Themen Vektor- und Matrixrechnung, View Frustum Berechnung, sowie einen in C++ geschriebenen Pacman-Klon. Wenn es sich jeweils thematisch anbietet sind auch Beispielprogramme vorhanden die demonstrieren um was es geht. Ich plane die Seite nach und nach um weitere interessante Themen zu erweitern. Als nächstes stehen Erklärungen zu Ebenen,...

Werbeanzeige