Author Topic: EntitySystem - Licht Bug  (Read 2428 times)

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
EntitySystem - Licht Bug
« on: 2012-Apr-12 »
Hi Leute,

ich benutze für mein Spiel das EntitySystem (ich liebe es!)... Nun benutze ich für mein Level ein! Ambient Light, welches -150 auf der Z-Achse liegt.

Zu betonen gilt vielleicht, dass ich hinter meinem Level NICHTS anderes mehr habe und dennoch wird ein Schatten meiner Objekte auf den Hintergrund geworfen... Zudem gibt es einen "Schatten-Bug", wie gekennzeichnet...
Kenn ihr das Problem und die Lösung dazu? :)

MfG
Ole

[attachment deleted by admin]

Offline kanonet

  • Administrator
  • Prof. Inline
  • *******
  • Posts: 1142
    • View Profile
    • My GLBasic code archiv
Re: EntitySystem - Licht Bug
« Reply #1 on: 2012-Apr-12 »
Nun benutze ich für mein Level ein! Ambient Light, welches -150 auf der Z-Achse liegt.
Kannst du darauf näher eingehen? Für das Ambient light ist die Position egal. Jedoch kennt das ES kein Ambient light (das normale GLB jedoch sehr wohl!), sondern nur Spot_lights.

Zu betonen gilt vielleicht, dass ich hinter meinem Level NICHTS anderes mehr habe und dennoch wird ein Schatten meiner Objekte auf den Hintergrund geworfen...
Jo, ist schon immer so, ist manchmal auch ein cooler Effekt. Willst du diesen nicht, musst du einen Boden einfügen, dann werden die Schatten eben auf diesem geworfen.

Zudem gibt es einen "Schatten-Bug", wie gekennzeichnet...
Den kenne ich, mir wurde seinerzeit gesagt, dass dies vor allem bei fehlerhaften Modellen auftritt (oder bei nicht geschlossenen), jedoch bin ich es nie ganz los geworden. Wobei die mitgelieferte Sphäre-funktion diesen Fehler auch erzeugt (vermutlich wurde deine Kugel auch so erzeugt?).
Bei mir tritt dieser Fehler jedoch nur unter wenigen Blickwinkeln auf; und wenn man einen Boden zeichnet, der nahm unter dem Objekt ist, dann sieht man davon nichts. - Aber ob das bei dir eine Lösung ist, weiß ich nicht, eine generelle Lösung (oder ein Tipp, wie wir es vermeiden können) wäre daher gut.

Grüße,
kanonet

PS: verwendest du hierfür Bullet+ES? Falls ja, würde ich auf das ES verzichten, da du sonst alles zweimal berechnest. Aber das hat nichts mit deinen Fehlern hier zu tun, nur ein genereller Tipp.;)
Lenovo Thinkpad T430u: Intel i5-3317U, 8GB DDR3, NVidia GeForce 620M, Micron RealSSD C400 @Win7 x64

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: EntitySystem - Licht Bug
« Reply #2 on: 2012-Apr-13 »
Danke erstmal für deine schnelle Antwort!

Quote
Kannst du darauf näher eingehen? Für das Ambient light ist die Position egal. Jedoch kennt das ES kein Ambient light (das normale GLB jedoch sehr wohl!), sondern nur Spot_lights.

Also ich meinte mit Ambient light, ein ES-Licht, welches ich aus der Entfernung -150 auf der Z-Achse auf alles ausstrahle und somit die komplette Umgebung von vorne beleuchte.

Quote
Jo, ist schon immer so, ist manchmal auch ein cooler Effekt. Willst du diesen nicht, musst du einen Boden einfügen, dann werden die Schatten eben auf diesem geworfen.

Ich finde das irgendwie nervig, dass es so ist. Klar kann ich einen Boden einfügen, aber ich möchte eigentlich nur, dass meine Welt auf ihre eigenen Sachen Schatten wirft und nicht auf einen nicht existierenden Hintergrund... Den Effekt habe ich in OpenGL ansich noch nicht gesehen. Ist das hier ein Problem von Gernot oder OpenGL?
Da muss ich mir hier wohl ein Workaround basteln, damit ich diesen Effekt nicht mehr habe.
Am besten wäre wohl, einfach eine Skybox oder sowas um meine Welt zu bauen...

