[B3D] Schnelle Stars-Sphere erzeugen
Übersicht

![]() |
hecticSieger des IS Talentwettbewerb 2006Betreff: [B3D] Schnelle Stars-Sphere erzeugen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Puhh, brauche mal ein wenig Pause von Buggy, so habe ich mal was anderes gemacht. Hier eine Stars-Sphere für Weltraumshooter etc.
Der Vorteil dieser Sphere ist, das sie - bei mir zumindest - wesentlich schneller (edit2> kann aber bei unterschiedlichen Systemen auch anders rum sein, siehe dazu den Beitragsverlauf <edit2) ist als eine gewöhnliche SkyBox mit Sternentextur überzogen. Zudem wird eine wesentlich höhere 'Auflösung' der einzelnen Sterne dargestellt, als es zB mit einer 2048er Textur möglich währe. Denoch sind die Sterne nicht so klein, dass sie flimmern würden, dieses wird vom Code automatisch der jeweiligen Bildschirmauflösung angepasst. Erzeugt wird eine neue Sphere mit StarsSphere(anz,rnd) - anz - gibt die Anzahl der Sterne*160 an. Als maximum ist eine Angabe von 100 möglich. Mehr geht deshalb nicht, weil jeder Stern aus zwei Polygonen besteht, und da ist bei 32768 schluss. anz=0 löscht vorhandene StarsSphere. - rnd - gibt die Position des Zufallsgenerators wieder. Falls man zB für ein Level immer nur den gleichen Hintergrund haben möchte, so gibt man für jeweiligen Level immer die jeweilige rnd-Nummer. edit1: Mit der Taste -Space- kann man neue Sternenkonstelationen erzeugen. Eventuell währen damit auch Sternennebel möglich... Hmmm... Code: [AUSKLAPPEN] ;Grafik
Const gfx=1280 Const gfy=gfx*.75 Graphics3D gfx,gfy,0,1 SetBuffer BackBuffer() ;Kamera erstellen camera=CreateCamera() PositionEntity camera,0,0,0 CameraRange camera,.1,1000 ;Standard-Stars-Sphere-Kramm Global ssb_mesh=CreateMesh() Global ssb_brush=CreateBrush() Global ssb_texture=CreateTexture(2,2,3) WritePixel 0,0,$00ffffff,TextureBuffer(ssb_texture) WritePixel 1,0,$ffffffff,TextureBuffer(ssb_texture) WritePixel 0,1,$00ffffff,TextureBuffer(ssb_texture) WritePixel 1,1,$00ffffff,TextureBuffer(ssb_texture) ScaleTexture ssb_texture,2,2 BrushTexture ssb_brush,ssb_texture Global ssb_face=CreateSurface(ssb_mesh,ssb_brush) FreeTexture ssb_texture EntityFX ssb_mesh,3;19 ;1.Wert-Maximal-%-Anzahl-Sterne ;2.Wert-Sternenkonstelation StarsSphere(100,7) mx#=0 my#=0 mz#=0 ;HAUPTSCHLEIFE While Not KeyHit(1) ;Maus-Bewegungs-Kramm mx=mx-MouseXSpeed()/500.0 my=my+MouseYSpeed()/500.0 MoveMouse gfx/2,gfy/2 mx=mx*.99 my=my*.99 ;Mit-Space-Neuen-Sternenkramm If KeyHit(57) StarsSphere(100,MilliSecs()) ;Mit-Maustasten-Kamera-Bewegen If MouseDown(1) MoveEntity camera,0,0,-.1 If MouseDown(2) MoveEntity camera,0,0,.1 ;Mit-Maus-Kamera-Drehen TurnEntity camera,my,mx,0 ;3D-Kramm RenderWorld ;Frames-Anzeiger ms=MilliSecs():Text 0,0,fps If ms>mt mt=ms+254:fps=frame:frame=0 Else frame=frame+4 Flip 0 Wend End ;StarsSphere-Funktion Function StarsSphere(ssb_anz,ssb_rnd) If ssb_anz>100 ssb_anz=100 ClearSurface ssb_face SeedRnd ssb_rnd ;Los-Gehts If ssb_anz>0 ;Hilfs-Positionen ssb_pm=CreatePivot() ssb_p0=CreatePivot() ssb_p1=CreatePivot(ssb_p0) ssb_p2=CreatePivot(ssb_p0) ssb_p3=CreatePivot(ssb_p0) ssb_p4=CreatePivot(ssb_p0) ;Hilfs-Formationen PositionEntity ssb_p1,0,+1,0 PositionEntity ssb_p2,-1,0,0 PositionEntity ssb_p3,0,-1,0 PositionEntity ssb_p4,+1,0,0 ;Variablen ssb_x#=0 ssb_y#=0 ssb_z#=0 ssb_s#=0 ;Alle-Sterne-Einzeichnen For ssb_q=0 To ssb_anz*160 ;Nicht-Alle-Gleich If ssb_q>ssb_anz*80 ;Sternen(Häufungen) ssb_x=ssb_x+Rnd(-8.0/ssb_anz,8.0/ssb_anz) ssb_y=ssb_y+Rnd(-8.0/ssb_anz,8.0/ssb_anz) ssb_z=ssb_z+Rnd(-8.0/ssb_anz,8.0/ssb_anz) Else ;Sternen(Verteilung) ssb_x=ssb_x+Rnd(-16.0/ssb_anz,16.0/ssb_anz) ssb_y=ssb_y+Rnd(-16.0/ssb_anz,16.0/ssb_anz) ssb_z=ssb_z+Rnd(-16.0/ssb_anz,16.0/ssb_anz) End If ;Stern-Position-Normalisieren TFormNormal ssb_x,ssb_y,ssb_z,0,0 ssb_x=TFormedX() ssb_y=TFormedY() ssb_z=TFormedZ() ;Sternen-Farben If Rand(0,4)=0 ssb_fm=Rand(1,5)*40 Else ssb_fm=Rand(1,3)*40 ssb_fr=Rand(0,55)+ssb_fm ssb_fg=Rand(0,55)+ssb_fm ssb_fb=Rand(0,55)+ssb_fm ;Sternen-Skallierung-Und-Ausrichtung ssb_s=((320+ssb_fm)/90.0)/GraphicsWidth() PositionEntity ssb_p0,ssb_x,ssb_y,ssb_z ScaleEntity ssb_p0,ssb_s,ssb_s,ssb_s PointEntity ssb_p0,ssb_pm ;Standard-Vertex-Positionierung ssb_v0=AddVertex(ssb_face,EntityX(ssb_p1,1),EntityY(ssb_p1,1),EntityZ(ssb_p1,1), 0.5,1.5) ssb_v1=AddVertex(ssb_face,EntityX(ssb_p2,1),EntityY(ssb_p2,1),EntityZ(ssb_p2,1), 2.5,1.5) ssb_v2=AddVertex(ssb_face,EntityX(ssb_p3,1),EntityY(ssb_p3,1),EntityZ(ssb_p3,1), 2.5,3.5) ssb_v3=AddVertex(ssb_face,EntityX(ssb_p4,1),EntityY(ssb_p4,1),EntityZ(ssb_p4,1), 0.5,3.5) ;Standard-Vertex-Colorierung VertexColor ssb_face,ssb_v0,ssb_fr,ssb_fg,ssb_fb,1 VertexColor ssb_face,ssb_v1,ssb_fr,ssb_fg,ssb_fb,1 VertexColor ssb_face,ssb_v2,ssb_fr,ssb_fg,ssb_fb,1 VertexColor ssb_face,ssb_v3,ssb_fr,ssb_fg,ssb_fb,1 ;Standard-Vertex-Ausrichtung VertexNormal ssb_face,ssb_v0,0,0,-1 VertexNormal ssb_face,ssb_v1,0,0,-1 VertexNormal ssb_face,ssb_v2,0,0,-1 VertexNormal ssb_face,ssb_v3,0,0,-1 ;Standard-Strangulierung:) AddTriangle(ssb_face,ssb_v0,ssb_v1,ssb_v2) AddTriangle(ssb_face,ssb_v2,ssb_v3,ssb_v0) Next ;Auf-Standard-Größe-Machen ScaleEntity ssb_mesh,100,100,100 ;Zeug-Befreien FreeEntity ssb_p4 FreeEntity ssb_p3 FreeEntity ssb_p2 FreeEntity ssb_p1 FreeEntity ssb_p0 FreeEntity ssb_pm End If End Function |
||
- Zuletzt bearbeitet von hectic am Sa, Jan 27, 2007 1:10, insgesamt einmal bearbeitet
Stevenehemals "Steven04" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Crass! Sieht richtig cool aus! ![]() Werde jetzt mal das in mein Spiel einzubauen und dann schaue ich mal, wie schnell es ist! ![]() |
||
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
schick schick,
aber das mit dem Sternennebel wäre net so zu empfehlen, da wären Sprites besser, die könnte man dann ausblenden wenn man durchfliegt, usw... |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Black Spider, Es soll davon auszugehen sein, dass die StarsSphere - eingesetzt im spiel - sich mit der Kamera verschiebt und nur die kameradrehung zu sehen sein soll. Warum ich es im Beispiel nicht schon so gemacht habe ist, dass ich der Comunity die Möglichkeit geben wollte zu sehen, wie diese aufgebaut ist. Daher sollte man im Spiel nicht 'durch irgendwas' fliegen können, was Bestandteil der St.Sphere ist.
Denn: selbst Lichtgeschwindigkeit würde nicht aussreichen um ein Stern in annehmabere zeit erreichen zu können, wenn man von der Zeitverzerrung mal absieht. ![]() Daher währe ein sternenhimmel schon Sinnvoll, da es dann auch als SingleSurface dargestellt wird. ^^ |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Heyyy, danke!! Das kann ich gerade sehr gut gebrauchen!!! ![]() ![]() Ich bau grad ein paar simple "Nebel" ein, also dass jeder 2000ste Stern sehr dunkel (rot/violett/blau) gefärbt und auf das 100-500fache vergrößert wird, dann sieht das noch besser aus ![]() Aber wieso schneller als eine normale Skybox? o.O |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
- Zuletzt bearbeitet von FireballFlame am So, Feb 04, 2007 3:58, insgesamt einmal bearbeitet
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sehr sehr schön. Da folgendes:
Code: [AUSKLAPPEN] Graphics3D 1024,768,32,1
SetBuffer BackBuffer() SeedRnd MilliSecs() cam=CreateCamera() detail=GraphicsWidth()*.5 stars#=.1 boxtex=CreateTexture(detail,detail) MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 SetBuffer TextureBuffer(boxtex) For x=0 To detail-1 For y=0 To detail-1 s#=Rnd(100) If s#<=stars# hel=Rand(0,255) Color hel,hel,hel Plot x,y EndIf Next Next SetBuffer BackBuffer() box=CreateCube() EntityFX box,1 ScaleEntity box,10,10,10 FlipMesh box EntityTexture box,boxtex While Not KeyHit(1) Cls TurnEntity cam,MouseYSpeed()*.05,-MouseXSpeed()*.05,0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 UpdateWorld RenderWorld Flip Wend End aber wesentlich weniger prozessorlastig ist, werde ich wohl trotzdem diese Methode benutzen. Ist eigentlich für meine Zwecke ausreichend. Mich stört, dass deine Sterne in allen Farben auftauchen, wobei die gängigsten jedoch rot, weiß und gelb wären. |
||
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. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es bleibt jedem selbst überlassen, wie er es macht.
Aber: - Dein Code ist etwa 3mal langsamer als meiner (deshalb habe ich es ja auch überhaupt gemacht). edit1> In hohen Auflösungen zumindest. Bei niedrigen Auflösungen von etwa 640x480 bleibt es gleich <edit - Bei deinem Code wird keine perspetivische Korretur in die Textur nahe der Ränder eingezeichnet, was dazu führt, dass die Sterne dort flimmern und man dadurch wieder die 'Box' als solche erkennt. - Bei deinem Code ist die Struktur der Textur sechsmal vorhanden, dadurch ist es dem Spieler nicht möglich, sich in dem ohnehin schwer zu orientierbaren Weltall zu bewegen, da du generell auf Strukturen verzichten musst. Die habe ich bei mir extra ja noch eingebaut. - Du hast die Möglichkeit die Farben der Sterne in meinem Code anzupassen, da der Code im Codearchive ja als solches 'frei' ist. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst meine Kritik nicht verkraften, was? xD
Ist natürlich nur Spaß. Wieso sollte es nochmal langsamer sein? Ich denke, da hab ich wohl irgendwas nicht mitgeschnitten. Sind 8000 Vertices, die jede Schleife aktualisiert werden müssen denn wirklich schneller als die eine Textur? Das es die Orientierung versaut, kann man nicht abstreiten. Man hat einfach keinen Durchblick mehr. Allerdings erkannte ich die Box nicht als solche! Soll aber nicht heißen, dass ich den Code schöner finde als deinen. Da ich grundlegend keine Weltraumspiele mag, also solche auch nicht programmieren werde, ist es mir relativ egal. Dein Code ist jedenfalls besser als meiner, dafür ist meiner kürzer. Für Schreibfaule wie mich genau das Richtige. Ich benutze sowas eh nur für Spielereien, also ist es mir mehr oder weniger gleichgültig. |
||
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. |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
StepTiger hat Folgendes geschrieben: Dein Code ist jedenfalls besser als meiner, dafür ist meiner kürzer. Für Schreibfaule wie mich genau das Richtige.
Gerade wenn du so schreibfaul bist, warum bastelst du dann eigenen Code und nimmst nicht hectics? ![]() ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jepp, dafür ist ja das Codearchive ja da, um anderen die Arbeit zu erleichtern. Aber um auf die Frage zurück zu kommen: Ja, es stimmt das bei meinem Code biszu 32000 Triangles gezeichnet werden, was viel erscheint und es auch ist. Es ist aber schon ein grundlegender grafischer Abschnitt, wo nicht mehr allzuviel hinzu kommen muß im Spiel. Es stimmt aber auch, das eine Weltraumtextur 99 % Bildschirmfüllend einfach nur schwarz zeichnen MUSS was sich Fillrate nennt.
Ausserdem, teste doch mal die Geschwindigkeit. Würde mich sogar mal interessieren, da unterschiedliche Grafikkarten sicherlich unterschiedliche Ergebnisse ergeben werden. Die einen sind vielleicht gut in Fillrate und die anderen gut in Vertexpositionierung... Deshalb schrieb ich ja auch ganz zu Anfang '''Der Vorteil dieser Sphere ist, das sie - bei mir zumindest - wesentlich schneller ist als eine...''' Hier meine Messungen (Auflösung, Deine FPS, Meine FPS): Code: [AUSKLAPPEN] 320 x 240, 2560, 500
640 x 480, 652, 484 800 x 600, 452, 488 1024 x 768, 288, 440 1280 x 960, 144, 360 1600 x 1200, 72, 212 2048 x 1536, 32, 96 Kritik vertrage ich gut, solange sie angebracht ist. Ein Code durch ein schlechteren zu vermiesen, ist nicht schön. Mal von der 320er Auflösung abgesehen (wird eh niemand in dieser spielen wollen), ist mein Code ab der 800er schneller und schöner. Auch habe ich bei den Messungen auf 100 % -Anzahl gesetzt, um für mich die ungünstigste Situation zu wählen, was bei der 320er Auflösung vielzuviel Sterne bedeutend war. Wem der Code nicht gefällt, einfach ignorieren. Wer ein besseren hat, kann ihn ja mal vorstellen oder erwähnen wie es besser geht, dann bemühe ich mich, um das maximum an meiner zZ Möglichen Qualität etc. für's Codearchive zur Verfügung zu stellen. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] 320 240 2500 828
640 480 1631 761 800 600 1003 680 1024 768 870 690 1280 960 631 566 1600 1200 410 573 Ich wollte deinen Code nicht vermiesen, sondern eine einfache Alternative zeigen. Aber ist gut! Ignoriert meinen bösen Code, denn hectic hat eh den besseren. (Nein, kein Sarkasmus.) Deiner ist zwar bei niedrigen Auflösungen wesentlich langsamer, aber während meine FPS nach Erwartungen stark sinken, sind deine relativ konstant. Hier die Codes zur Messung: Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() SeedRnd MilliSecs() cam=CreateCamera() detail=512 stars#=.1 boxtex=CreateTexture(detail,detail) MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 SetBuffer TextureBuffer(boxtex) For x=0 To detail-1 For y=0 To detail-1 s#=Rnd(100) If s#<=stars# hel=Rand(0,255) Color hel,hel,hel Plot x,y EndIf Next Next SetBuffer BackBuffer() box=CreateCube() EntityFX box,1 ScaleEntity box,10,10,10 FlipMesh box EntityTexture box,boxtex f#=0 time=MilliSecs() While Not KeyHit(1) f=f+1 Cls TurnEntity cam,Rnd#(5)-2.5,Rnd(5)-2.5,0;MouseYSpeed()*.05,-MouseXSpeed()*.05,0 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2 UpdateWorld RenderWorld Color 255,255,255 Text 1,1,f#/(MilliSecs()-time)*1000. Flip Wend End Code: [AUSKLAPPEN] ;Grafik
Const gfx=800 Const gfy=gfx*.75 Graphics3D gfx,gfy,0,1 SetBuffer BackBuffer() ;Kamera erstellen camera=CreateCamera() PositionEntity camera,0,0,0 CameraRange camera,.1,1000 ;Standard-Stars-Sphere-Kramm Global ssb_mesh=CreateMesh() Global ssb_brush=CreateBrush() Global ssb_texture=CreateTexture(2,2,3) WritePixel 0,0,$00ffffff,TextureBuffer(ssb_texture) WritePixel 1,0,$ffffffff,TextureBuffer(ssb_texture) WritePixel 0,1,$00ffffff,TextureBuffer(ssb_texture) WritePixel 1,1,$00ffffff,TextureBuffer(ssb_texture) ScaleTexture ssb_texture,2,2 BrushTexture ssb_brush,ssb_texture Global ssb_face=CreateSurface(ssb_mesh,ssb_brush) FreeTexture ssb_texture EntityFX ssb_mesh,3;19 ;1.Wert-Maximal-%-Anzahl-Sterne ;2.Wert-Sternenkonstelation StarsSphere(100,7) mx#=0 my#=0 mz#=0 f#=0 time=MilliSecs() ;HAUPTSCHLEIFE While Not KeyHit(1) f=f+1 ;Maus-Bewegungs-Kramm mx=mx-MouseXSpeed()/500.0 my=my+MouseYSpeed()/500.0 MoveMouse gfx/2,gfy/2 mx=mx*.99 my=my*.99 ;Mit-Space-Neuen-Sternenkramm If KeyHit(57) StarsSphere(100,MilliSecs()) ;Mit-Maustasten-Kamera-Bewegen If MouseDown(1) MoveEntity camera,0,0,-.1 If MouseDown(2) MoveEntity camera,0,0,.1 ;Mit-Maus-Kamera-Drehen TurnEntity camera,Rnd#(5)-2.5,Rnd(5)-2.5,0;my,mx,0 ;3D-Kramm RenderWorld Text 10,20,f#/(MilliSecs()-time)*1000. ;Frames-Anzeiger ms=MilliSecs():Text 0,0,fps If ms>mt mt=ms+254:fps=frame:frame=0 Else frame=frame+4 Flip 0 Wend End ;StarsSphere-Funktion Function StarsSphere(ssb_anz,ssb_rnd) If ssb_anz>100 ssb_anz=100 ClearSurface ssb_face SeedRnd ssb_rnd ;Los-Gehts If ssb_anz>0 ;Hilfs-Positionen ssb_pm=CreatePivot() ssb_p0=CreatePivot() ssb_p1=CreatePivot(ssb_p0) ssb_p2=CreatePivot(ssb_p0) ssb_p3=CreatePivot(ssb_p0) ssb_p4=CreatePivot(ssb_p0) ;Hilfs-Formationen PositionEntity ssb_p1,0,+1,0 PositionEntity ssb_p2,-1,0,0 PositionEntity ssb_p3,0,-1,0 PositionEntity ssb_p4,+1,0,0 ;Variablen ssb_x#=0 ssb_y#=0 ssb_z#=0 ssb_s#=0 ;Alle-Sterne-Einzeichnen For ssb_q=0 To ssb_anz*160 ;Nicht-Alle-Gleich If ssb_q>ssb_anz*80 ;Sternen(Häufungen) ssb_x=ssb_x+Rnd(-8.0/ssb_anz,8.0/ssb_anz) ssb_y=ssb_y+Rnd(-8.0/ssb_anz,8.0/ssb_anz) ssb_z=ssb_z+Rnd(-8.0/ssb_anz,8.0/ssb_anz) Else ;Sternen(Verteilung) ssb_x=ssb_x+Rnd(-16.0/ssb_anz,16.0/ssb_anz) ssb_y=ssb_y+Rnd(-16.0/ssb_anz,16.0/ssb_anz) ssb_z=ssb_z+Rnd(-16.0/ssb_anz,16.0/ssb_anz) End If ;Stern-Position-Normalisieren TFormNormal ssb_x,ssb_y,ssb_z,0,0 ssb_x=TFormedX() ssb_y=TFormedY() ssb_z=TFormedZ() ;Sternen-Farben If Rand(0,4)=0 ssb_fm=Rand(1,5)*40 Else ssb_fm=Rand(1,3)*40 hel=Rand(0,255) ssb_fr=hel;Rand(0,55)+ssb_fm ssb_fg=hel;Rand(0,55)+ssb_fm ssb_fb=hel;Rand(0,55)+ssb_fm ;Sternen-Skallierung-Und-Ausrichtung ssb_s=((320+ssb_fm)/90.0)/GraphicsWidth() PositionEntity ssb_p0,ssb_x,ssb_y,ssb_z ScaleEntity ssb_p0,ssb_s,ssb_s,ssb_s PointEntity ssb_p0,ssb_pm ;Standard-Vertex-Positionierung ssb_v0=AddVertex(ssb_face,EntityX(ssb_p1,1),EntityY(ssb_p1,1),EntityZ(ssb_p1,1), 0.5,1.5) ssb_v1=AddVertex(ssb_face,EntityX(ssb_p2,1),EntityY(ssb_p2,1),EntityZ(ssb_p2,1), 2.5,1.5) ssb_v2=AddVertex(ssb_face,EntityX(ssb_p3,1),EntityY(ssb_p3,1),EntityZ(ssb_p3,1), 2.5,3.5) ssb_v3=AddVertex(ssb_face,EntityX(ssb_p4,1),EntityY(ssb_p4,1),EntityZ(ssb_p4,1), 0.5,3.5) ;Standard-Vertex-Colorierung VertexColor ssb_face,ssb_v0,ssb_fr,ssb_fg,ssb_fb,1 VertexColor ssb_face,ssb_v1,ssb_fr,ssb_fg,ssb_fb,1 VertexColor ssb_face,ssb_v2,ssb_fr,ssb_fg,ssb_fb,1 VertexColor ssb_face,ssb_v3,ssb_fr,ssb_fg,ssb_fb,1 ;Standard-Vertex-Ausrichtung VertexNormal ssb_face,ssb_v0,0,0,-1 VertexNormal ssb_face,ssb_v1,0,0,-1 VertexNormal ssb_face,ssb_v2,0,0,-1 VertexNormal ssb_face,ssb_v3,0,0,-1 ;Standard-Strangulierung:) AddTriangle(ssb_face,ssb_v0,ssb_v1,ssb_v2) AddTriangle(ssb_face,ssb_v2,ssb_v3,ssb_v0) Next ;Auf-Standard-Größe-Machen ScaleEntity ssb_mesh,100,100,100 ;Zeug-Befreien FreeEntity ssb_p4 FreeEntity ssb_p3 FreeEntity ssb_p2 FreeEntity ssb_p1 FreeEntity ssb_p0 FreeEntity ssb_pm End If End Function |
||
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. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ne, eben nicht. Bei dir ist mein Code wiederum recht schlecht. Kaum einer wird auf 1600x1200er Auflösung spielen. Ausserdem kannst du dein Code noch schneller machen, wenn du das blöde Cls da weg machst, macht bei mir +25%.
Was ich bei mir überhaupt nicht verstehen kann ist, warum mein Code langsamer wird, wenn man MoveMouse auskommentiert?! Ich änder mal kurz den ersten Beitrag... |
||
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nun hats mich auch mal interessiert!
Hier mal meine Messungen: Code: [AUSKLAPPEN] Höhe | Breite | Step | Hectic 320 | 240 | 3700 | 172 640 | 480 | 2280 | 172 800 | 600 | 1670 | 172 1024 | 768 | 1070 | 172 1280 | 960 | 724 | 172 1600 | 1200 | 456 | 172 Mein Fazit ist, das Hectics hübscher, jedoch Steps schneller ist und man die Orientierungslosigkeit aus leicht beheben kann ( Cube mit 24 Verts und 6 Surfs erstellen und für jede Seite einen Brush erstellt ). Die Skybox Kanten konnte ich bei ganz genauem hinsehen auch erahnen, wäre mir jedoch nicht aufgefallen wenn ich nicht Explizip drauf geachtet hätte. Ich denke der Code sollte je nach gebrauch benutzt werden, da beide Codes ihre Vor- und Nachteile haben. MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Boah, was ist das denn für ein krasser Unterschied?! ![]() Keine Ahnung, ob diese diskusion dem Moderatoren vielleicht auf den Senkel geht, aber ich hätte nichts dagegen wenn mein Code gelöscht werden würde, da es mit solchen Unterschieden zu Problemen kommen könnte, wenn andere ihn einsetzen...^^ |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
dein code ist wesentlich schöner ![]() Wenn, dann löscht meinen und den ganzen kram der dazu als diskussion diente ![]() An deinem Code lässt sich sicher noch Einiges optimieren, oder? system siehe unten! |
||
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. |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was mir zur Optimierung einfällt währe, jeden Stern aus einem Triangle darzustellen. Dieses hatte ich bereits schon vor, hatte es aber verworfen, weil - um ein Pixel einzuschliessen - die Grundfläche eines Sterns dann doppelt so groß währe, wie jetzt es mit zwei Triangles ist. Also die Fillrate würde pro Stern verdoppelt, dafür die Triangleszahl halbiert. Um die Sache auf dem Punkt zu bringen: Auf 'meinem' System währe es langsamer, auf 'eurem' wohl etwas schneller...
Noch eine Möglichkeit, eine Kugeloberfläche nur aus Triangles mit gleicher Kantenlänge (also 5 im Kreis um ein Bogen in der 3ten Dimension zu bekommen), und dann auf eine Textur per UV-Mapping so zugreifen, dass man pro Vertice auch mal die Richtung in der UV selber ändert. Dadurch hätte man eine Mischung aus Skybox und meinem Kramm und denoch keine grundlegende wiederholende Sternengrundformen (das war ja mein Ziel). Auch die Performence sollte sich dann auf allen Systemen in etwa Wage halten. So wie es jetzt ist, 'mag' ich es nicht mehr anwenden. Denn bei mir ist es echt schneller, so bin ich von ausgegangen das es bei den meisten wohl auch so sein wird. Die Differenz bei 5k41 sagt mir, es blos nicht anzuwenden. ![]() edit1: Weiß jemand wie so eine Kugel heisst? Also so eine, die nur aus gleichen Dreiecken besteht und wie man sie berechnet? |
||
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Neiin, skal, was hast du nur angerichtet???
Hier sind meine Werte - die durchschnittlichen FPS, mit Fraps gebenchmarkt ^^: Code: [AUSKLAPPEN] Auflösung | Step | Hectic
----------+------+------- 320x240 | 46.8 | 252.3 640x480 | 51.2 | 240.8 800x600 | 51.8 | 251.7 1024x768 | 59.8 | 257.9 1280x960 | 60.4 | 250.2 1600x1200 | 48.8 | 249.2 ! Mir würde eine Verwendung deines Codes also sehr entgegenkommen... Man kann es eh nie allen recht machen. Bei manchen Leuten ist der eine Code schneller, bei anderen der andere. Aber deiner sieht im Zweifalle halt einfach besser aus!!! ^^ |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
- Zuletzt bearbeitet von FireballFlame am So, Jan 28, 2007 15:01, insgesamt 4-mal bearbeitet
![]() |
5k41 |
![]() Antworten mit Zitat ![]() |
---|---|---|
zu meinem Rechner: Amd 64 3200+, 2 GB Kingston Ram,Asus Nvidia GeForce 6600 GT.
MfG |
||
Projekte:
For a better World - Gesellschaftsspiel ( 100%) User posted image |
moonworxBetreff: Danke fürs teilen ! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wunderhübsch hectic, vielen Dank ! | ||
Star Chasm |
SchoaschBetreff: videomode |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Videomode not Supported
![]() kan mir wer nen screnn schicken oder ins archiv laden? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group