[B3d] StencilSchatten
Übersicht

![]() |
luciferBetreff: [B3d] StencilSchatten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ein kleines Schatten System programmiert. Es nutzt die DLL von tom aus dem englischen BBForum um auf den StencilBuffer zu zugreifen.
Es werden nicht anmierte Meshes und anmierte B3DMeshes unterstüzt. Ebenfalls kann man mehrer Lichter erstellen. Folgen Funktionen sind vorhanden: SHW_Init(Cam, Alpha# = 0.3) Diese Funktion intialisiert das SchattenSystem. Als Cam muss man die Hauptkamera angeben. Alpha legt den Alphawert des Schattensfest. SHW_AddLight(light,Range#) Diese Funktion fügt ein Licht zum Schatten system hinzu. Range gibt dabei an wie weit ein Mesh maximal entfernt sein darf damit der Schatten noch gezeichnet wird. SHW_RemoveLight(light,Range#) Diese Funktion löscht das angeben Licht aus dem Schatten System. SHW_AddCaster(Entity,Ani = false,FileName$ = "") Diese Funktion fügt ein Objekt das Schatten wirft zum Schatten System hinzu. Entity ist das Entity das den Schatten wirft. Ani gibt an ob es anmiert ist oder nicht. Wenn es anmiert ist muss man in FileName den Dateiname der B3DDatei angeben. SHW_Update() Diese Funktion aktualisiert das SchattenSystem, d.h. alle SchattenVolumen werden neu berechnet. SHW_RenderAndUpdateWorld() Diese Funktion erstezt RenderWorld() und UpdateWorld(). Statt: Code: [AUSKLAPPEN] Renderworld() Updateworld() muss man also schreiben Code: [AUSKLAPPEN] SHW_RenderAndUpdateWorld() SHW_Free() Diese Funktion gibt alles was zum SchattenSystem gehöhrt wieder frei. Hier kann man es herunterladen: Screenshot Download Bedarf sicher noch einiges an Arbeit um wircklihc gut zu werden. Allerdings ist es eine gute Grundlage meiner Meinung nach. In dem Archiv ist eine Datei: StencilShadowTest.bb Da könnt ihr das Schatten System im Einsatz sehen. Ihr benötigt übrigens mindestens die Blitzbasic version 1.88 Bekannte Fehler: -Wenn das licht 90° von oben auf einen nicht anmierten Mesh scheint wird dar Schatten nicht dargestellt. |
||
Aktuelles Projekt:
Demonspawn RPG |
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei mir kommt der Fehler "Function 'setrenderstate' not found in der StencilShadow.bb | ||
![]() |
lucifer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du die .decl Datei in den Userlib Ordner kopiert? | ||
Aktuelles Projekt:
Demonspawn RPG |
FBI-blitz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Oh, ganz vergessen ![]() Jetzt funktionierts Sieht gut aus. Werd mal schaun ob ich dafür verwendung habe... |
||
![]() |
skatanist |
![]() Antworten mit Zitat ![]() |
---|---|---|
Respekt, das sieht ja schon ganz gut aus!
Leider hab ichs mit meinem Bone-animierten B3D Objekt nicht hinbekommen. Mein vermuteter Grund: Es ist zusammengesetzt aus eigentlich 3 Meshes, damit ich zB eine Laufani hab, aber trotzdem noch den Oberkörper mit der Waffe in eine belieblige Richtung ausrichten kann. Darauf ist das Programm wohl nicht vorbereitet... Ausserdem bekomm ich Probleme beim Frametweening. Lösungsvorschläge? Und nochetwas, ist es nicht möglich nur bestimmte Objekte als Schattenempfänger zu definieren? Es nervt schon ziemlich, wenn das System versucht, Schatten auf meine Patrikel zu werfen, und dabei Fehler produziert, weil die zwischendurch nciht gehidet sind... Ich meine das so, das alle Nicht-Empfänger Objekte auch nich gehided werden müssen. Ist das überhaupt möglich? Naja, aufjedenfall, mach weiter! Bis jetzt hat es noch NIEMAND geschafft ein brauchbares Stencilshadow System zusammenzubringen, was kostenlos ist! |
||
![]() |
Ray-Tracer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Juupiii !
Stencils für anims geile Sache -habs kurz getestet ,funktioniert. -leider nur knapp 30 Fps bei mir -habs noch mit anderen animierten b3d´s versucht , -bei b3d´s mit zwei Texturen funktionierts nicht bei den anderen ok, allerdings viele Artefakte mach weiter Lucifer ,coole Sache |
||
__wunschklang__ |
![]() |
lucifer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Danke erstmal für das positive Feedback.
Bisher werden keine anmierte Meshes mit mehrer Surfaces unterstüzt. Sollte aber kein Problem sein das zu ändern, mache ich mich demnächst mal dran. Ja ist kein problem zu implementieren, dass nur mache Objekte Schatten empfangen. Werde ich mich auch noch dran machen. |
||
Aktuelles Projekt:
Demonspawn RPG |
![]() |
lucifer |
![]() Antworten mit Zitat ![]() |
---|---|---|
So eine kleine Änderung. Es ist jetzt möglich Entitys zu definieren die keinen Schatten empfange.
Folgende Funktionen sind hinzu gekommen: SHW_RemoveCaster(Entity) Diese Funktion löscht ein Objekt das einen Schatten wirft. SHW_AddNotReciver(Entity) Diese Funktion fügt ein Objekt hinzu das keinen Schatten empfängt. SHW_RemoveNotReciver(Entity) Diese Funktion löscht ein Objekt das keinen Schatten empfängt, d.h. das Objekt empfängt wieder Schatten. Hier kann man es herunterladen: Download |
||
Aktuelles Projekt:
Demonspawn RPG |
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
hab es gestern mal mit ner einfachen Kugel (erstelt mit B3D) ausprobiert, da scheint es noch zu fehlern zu kommen, teilweise wird der schatten sehr verzerrt. | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Will ja keine Krümeln kacken oder Haare spalten. Aber im Zeichen der Professionalität folgende Anmerkung:
Es heißt Receiver. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
lucifer |
![]() Antworten mit Zitat ![]() |
---|---|---|
So hab den Fehler mit der Sphere repariert und Reciver in Receiver umbennant.
Hier kann man die neue Version runterladen: Download |
||
Aktuelles Projekt:
Demonspawn RPG |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Könntest du das für mich nochmal hochladen bitte?
Danke. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sowas bitte per PM klären. Danke. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Bei mir entstehen viele Fehler. Erstmal, wenn ich ein mesh lade, ist der Schatten fehlerhaft.
Dann habe ich das Gefühl, dass der eigene Schatten des meshes auf ihn selber geworfen wird. Und Animation funktioniert bei mir nicht. Der sagt: "Object does not exist". Hier mal ein screenshot: Und diese Löcher im Schatten sind echt. Wie kommt das bitte? Im mesh sind keine Lücken. |
||
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.xware.chat-blitz.de...Index.html
versuchs mal damit! da is das self-shadowing (was an sich nen hübscher effekt ist) etwas weicher (= |
||
MrKeks.net |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei devils shadow system hatte ich das problem, dass ich, wenn ich im schatten war, alles falsch herum gesehen habe. Also: wo schatten, da kein schatten, wo kein schatten, da schatten.
Normalerweise müsste man prüfen, ob man im shadow volumen ist und dann den vergleichsmodus umstellen. Weiß nicht, ob er das Problem behoben hat. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
das war aber eine seeeeeeehr alte version. hol dir doh einfach mal eine neue version, statt deine zeit mit posts zu seit monaten behobenen problemen zu verschwenden ![]() |
||
MrKeks.net |
X0r |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hey hey, das Ding ist schnell. Danke.
Edit: Zitat: ;Note: the global commands like Render() has already
;been explained in the previous tutorial. No big ;explinations here anymore. Include "..\Includes\DevilShadowSystem.bb" Include "..\Includes\ShadowVolumes.bb" Include "..\Includes\UserInterface.bb" Graphics3D 1024, 768, 32, 2 SetBuffer BackBuffer() ;Camera Cam = CreateCamera() PositionEntity Cam, 0, 4, -8 ;Shadows InitShadows(Cam) ;Light Light = CreateLight() PositionEntity Light, 10, 10, 0 PointEntity Light, CreatePivot() SetShadowLight(Light) ;Floor c = CreateCube() ScaleEntity c, 5, 1, 5 EntityColor c, 0, 0, 255 SetShadowMesh(c, False) ;Animated caster Caster = LoadAnimMesh("..\Media\Mak.3ds") ScaleEntity Caster, .1, .1, .1 PositionEntity Caster, 2, 1.2, 0 SetShadowMesh(Caster) Caster1 = LoadAnimMesh("..\Media\Mak.3ds") ScaleEntity Caster1, .1, .1, .1 PositionEntity Caster1, 2, 1.2, 3 SetShadowMesh(Caster1) ;Note: This shadow system doesn't matter about, whether it is animated or not. ;Just use SetShadowMesh() for animated and not animated objects. ;The other issue is, that b3d animations are not working. Only 3ds/x anims! ;Main loop While Not KeyHit(1) Cls frames=frames+1 time=MilliSecs() TurnEntity Caster, 0,0.5*time1, 0 If MilliSecs()-oldtime>1000 fps=frames oldtime=MilliSecs() frames=0 EndIf Render(1, 1) Text 1,1,fps Flip 0 time1=MilliSecs()-time Wend FreeShadows() End Kann man hier irgendwie noch mehr speed raußholen? (Nicht, dass das langsam wäre) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group