3d Wolken

Übersicht Sonstiges Projekte

Neue Antwort erstellen

oware

Betreff: 3d Wolken

BeitragDo, Nov 16, 2006 20:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Ich musste mich mal irgendwie entspannen und habe deshalb (tada) ein paar simple wolken geproggt, durch die man hindurchfliegt. Wie gesagt, sehr simpel und nach 20 minuten war ich auch schon fertig.. ich brauchte nur abwechslung von meinem "großen" Projekt, Duel.

Viel Spaß!!


mfg oware


http://www.skyway-va.de/downloads/Wolken.zip

ein Bild:

user posted image
www.myspace.com/oliverpuetz -> Mein Instrumentalprojekt

Lunatix

BeitragDo, Nov 16, 2006 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Nett Smile

Wie haste das gemacht ?

Einfach nur sprites oder auch Single Surface ?
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Blitzcoder

Newsposter

BeitragDo, Nov 16, 2006 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Sieht ganz nett aus. Allerdings erkent man kaum etwas, weil man nichts ausser Wolken sieht. Und bitte nimm die Framebremse raus, so kann man nicht sehen, wie schnell es wirklich läuft.

Vielleicht sollte das auch besser in Codearchiv, ob man das als Projekt ansehen kann...?

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Shodan

BeitragDo, Nov 16, 2006 21:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Link ist down. Screenshot ebenfalls.
www.selfmadegames.de

TheMatrix

BeitragFr, Nov 17, 2006 13:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir kommt 'Memory Access Violation' Rolling Eyes
°_° °.° °~° °v° .. -.-

oware

BeitragFr, Nov 17, 2006 15:42
Antworten mit Zitat
Benutzer-Profile anzeigen
@Shodan: Entweder war der server gerade in dem moment down in dem du es downloaden wolltest oder dein pc hat 'ne macke Laughing


Hier mal außnahmsweise der vollkommen unoptimierte Code (seltenheit!!Wink ):


Code: [AUSKLAPPEN]
Graphics3D 1152,864,32,1
AppTitle "Cloud Engine"
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;Global m = CreateMesh()

Type CloudField
   Field mesh#
   Field PosX#
   Field PosY#
   Field PosZ#
   Field alpha#
End Type

Global qut = 1000

cldPos = ReadFile("cldPos.txt")

For i = 0 To qut
   Cloud.Cloudfield = New CloudField
   Cloud\mesh = CreateCloud("cld2.png")
   ScaleEntity Cloud\mesh,8,8,8
   pos$ = ReadLine(cldpos)
   Cloud\PosX = pos
   Cloud\PosY = Mid(pos,Instr(pos,",")+1)
   Cloud\PosZ = Mid(pos,Instr(pos,"/")+1)
   PositionEntity Cloud\mesh,Cloud\PosX,Cloud\PosY,Cloud\PosZ
   EntityAlpha Cloud\mesh,0
Next

Global skybox = CreateSkyBox("sky")
camera = CreateCamera()
CameraFogMode camera,1
CameraFogColor camera,240,240,250
CameraFogRange camera,1,200

PositionEntity camera,0,0,0
Piv = CreatePivot()
EntityParent camera,Piv
PositionEntity Piv,0,15,0

plane = CreatePlane()
PositionEntity plane,0,-40,0
RotateEntity plane,0,45,0
tex = LoadTexture("gnd.jpg")
ScaleTexture tex,864/2,755/2
EntityTexture plane,tex

Color 255,0,0
light = CreateLight()



While Not keydown(1)
   
   
   If (MilliSecs()-start) >= 25
      TurnEntity Piv,0,0,0
      MoveEntity Piv,0,0,0.5
      
   
      
      For Cloud.Cloudfield = Each CloudField
         PointEntity Cloud\mesh,camera
         If cloud\alpha <= 1 cloud\alpha = cloud\alpha + 0.02
         EntityAlpha cloud\mesh,cloud\alpha
         dist# = EntityDistance#(Piv,Cloud\Mesh)
         If dist < 20 EntityAlpha Cloud\mesh,dist/35
         If EntityZ(cloud\mesh)-EntityZ(Piv) < 0 RotateEntity cloud\mesh,0,0,0 MoveEntity cloud\mesh,0,0,200
         If KeyDown(2) Then EntityAlpha cloud\mesh,0 : cloud\alpha = 0
      Next
      
      UpdateWorld
      PositionEntity skybox,EntityX(Piv),EntityY(Piv),EntityZ(Piv)
      start = MilliSecs()
   EndIf
   
   RenderWorld

   If (MilliSecs()-StartSecs)<100
      fps#=fps+1
   Else
      fpsShow#=fps*10
      fps=0
      startsecs=Millisecs()
   EndIf
   Text 0,0,fpsShow+" FPS"

   
   Flip 0
