StaticGeometry Error

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

StaticGeometry Error

Beitrag von Purebasium »

immer wieder wenn ich mit StaticGeometry arbeite bekommen ich folgenden Fehler:

Code: Alles auswählen


       Assertion failed!

       Program: ...
       File OgreStaticGeometry.cpp 
       Line 1572

       Expression: vertexCount <= mMaxVertecIndex && "Index range 
       ecceeded when using stencil shadows, consider ""reducing your region 
       size or reducing poly count"

       For information on how your program can cause an assertion 
       failure, see the Visual C++ documentation on asserts

       (Press Retry to debug the application -JIT must be enabled)


Kann mir jemand helfen?
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
Chimorin
Beiträge: 451
Registriert: 30.01.2013 16:11
Computerausstattung: MSI GTX 660 OC mit TwinFrozr III
6Gb DDR 3 RAM
AMD Phenom II X4 B55 @ 3,6GHz
Windows 7 Home Premium 64-bit

Re: StaticGeometry Error

Beitrag von Chimorin »

Nein, kann wahrscheinlich keiner. Wie wäre es mit einem kleinen Testcode?
Bild

- formerly known as Bananenfreak -
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: StaticGeometry Error

Beitrag von bobobo »

Doch ,ICH !!!
Ich schlage vor, dass Du die Ausmaße der Region einschränkst oder die Komplexität der Polygone

(Aber nur weil ich etwas englisch kann)
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: StaticGeometry Error

Beitrag von Purebasium »

das habe ich versucht

Davor:

