[B3D] 3D-Brillen Skript(Rot/Grün)
Übersicht

![]() |
pirahniBetreff: [B3D] 3D-Brillen Skript(Rot/Grün) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, ich lieeeeebe 3D Bilder(Red/Green) und habe deswegen einen Stereoskopieskript geschriebendiesen findet ihr unten.
Stereoskopie ist wenn man durch ein Werkzeug(meistens 3D Brillen) schaut und dann 3D Bilder sieht. Diese entstehen indem man 2 Bilder aus verschiedenen Perspektiven aufnimmt und dann zusammenmischt. Die Mischart ist von Brille zu Brille anders. Wie oben schon erwähnt wird hier eine rot/grün Brille benötigt. Wem dass nicht reicht hier ein Wikipedialink: http://de.wikipedia.org/wiki/Stereoskopie Und hier jetzt endlich der Code: [AUSKLAPPEN] Graphics3D 640,480,32,2 SetBuffer BackBuffer() camera=CreateCamera() cameratex1=CreateTexture(512,512) cameratex2=CreateTexture(512,512) camcube1=CreateCube(camera) EntityTexture camcube1,cameratex1 ScaleEntity camcube1,1.2,1.2,1.2 EntityColor camcube1,255,0,0 EntityAlpha camcube1,0.5 EntityFX camcube1,1 FlipMesh camcube1 camcube2=CreateCube(camera) EntityTexture camcube2,cameratex2 ScaleEntity camcube2,1.2,1.2,1.2 EntityColor camcube2,0,255,0 EntityAlpha camcube2,0.5 EntityFX camcube2,1 FlipMesh camcube2 camcube3=CreateCube(camera) ScaleEntity camcube3,1.3,1.3,1.3 EntityFX camcube3,1 FlipMesh camcube3 ;AB HIER SIND ES SACHEN, DIE NUR ZUR DEMONSTRATION DIENEN light=CreateLight() RotateEntity light,90,0,0 cube=CreateCube() PositionEntity cube,0,0,5 ;AB HIER NICHT MEHR. Repeat ;AB HIER SIND ES SACHEN, DIE NUR ZUR DEMONSTRATION DIENEN t=MilliSecs() ;AB HIER NICHT MEHR. EntityAlpha camcube1,0 EntityAlpha camcube2,0 EntityAlpha camcube3,0 ;AB HIER SIND ES SACHEN, DIE NUR ZUR DEMONSTRATION DIENEN TurnEntity cube,1,1,0 ;AB HIER NICHT MEHR. MoveEntity camera,-0.05,0,0 RenderWorld() CopyRect 0,0,640,480,-64,32,BackBuffer(),TextureBuffer(cameratex1) MoveEntity camera,0.1,0,0 RenderWorld() MoveEntity camera,-0.05,0,0 CopyRect 0,0,640,480,-64,32,BackBuffer(),TextureBuffer(cameratex2) EntityAlpha camcube1,0.5 EntityAlpha camcube2,0.5 EntityAlpha camcube3,1 RenderWorld() ;AB HIER SIND ES SACHEN, DIE NUR ZUR DEMONSTRATION DIENEN If (MilliSecs()-t)<>0 Then Text 20,20,1000/(MilliSecs()-t)+" FPS" ;AB HIER NICHT MEHR. Flip Until KeyDown(1) Ist leider etwas langsam:( aber funktioniert:)!!! PS: Würde mich über Tipps zum Schnellermachen freuen, bei mir sind es nur 10 FPS[/url] Hier kommen noch Screenshots von verschiedenen Anwendungen in denen ich diesen Code verwendet habe: ![]() ![]() PPS: Ein besserer Code ist unten aufgelistet. |
||
- Zuletzt bearbeitet von pirahni am Mo, Dez 08, 2008 21:56, insgesamt 5-mal bearbeitet
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich zwar wenig ahnung davon, ist es aber nicht auch möglich 2 Cameras zu machen, die das ganze von verschiedenen Winkeln Filmen ?
Die eine kannste ja durch einee grün-transparente Textur blicken lassen, die andere durch ne rote. Weiß nicht, ob das klappt. Aber vor kurzem hat doch schon mal jemand sow as geschrieben. Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könnte ich schon machen, wüsste aber net wie man das zusammenfügen sollte:( | ||
CN |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hm?
Bei mir läuft das mit 200 FPS oO Schöner Effekt! PS: Ja, ich meine mich daran zu erinnern dass hier schonmal was in der Art da war. Bin mir aber nicht sicher. Edit: Hier mein System: Windows XP Nvidia Geforce 8600 GT AMD Athlon 64 X2 4000+ 2,09 GHz 2GB RAM |
||
[url=unrealstuff.bplaced.de]all rites reversed[/url] |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schön, dann werde ich es auf einem anderem System versuchen. Vielleicht funzts bei meinem Bruder besser.
PS: 2000 FPS??? Kann dein PC halbe Millisekunden messen, denn zur ermitlung der Zeit verwende ich ja die Formel 1000/(MilliSecs()-t) |
||
CN |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() Ich weiss nicht was da los ist. Muss wohl an deinem System liegen, dass du nur 10 FPS hast. |
||
[url=unrealstuff.bplaced.de]all rites reversed[/url] |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, liegt an meinem PC. Bei meiner Mutter läuft es zwischen 25 und 30. Naja, wie dem auch sei, in einem größerem Spiel siehts wunderbar aus^^. | ||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hatte circa 250-270
liegt jedenfalls nicht am code. Hast du eine onboard grafikkarte? Denke es liegt an dem ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
5 FPS mit Onboard 64 MB. | ||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
66 FPS @ Mein System
Amd Sempron 2,4+(derzeit 1,8 ghz) Ati Radeon 8800 3/4 gb Ram |
||
Warbseite |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
deine Frame-Anzeige scheint nicht zu stimmen. Code: [AUSKLAPPEN] ms=MilliSecs():Text 0,50,fps If ms>mt Then mt=ms+500:fps=frame1:frame1=0 Else frame1=frame1+2 ergibt bei mir anderes als Code: [AUSKLAPPEN] t= millisecs()
If (MilliSecs()-t)<>0 Then Text 20,20,1000/(MilliSecs()-t)+" FPS" Edit: Vergesst es , bin doof. Bei meiner Version habe ich mit Flip(0) so um die 160-170FPS Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe es jetzt allgemein gültiger gemacht, nähmlich als Include Datei. sie wird einfach aufgerufen, die ganzen Sachen normal gemacht und dann statt Renderworld einfach Renderworld3d aufrufen. Schon erscheint es eben für 3D Brillen. Hier der Code: [AUSKLAPPEN] ;Voreinstellungen, mit Kamerainitalisierung
;Voreinstellungen, mit Kamerainitalisierung Global camera=CreateCamera() Global cameratex1=CreateTexture(512,512) Global cameratex2=CreateTexture(512,512) Global camcube1=CreateCube(camera) ScaleEntity camcube1,1.1,1.1,1.1 EntityTexture camcube1,cameratex1 EntityColor camcube1,255,0,0 EntityAlpha camcube1,0.5 EntityFX camcube1,1 FlipMesh camcube1 Global camcube2=CreateCube(camera) ScaleEntity camcube2,1.1,1.1,1.1 EntityTexture camcube2,cameratex2 EntityColor camcube2,0,255,0 EntityAlpha camcube2,0.5 EntityFX camcube2,1 FlipMesh camcube2 Global camcube3=CreateCube(camera) ScaleEntity camcube3,1.2,1.2,1.2 EntityFX camcube3,1 FlipMesh camcube3 ;Renderworld3D bewirkt das gleiche wir renderworld, ;nur dass die Welt in rot/grün ist und somit für 3D Brillen geeignet. Function renderworld3d() MoveEntity camera,-0.05,0,0 RenderWorld() CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),256-GraphicsWidth()/2,256-GraphicsHeight()/2,BackBuffer(),TextureBuffer(cameratex1) MoveEntity camera,0.1,0,0 RenderWorld() MoveEntity camera,-0.05,0,0 CopyRect 0,0,GraphicsWidth(),GraphicsHeight(),256-GraphicsWidth()/2,256-GraphicsHeight()/2,BackBuffer(),TextureBuffer(cameratex2) EntityAlpha camcube1,0.5 EntityAlpha camcube2,0.5 EntityAlpha camcube3,1 RenderWorld() EntityAlpha camcube1,0 EntityAlpha camcube2,0 EntityAlpha camcube3,0 End Function |
||
- Zuletzt bearbeitet von pirahni am Mo, Dez 08, 2008 21:55, insgesamt 2-mal bearbeitet
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist modern nicht Cyan anstatt Grün sehr verbreitet?
(Cyan = 0,255,255) MfG EDIT: Mach EntityAlpha vor der Hauptschleife, und benutze in der Hauptschleife HideEntity ![]() ![]() |
||
![]() |
pirahni |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, cyan ist sehr verbreitet. Ich habe aber eine rot/grün-Brille. Ich hielt die Leute in diesem Forum Intelliegent genug um das zu ändern. trotzdem Danke für den Tipp(der mit Show und Hide)
Edit: Habe es versucht, werde es aber nicht ändern, denn die Farbe flackert dann(je nachdem wie die Kamera bewegt wird) und es ist nicht schneller. Wenn du es für dich änderst ist es aber auch in Ordnung. (Verwende es mal mit einer rotierenden Kamera, dann wirst du sehen was ich meine) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group