Wend
End



Function CreateCloud(path$)
   m = CreateMesh()
   b = LoadBrush(path,2)
   s = CreateSurface( m,b )
   
   v0 = AddVertex(s,-1,1,0,0,1)
   v1 = AddVertex(s,1,1,0,1,1)
   v2 = AddVertex(s,1,-1,0,1,0)
   v3 = AddVertex(s,-1,-1,0,0,0)
   
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   
   EntityFX m,1+16
   Return m
End Function


Function CreateSkyBox(path$)
   m = CreateMesh()
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,1,1,1,0)
   v1 = AddVertex(s,1,1,1,0,0)
   v2 = AddVertex(s,1,-1,1,0,1)
   v3 = AddVertex(s,-1,-1,1,1,1)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,1,1,1,1,0)
   v1 = AddVertex(s,1,1,-1,0,0)
   v2 = AddVertex(s,1,-1,-1,0,1)
   v3 = AddVertex(s,1,-1,1,1,1)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,1,1,-1,1,0)
   v1 = AddVertex(s,-1,1,-1,0,0)
   v2 = AddVertex(s,-1,-1,-1,0,1)
   v3 = AddVertex(s,1,-1,-1,1,1)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,-1,1,0,1)
   v1 = AddVertex(s,-1,-1,-1,1,1)
   v2 = AddVertex(s,-1,1,-1,1,0)
   v3 = AddVertex(s,-1,1,1,0,0)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_up.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,1,-1,0,1)
   v1 = AddVertex(s,1,1,-1,1,1)
   v2 = AddVertex(s,1,1,1,1,0)
   v3 = AddVertex(s,-1,1,1,0,0)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   
   b = LoadBrush(path+"_down.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,-1,1,0,1)
   v1 = AddVertex(s,1,-1,1,1,1)
   v2 = AddVertex(s,1,-1,-1,1,0)
   v3 = AddVertex(s,-1,-1,-1,0,0)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   EntityFX m,1+8
   ScaleEntity m,1000,1000,1000
   EntityOrder m,9999
   
   Return m
End Function
www.myspace.com/oliverpuetz -> Mein Instrumentalprojekt

TheMatrix

BeitragFr, Nov 17, 2006 17:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, läuft immer noch nicht. Bei mir sagt der 'Runtime Error - Stream does not exist' bei diesem Befehl pos$ = ReadLine(cldpos).

Edit: Ich dummerchen muss ja den Code ins selbe Verzeichniss packen, wo auch die Bilder sind Rolling Eyes

Der Code hat bei mir ne FPS von 0.0 (Debugger Aus) und man sieht immer wie sich das Bild aufbaut. Soll das so sein?

Edit2: Ich erschlag dich heut ma mit Edits Rolling Eyes

Hab Flip 0 zu Flip umgeändert. Jetzt flackert der Bildschirm nicht mehr. Aber die Fps is immer noch miserabel. Grad ma 6FPS. Aber dafür sehen die Wolken echt schön aus Very Happy . Mach dir aber mal weniger damit auch noch was von der Landschaft sieht xD

oware

BeitragFr, Nov 17, 2006 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir mal in meiner signatur meinen pc an und vergleich mit deinem. vllt liegts daran?
www.myspace.com/oliverpuetz -> Mein Instrumentalprojekt

FreetimeCoder

BeitragFr, Nov 17, 2006 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Also bei mir klappts gut! Schön gemacht Very Happy

Google Earth für die Textur, eh?
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte:
Dexterity Ball (100%)
Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz
(ehemals Uboot)
PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA

TheMatrix

BeitragFr, Nov 17, 2006 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Du kleiner Angeber.

Es kann ja nicht jeder son atemberaubenden PC haben wie du, du King Wink .

Und das genau solltest du auch dabei beachten, wenn du ein Programm schreibst. Die meisten haben nämlich alle so 1.8 GHZ rechner mit 512 Ram und darauf solltest schon achten, wenn du auf deinen genialen HighEnd PC ein Code progst;)
°_° °.° °~° °v° .. -.-