Code: Alles auswählen


 For Arrayz = 1 To 120 
  For ArrayX = 1 To 120
      MapDaten(Arrayx, Arrayz) = 0

  Next 
 Next 

  CreateStaticGeometry(0,6000,1000,6000, #True)

For ArrayZ = 1 To 120
z+1
    For ArrayX = 1 To 120
  x+1
     If  MapDaten(ArrayX, ArrayZ) =0
       If Random(49) =49
         MapDaten(ArrayX, ArrayZ) =5

            id= CreateEntity(#PB_Any, MeshID(5),MaterialID(BaumMaterial))
    ScaleEntity(id,20,20,20)
    
  AddStaticGeometryEntity(0, EntityID(id),x*50-6000, hoehe,z*50-6000)

       EndIf
     EndIf
    Next 
  Next 

  
  For ArrayZ = 1 To 120
    For ArrayX = 1 To 120
     If  MapDaten(ArrayX, ArrayZ) =5
  
      Baumerzeugen(ArrayX, ArrayZ)
      
     EndIf
    Next 
  Next 
  BuildStaticGeometry(0)
  


Das entspricht ca. 290 Elementen



Erst damit geht's:

Code: Alles auswählen


 For Arrayz = 1 To 10
  For ArrayX = 1 To 10
      MapDaten(Arrayx, Arrayz) = 0

  Next 
 Next 

  CreateStaticGeometry(0,500,1000,500, #True)

For ArrayZ = 1 To 10
z+1
    For ArrayX = 1 To 10
  x+1
     If  MapDaten(ArrayX, ArrayZ) =0
       If Random(49) =49
         MapDaten(ArrayX, ArrayZ) =5

            id= CreateEntity(#PB_Any, MeshID(5),MaterialID(BaumMaterial))
    ScaleEntity(id,20,20,20)
    
  AddStaticGeometryEntity(0, EntityID(id),x*50-6000, hoehe,z*50-6000)

       EndIf
     EndIf
    Next 
  Next 

  
  For ArrayZ = 1 To 10
    For ArrayX = 1 To 10
     If  MapDaten(ArrayX, ArrayZ) =5
  
      Baumerzeugen(ArrayX, ArrayZ)
      
     EndIf
    Next 
  Next 
  BuildStaticGeometry(0)
  


Das entspricht ca. 2 Elementen


In der F1-Hilfe steht allerdings, dass es auch mit sehr vielen sehr aufwändigen Formen geht.
und so aufwändig sind meine entitys auch nicht.

Hat jemand eine Idee was ich jetzt machen könnte?
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: StaticGeometry Error

Beitrag von bobobo »

Testen.

Ih hab mal den ExampleCode aus PB etwas angepasst und den robot asl Entity genommen, Der ist immerhin komplexer als ein Würfel :)
Das geht bei mir fehlerlos (auch wenn's anfängt zu ruckeln... aber meine GRAKA ist auch nicht die beste)


Code: Alles auswählen

;  (in den example 3d-ordner packen und dort ausführen, oder den Code entspechend anpassen.)
; ------------------------------------------------------------
;
;   PureBasic - Static Geometry
;
;    (c) 2012 - Fantaisie Software
;  getunt
; ------------------------------------------------------------
;

IncludeFile "Screen3DRequester.pb"

Define.f KeyX, KeyY, MouseX, MouseY
Define nx.f, nz.f, Boost.f = 10, Yaw.f, Pitch.f

If InitEngine3D()
  
  Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
  Add3DArchive("Data/Scripts",#PB_3DArchive_FileSystem)
    Add3DArchive("Data/Models", #PB_3DArchive_FileSystem)
  Parse3DScripts()
  
  InitSprite()
  InitKeyboard()
  InitMouse()
  
  If Screen3DRequester()
    
    WorldShadows(#PB_Shadow_Additive)
    
    AmbientColor(0)
        
    ; node for Light and Billboard (Sun)
    CreateNode(0, 0, 3000, 0)
    
    ;Create light
    CreateLight(0, RGB(90, 105, 132), 0, 3000, 0)
    AttachNodeObject(0, LightID(0))
    
    ; Create flare
    GetScriptMaterial(0, "Scene/burst")
    CreateBillboardGroup(0, MaterialID(0), 2048, 2048)
    AddBillboard(0, 0, 0, 3000, 0)
    AttachNodeObject(0, BillboardGroupID(0))
    
    
    ; Static geometry
    ;
    
    ; Create Entity
    ;CreateCube(0, 1)
    ;CreateEntity(0, MeshID(0), #PB_Material_None)
    
    CreateTexture(0,64,64)
    StartDrawing(TextureOutput(0))
      Box(0,0,64,64,RGB(255,222,192))
    StopDrawing()
    
    ;CreateSphere(0, 1,15,4)
    ;CreateMaterial(0,TextureID(0))
    ;CreateEntity(0, MeshID(0), MaterialID(0))
    
    
    LoadMesh(0, "robot.mesh")
    TransformMesh(0, 0,0,0,0.05,0.05,0.05, 0,0,0)

    CreateMaterial(0, LoadTexture(0, "r2skin.jpg"))
    CreateEntity(0, MeshID(0), MaterialID(0))
    ScaleEntity(0,0.1,0.1,0.1,#PB_Absolute)
    ; Create Static geometry
    CreateStaticGeometry(0, 1000, 1000, 1000, #True)

    For z = -10 To 10
      For x = -10 To 10
        AddStaticGeometryEntity(0, EntityID(0), x * 1000, 0, z * 1000, 1000,  10, 1000, 0, 0, 0)        
        Height.f = 20+ Random(80)
        AddStaticGeometryEntity(0, EntityID(0), x * 1000, Height/2, z * 1000,  200, Height, 200, 0, Random(360), 0)
      Next
    Next
    
    ; Build the static geometry
    BuildStaticGeometry(0)
   
    FreeEntity(0)

    ; Camera
    ;
    CreateCamera(0, 0, 0, 100, 100)
    MoveCamera(0, 2000, 2000, 2000, #PB_Absolute)
    CameraLookAt(0, 0, 0, 0)
    CameraRange (0, 2, 5000)
    CameraFOV   (0, 90)
    CameraBackColor(0, RGB(90, 105, 132))
    
    Repeat
      Screen3DEvents()
      
      If ExamineMouse()
        Yaw   = -MouseDeltaX() * 0.05
        Pitch = -MouseDeltaY() * 0.05
      EndIf
      
      If ExamineKeyboard()
              
        If KeyboardPushed(#PB_Key_Up)    
          MoveCamera(0,  0, 0, -2 * Boost)
        ElseIf KeyboardPushed(#PB_Key_Down)
          MoveCamera(0,  0, 0,  2 * Boost)
        EndIf 
  
        If KeyboardPushed(#PB_Key_Left)  
          MoveCamera(0, -2 * Boost, 0, 0) 
        ElseIf KeyboardPushed(#PB_Key_Right)
          MoveCamera(0,  2 * Boost, 0, 0)
        EndIf 
  
      EndIf
           
      ; Sun
      nx = 10000 * Cos(ElapsedMilliseconds() / 2500)
      nz = 10000 * Sin(ElapsedMilliseconds() / 2500)   
      MoveNode(0, nx, 3000, nz, #PB_Absolute)
      
      RotateCamera(0, Pitch, Yaw, 0, #PB_Relative)
      
      RenderWorld()
      Screen3DStats()
      FlipBuffers()
    Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
  EndIf
  
Else
  MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf

End
aber auch das OriginalExample mit den langgezogenen Würfeln und etwas ( 8) ) vergrößert

Code: Alles auswählen

For z = -100 To 100
      For x = -100 To 100
        AddStaticGeometryEntity(0, EntityID(0), x * 1000, 0, z * 1000, 1000,  10, 1000, 0, 0, 0)        
        Height.f = 200+ Random(800)
        AddStaticGeometryEntity(0, EntityID(0), x * 1000, Height/2, z * 1000,  200, Height, 200, 0, Random(360), 0)
      Next
    Next
    
an der entsprechenden Stelle geht noch (hier ruckelts dann aber ganz arg)
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: StaticGeometry Error

Beitrag von Purebasium »

Dann ist mein Entity zu Aufwendig, oder?


https://www.dropbox.com/s/9w33fhwuyxm0ksd/Baum2.mesh
Zuletzt geändert von Purebasium am 06.04.2014 20:34, insgesamt 1-mal geändert.
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: StaticGeometry Error

Beitrag von bobobo »

weiß nicht, mag sein.
Ich kann den baum in der example-pb-datei nehmen .. ohne Fehlermeldung
.. ist dann aber mit -10 bis 10 in x und y schon arg ruckelig.

könnte an Deiner GraKa liegen, oder an den Treibern oder an beidem

Reduzieren ist auf jeden Fall immer der beste Weg

StaticGeometry taugt hier für Deinen Zweck eh wohl nicht so supergut, weil z.B. Bäume in einiger Entfernung eigentlich keine mehr sein brauchen. Zumindest keine in 3D.
Wenn Du nur die in der Nähe (und womöglih nur die in Blickrichtung) in 3D darstellst und die weiter entfernten meinetwegen als Billboard oder so, dürfte es 'nen ganzen Zacken flötter werden.
----------

hab gerade mit -20 bis 20 in x und y probiert und PB kneift auch hier dann den Arsch zu.
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Purebasium
Beiträge: 74
Registriert: 05.02.2014 22:08
Computerausstattung: Ein Computer halt.
Mit Windows 7
und mit AMD Phenom(tm) II X4 B50 Prozessor
und einer ATI Radeon HD 5450 Grafikkarte
Wohnort: Mars, Kraterstr. 57b, Apartment 7

Re: StaticGeometry Error

Beitrag von Purebasium »

Kann man es dann irgendwie einrichten, dass ein Billboard einen Schatten auf einem Terrain wirft?
(da Bäume nun mal auch schatten haben 8) )
"Ordnung braucht nur der Dumme, das Genie beherrscht das Chaos. "
Albert Einstein
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: StaticGeometry Error

Beitrag von bobobo »

Frage: braucht ein Baum in einiger Entfernung wirklich einen Schatten oder reicht da ein "Etwas dunkles am Boden drumrum" nicht aus?

Wenn nahe 3D-Bäume Schatten werfen ist das imho genug.
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: StaticGeometry Error

Beitrag von bobobo »

Achsoja .. dein baum sieht etwas .. öömm .. umbaummäßig aus .. :)

Wennste Blender kennst, da gibt ein plugin namens sapling .. mit dem kann man Bäume basteln, die realistischer sind. Tutorials dazu finzte im Netz.
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Antworten