Quote
Den kenne ich, mir wurde seinerzeit gesagt, dass dies vor allem bei fehlerhaften Modellen auftritt (oder bei nicht geschlossenen), jedoch bin ich es nie ganz los geworden. Wobei die mitgelieferte Sphäre-funktion diesen Fehler auch erzeugt (vermutlich wurde deine Kugel auch so erzeugt?).
Bei mir tritt dieser Fehler jedoch nur unter wenigen Blickwinkeln auf; und wenn man einen Boden zeichnet, der nahm unter dem Objekt ist, dann sieht man davon nichts. - Aber ob das bei dir eine Lösung ist, weiß ich nicht, eine generelle Lösung (oder ein Tipp, wie wir es vermeiden können) wäre daher gut.

Du hast Recht damit, dass meine Sphere mit der ES-Funktion erstellt wird. Da ich dieses Problem bei meinen Mesh-Cubes nicht habe, werde ich es mal mit einer Mesh-Sphere versuchen, diese dient eh nur zum Testen, ob mein Spielprinzip überhaupt funktioniert, bevor ich Energie in Models stecke.
Dann weiß ich wenigstens, dass mein Mesh keine "Fehler" hat und hoffe, dass der komische Schatten dann nicht mehr auftritt.

Quote
PS: verwendest du hierfür Bullet+ES? Falls ja, würde ich auf das ES verzichten, da du sonst alles zweimal berechnest. Aber das hat nichts mit deinen Fehlern hier zu tun, nur ein genereller Tipp.;)

Nein, ich benutze nicht meinen Bullet-Wrapper, da mein Spiel nur mit 2D-Logik arbeitet. :)
« Last Edit: 2012-Apr-13 by backslider »

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5064
  • O Rly?
    • View Profile
Re: EntitySystem - Licht Bug
« Reply #3 on: 2012-Apr-14 »
Nennen wir es Feature! ;D

Kann leider zum Bug nichts sagen... das programm schonmal auf einen anderen PC versucht?
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: EntitySystem - Licht Bug
« Reply #4 on: 2012-Apr-14 »
Jaja, wir Programmierer nennen alles Feature, was nicht funzt, wie es sollte. xD
Habs auch auf nem anderen PC probiert, selbes Problem... Aber hab schon ein Workaround (einfach eine riesige sky-Sphere um die Welt herum, dann ist der Schatten weg.^^

Offline Schranz0r

  • Premium User :)
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 5064
  • O Rly?
    • View Profile
Re: EntitySystem - Licht Bug
« Reply #5 on: 2012-Apr-14 »
Strange :D
I <3 DGArray's :D

PC:
AMD Ryzen 7 1700 @3.9GHz, 16GB HyperX Fury 3000MHz Ram, ASUS ROG GTX 1060 STRIX 6GB, Windows 10 Pro 64Bit, MSi Tomahawk B350 Mainboard

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10745
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
EntitySystem - Licht Bug
« Reply #6 on: 2012-Apr-15 »
Hängt ein Beispiel dran? Dann schau ich mal. 

Offline backslider

  • Community Developer
  • Prof. Inline
  • ******
  • Posts: 892
    • View Profile
Re: EntitySystem - Licht Bug
« Reply #7 on: 2012-Apr-15 »
Also, um einen Schatten ohne Umwelt zu werfen, geht der Code:
Code: (glbasic) [Select]
SYSTEMPOINTER TRUE

LOCAL light% = EntityCreateLight(RGB(0xfe, 0xfa, 0xed))
LOCAL sphere% = EntityCreateSphere(1,32)
LOCAL cam% = EntityCreateCamera()

EntitySetPosition(light,10,10,-100)
EntitySetPosition(cam,0,0,-10)
EntityEnableShadow(sphere, TRUE)

WHILE TRUE
CLEARSCREEN RGB(0xd8, 0xd8, 0xd8)
EntityDrawSystem()
SHOWSCREEN
WEND

Mir ist aufgefallen, dass man keinen Schatten mehr sieht, wenn man die Kugel z.B 10 groß macht und die Kamera auf z=-100 setzt... Komisch.

Den anderen Bug kann ich schlecht in einem Beispiel reproduzieren und mein Spielcode ist komplex. xD