biggicekey

BeitragFr, Nov 17, 2006 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
was is das denn schon für ein komischer graphics mode...
bei mir kam immer nur schwarz...


edit:
aber wenns geht ganz nett anzuschauen
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller
Nothing more to register - you've cleaned us out![/size]

Blitzcoder

Newsposter

BeitragFr, Nov 17, 2006 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
So Highendig ist er auch wieder nicht. Gut er hat viel RAM.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

PSY

BeitragFr, Nov 17, 2006 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
sieht gut aus.

hab mal die anzahl + grösse leicht verändert...sieht immer noch gut aus und ist ca. 10mal schneller

Code: [AUSKLAPPEN]
Graphics3D 1152,864,32,1
AppTitle "Cloud Engine"
SetBuffer BackBuffer()
SeedRnd MilliSecs()

;Global m = CreateMesh()

Type CloudField
   Field mesh#
   Field PosX#
   Field PosY#
   Field PosZ#
   Field alpha#
End Type

Global qut = 10

cldPos = ReadFile("cldPos.txt")

For i = 0 To qut
   Cloud.Cloudfield = New CloudField
   Cloud\mesh = CreateCloud("cld2.png")
   ScaleEntity Cloud\mesh,50,50,50
   pos$ = ReadLine(cldpos)
   Cloud\PosX = pos
   Cloud\PosY = Mid(pos,Instr(pos,",")+1)
   Cloud\PosZ = Mid(pos,Instr(pos,"/")+1)
   PositionEntity Cloud\mesh,Cloud\PosX,Cloud\PosY,Cloud\PosZ
   EntityAlpha Cloud\mesh,0
Next

Global skybox = CreateSkyBox("sky")


camera = CreateCamera()
CameraFogMode camera,1
CameraFogColor camera,240,240,250
CameraFogRange camera,1,200

PositionEntity camera,0,0,0
Piv = CreatePivot()
EntityParent camera,Piv
PositionEntity Piv,0,15,0

plane = CreatePlane()
PositionEntity plane,0,-40,0
RotateEntity plane,0,45,0
tex = LoadTexture("gnd.jpg")
ScaleTexture tex,864/2,755/2
EntityTexture plane,tex

Color 255,0,0
light = CreateLight()



While Not keydown(1)
   
   
   If (MilliSecs()-start) >= 25
      TurnEntity Piv,0,0,0
      MoveEntity Piv,0,0,0.5
     
   
     
      For Cloud.Cloudfield = Each CloudField
         PointEntity Cloud\mesh,camera
         If cloud\alpha <= 1 cloud\alpha = cloud\alpha + 0.02
         EntityAlpha cloud\mesh,cloud\alpha
         dist# = EntityDistance#(Piv,Cloud\Mesh)
         If dist < 20 EntityAlpha Cloud\mesh,dist/35
         If EntityZ(cloud\mesh)-EntityZ(Piv) < 0 RotateEntity cloud\mesh,0,0,0 MoveEntity cloud\mesh,0,0,200
         If KeyDown(57) Then EntityAlpha cloud\mesh,0 : cloud\alpha = 0
      Next
     
      UpdateWorld
      PositionEntity skybox,EntityX(Piv),EntityY(Piv),EntityZ(Piv)
      start = MilliSecs()
   EndIf
   
   RenderWorld

   If (MilliSecs()-StartSecs)<1000
      fps#=fps+1
   Else
      fpsShow#=fps
      fps=0
      startsecs=Millisecs()
   EndIf
   Text 0,0,fpsShow+" FPS"

   
   Flip 0
Wend
End



