Meshes werden nicht gerendert

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Kernle 32DLL

Betreff: Meshes werden nicht gerendert

BeitragSo, Jan 07, 2007 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Leute !

Ich hab ein ziemlich konfuses Problem, auf das mir einfach keine
Lösung einfallen will. Es geht um folgendes:

In meinem Spiel (Cube-Wars) habe ich Cubes (Die Spielfiguren)
und die Spielfelder. Und das Problem ist nun, das auf manchen
Computern, auf denen ich das Spiel ausprobiert habe, das
Spielfeld einfach nicht gerendert wird. Pick-Abfrage geht, und
ich kan auch sonst wunderbar auf das Type-Feld und das Mesh
zugreifen, aber es ist einfahc nicht da (auch nicht als Wireframe).

Ich weis nicht wodrans liegen könnte. Hab schon auf "Bugs" wie
falsch gesetzte EntityAlpha geschaut, aber nichts gefunden.

Außerdem verstehe ich nicht, warum gerade das Spielfeld nicht
gerendert wird, zumal Cubes und Spielfeld auf die gleiche Weise
erstellt werden.

Code ausschnitt:

Cubes:
Code: [AUSKLAPPEN]
[...]
   EntityPickMode Cube\mesh,2
   [...]
   Cube\brush   = CreateBrush(255,255,255)
   Cube\surface = CreateSurface(Cube\mesh,Cube\brush)
   
   ;dach
   v0=AddVertex(Cube\surface,       0,CubeSize,CubeSize,0,0)
   v1=AddVertex(Cube\surface,CubeSize,CubeSize,CubeSize,1,0)
   v2=AddVertex(Cube\surface,       0,CubeSize,       0,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   v0=AddVertex(Cube\surface,CubeSize,CubeSize,CubeSize,1,0)
   v1=AddVertex(Cube\surface,CubeSize,CubeSize,       0,1,1)
   v2=AddVertex(Cube\surface,       0,CubeSize,       0,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   ;vorne
   v0=AddVertex(Cube\surface,       0,CubeSize,       0,0,0)
   v1=AddVertex(Cube\surface,CubeSize,CubeSize,       0,1,0)
   v2=AddVertex(Cube\surface,       0,       0,       0,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   v0=AddVertex(Cube\surface,CubeSize,CubeSize,       0,1,0)
   v1=AddVertex(Cube\surface,CubeSize,       0,       0,1,1)
   v2=AddVertex(Cube\surface,       0,       0,       0,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   ;rechts
   v0=AddVertex(Cube\surface,       0,CubeSize,CubeSize,0,0)
   v1=AddVertex(Cube\surface,       0,CubeSize,       0,1,0)
   v2=AddVertex(Cube\surface,       0,       0,CubeSize,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   v0=AddVertex(Cube\surface,       0,CubeSize,       0,1,0)
   v1=AddVertex(Cube\surface,       0,       0,       0,1,1)
   v2=AddVertex(Cube\surface,       0,       0,CubeSize,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   ;hinten
   v0=AddVertex(Cube\surface,CubeSize,CubeSize,CubeSize,0,0)
   v1=AddVertex(Cube\surface,       0,CubeSize,CubeSize,1,0)
   v2=AddVertex(Cube\surface,CubeSize,       0,CubeSize,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   v0=AddVertex(Cube\surface,       0,CubeSize,CubeSize,1,0)
   v1=AddVertex(Cube\surface,       0,       0,CubeSize,1,1)
   v2=AddVertex(Cube\surface,CubeSize,       0,CubeSize,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   ;links
   v0=AddVertex(Cube\surface,CubeSize,CubeSize,       0,0,0)
   v1=AddVertex(Cube\surface,CubeSize,CubeSize,CubeSize,1,0)
   v2=AddVertex(Cube\surface,CubeSize,       0,       0,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   v0=AddVertex(Cube\surface,CubeSize,CubeSize,CubeSize,1,0)
   v1=AddVertex(Cube\surface,CubeSize,       0,CubeSize,1,1)
   v2=AddVertex(Cube\surface,CubeSize,       0,       0,0,1)
   AddTriangle(Cube\surface,v0,v1,v2)
   
   PositionEntity Cube\mesh,Cube\X_Cord2,0,Cube\Z_Cord2
[...]


Nebenbei: Wer sich wundert wiso ich für die Cubes nicht einfach
CreateCube benutze -> Wegen den Texturen (Später bei den
Animationen wichtig)

Spielfeld:
Code: [AUSKLAPPEN]
[...]
   Game_Field\brush   = CreateBrush(255,255,255)
   Game_Field\mesh      = CreateMesh()
   Game_Field\surface   = CreateSurface(Game_Field\mesh,Game_Field\brush)
   [...]
   
   EntityPickMode Game_Field\mesh,2
   NameEntity Game_Field\mesh,"GameField," + I2 + "," + I
   
   [...]
   
   v0=AddVertex(Game_Field\surface,        0,0,FieldSize,0,0)
   v1=AddVertex(Game_Field\surface,FieldSize,0,FieldSize,1,0)
   v2=AddVertex(Game_Field\surface,        0,0,        0,0,1)
   AddTriangle(Game_Field\surface,v0,v1,v2)
   v0=AddVertex(Game_Field\surface,FieldSize,0,FieldSize,1,0)
   v1=AddVertex(Game_Field\surface,FieldSize,0,        0,1,1)
   v2=AddVertex(Game_Field\surface,        0,0,        0,0,1)
   AddTriangle(Game_Field\surface,v0,v1,v2)
   
   PositionEntity Game_Field\mesh,Game_Field\X_Cord2,0,Game_Field\Z_Cord2
[...]


Ich hoffe ihr könnt mir helfen. Ich weis wirklich nicht wodrans liegen kann.
Bei meinem PC funzt alles wunderbar, bei meinem Laptop fehlt das Spielfeld.

Grüßle:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

Dreamora

BeitragSo, Jan 07, 2007 13:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hauptproblem ist vermutlich, dass du nicht sicher stellst, dass nicht mehr als 16 * 1024 Dreiecke auf einem Mesh landen. Alte Grafikkarten machen dann einfach Schluss und rendern es nimmer. (zu diesen alten Karten zählen auch GF4 MX und so)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kernle 32DLL

BeitragSo, Jan 07, 2007 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Das hauptproblem ist vermutlich, dass du nicht sicher stellst, dass nicht mehr als 16 * 1024 Dreiecke auf einem Mesh landen. [...]


Was meinst du damit genau ? Also jedes Spielfeld "Feld" und jeder
Cube ist ein eigenes Type (mit "new" erstellt)

Gruß.
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009
 

Dreamora

BeitragSo, Jan 07, 2007 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Das heisst jeder Cube hat ein eigenes Surface und ist ein eigenes Mesh?
Wenn dem so ist, wärs nicht das Triangle Count Problem.

Ach ja, die Systeme die Probleme hatten, waren nicht zufälligerweise mit Intel Onboard und ein wenig älter?
Wenn doch, müssen wohl die Treiber aktualisiert oder downgraded werden, denn viele der Treiber für Pre-Intel Extreme Karten sind sehr fehlerbehaftet (da die Karten nie 3D Karten waren oder als solches konzipiert waren) und es tretten unschöne Probleme bei Transformationen auf.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Kernle 32DLL

BeitragMo, Jan 08, 2007 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:
Das heisst jeder Cube hat ein eigenes Surface und ist ein eigenes Mesh?[...]


So ist es. Und ja, die Systeme auf denen ich es getestet habe, waren
zum Teil veraltet. Also mein Laptop hat nur Onboard Grafik von ATI
und irgenteinen Prozessor (muss ich mal schauen welcher das genau
ist, glaube aber ein Pentium), die Schulcomputer auf denen ich es
getestet habe waren beides PCs mit einem Intel Prozessor, Daten
zur Grafikkarte habe ich nicht. Der letzte PC auf dem ich getestet habe
war der PC meiner Cousine. Die hat einen Komplett-PC, ich werd
mal schauen was da drin steckt, glaube aber auch Intel.

So weit es scheint liegt das wirklich an Intel. Ích werde dem mal
nachgehen, vielen Dank für den Tipp !

Gruß:
Kernle
Mein PC: "Bluelight" - Xtreme Gamer PC [Video]
Meine Projekte: Cube-Wars 2010 [Worklog]
Anerkennungen: 1. Platz BCC #7 , 1. Platz BCC #22 , 3. Platz BAC #89
Ich war dabei: NRW Treff III, IV ; Frankfurter BB Treffen 2009

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group