Function CreateCloud(path$)
   m = CreateMesh()
   b = LoadBrush(path,2)
   s = CreateSurface( m,b )
   
   v0 = AddVertex(s,-1,1,0,0,1)
   v1 = AddVertex(s,1,1,0,1,1)
   v2 = AddVertex(s,1,-1,0,1,0)
   v3 = AddVertex(s,-1,-1,0,0,0)

   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   
   EntityFX m,1+16
   Return m
End Function


Function CreateSkyBox(path$)
   m = CreateMesh()
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,1,1,1,0)
   v1 = AddVertex(s,1,1,1,0,0)
   v2 = AddVertex(s,1,-1,1,0,1)
   v3 = AddVertex(s,-1,-1,1,1,1)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,1,1,1,1,0)
   v1 = AddVertex(s,1,1,-1,0,0)
   v2 = AddVertex(s,1,-1,-1,0,1)
   v3 = AddVertex(s,1,-1,1,1,1)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,1,1,-1,1,0)
   v1 = AddVertex(s,-1,1,-1,0,0)
   v2 = AddVertex(s,-1,-1,-1,0,1)
   v3 = AddVertex(s,1,-1,-1,1,1)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_side.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,-1,1,0,1)
   v1 = AddVertex(s,-1,-1,-1,1,1)
   v2 = AddVertex(s,-1,1,-1,1,0)
   v3 = AddVertex(s,-1,1,1,0,0)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   
   b = LoadBrush(path+"_up.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,1,-1,0,1)
   v1 = AddVertex(s,1,1,-1,1,1)
   v2 = AddVertex(s,1,1,1,1,0)
   v3 = AddVertex(s,-1,1,1,0,0)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   
   b = LoadBrush(path+"_down.jpg",49)
   s = CreateSurface(m,b)
   v0 = AddVertex(s,-1,-1,1,0,1)
   v1 = AddVertex(s,1,-1,1,1,1)
   v2 = AddVertex(s,1,-1,-1,1,0)
   v3 = AddVertex(s,-1,-1,-1,0,0)
   AddTriangle s,v0,v1,v2
   AddTriangle s,v0,v2,v3
   FreeBrush b
   EntityFX m,1+8
   ScaleEntity m,1000,1000,1000
   EntityOrder m,9999
   
   Return m
End Function


l8er,
psy

oware

BeitragFr, Nov 17, 2006 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
mmh so fehlen nur leider die ganzen details der wolken.. das prob ist natürlich dass es nicht singlesurface ist. aber kann mir mal jemand ein bsp für das rotieren einzelner Tris geben??? Hilfe das kann ich doch gar nit!!

Hab's mal versucht bin aber nur zu dem punkt gekommen an dem ich den mittelpunkt eines Tris errechnet hatte. aber dann...
K/a.

vielleicht könnt ihr da ja helfen?
und wenns schnell genug wird kann ich diese ja in mein projekt einbinden... Very Happy so als addon für speta. Wink

oware
www.myspace.com/oliverpuetz -> Mein Instrumentalprojekt

Shodan

BeitragMo, Nov 20, 2006 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Regel Nr.1: Vergib niemals irgendein Handle von einem Mesh,Camera,Textur etc. an eine Float-Variable!!!! Nur an Integer-Variablen
Code: [AUSKLAPPEN]

Type CloudField 
   Field mesh# <--- schlechte Idee
   Field PosX#
   Field PosY#
   Field PosZ#
   Field alpha#
End Type

Deswegen läuft die .exe wahrscheinlich nicht. Der Effekt tritt offenbar bei Rechnern mit grösserem Speicher auf, da dort die Zahlenwerte der Handles so gross werden können, dass Floats diese nicht mehr korrekt speichern und anfangen, diese zu runden. Böse Falle. Bin auch mal drauf reingefallen und hab mich dumm und dusselig gesucht.

Ansonsten guter Ansatz. Die partikel sollten hinter der Kamera langsam ausgeblendet werden, damit man auch nach hinten diesselbe Ansicht hat.

mfg Shodan
www.selfmadegames.de
 

Mr Hopp

BeitragSa, Mai 19, 2007 17:26
Antworten mit Zitat
Benutzer-Profile anzeigen
kann mal jmd den aktuellen Link posten? Laughing
Zitat:
Wie poste ich falsch?

Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann.

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group