CreateWater()
-
- Beiträge: 167
- Registriert: 29.12.2005 09:58
- Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)
CreateWater()
Hat von euch schonmal jemand CreateWater() erfolgreich verwendet?
Die Hilfe dazu ist leider etwas dürftig und Beispiel gibts auch keins in der Hilfe.
Die Hilfe dazu ist leider etwas dürftig und Beispiel gibts auch keins in der Hilfe.
WinXP 32 Bit, PureBasic 4.40 (x86)
Re: CreateWater()
Das würde mich auch interessieren.
Alle bisherigen Versuche endeten in blauen oder weissen
Flächen die sich zwar wellenartig bewegen aber keinesfalls
wie Wasser aussehen.
Alle bisherigen Versuche endeten in blauen oder weissen
Flächen die sich zwar wellenartig bewegen aber keinesfalls
wie Wasser aussehen.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: CreateWater()
Leider kann ich es euch nicht raussuchen, weil die Suchfunktion in beiden Foren einigermaßen streikt (Sie findet das PureBasic 4.31 beta 1 Announcement nichtmehr). Da war ein Beispielquelltext drin, aber ich habe auch schon mit dem Wasser experimentiert und da gibts noch Probleme, doch ich kann die Ursache nicht genau finden und ich kann die Probleme auch nicht gut fixieren, sonst hätte ich schon längst einen weiteren Bugreport geschrieben. Manchmal muss man auch negative Werte eingeben damit das Wasser transparent wird.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Re: CreateWater()
hmm, solange man ein Licht(z.B Sun) hat, dass darauf scheint, erkennt man das Wasser, hier mal ein mini-test, den ich iwan mal gemacht hab, um in die 3d-lib von pb reinzufinden:
Was m ich interessieren würde, ist, was "Welteinheiten" sind...
Code: Alles auswählen
InitEngine3D()
InitSprite()
InitMouse()
InitKeyboard()
#cameraspeed = 1
Add3DArchive("data\",#PB_3DArchive_FileSystem)
OpenScreen(1280,1024,32,"test")
LoadTexture(0,"clouds.jpg")
SkyDome("clouds.jpg",50)
AmbientColor(RGB(100,20,0))
CreateMaterial(0, LoadTexture(0, "r2skin.jpg"))
CreateEntity (0, LoadMesh(0, "robot.mesh"), MaterialID(0) ,100, 200, 300)
CreateCamera(0,0,0,100,100)
CameraLocate(0,100,200,300)
CreateCamera(1,80,80,20,20)
CameraLocate(1,100,200,300)
Sun(100,100,200,RGB(234, 205, 21))
CreateWater(0,200,200,400,100,#PB_World_WaterHighQuality|#PB_World_WaterCaustics|#PB_World_WaterSmooth|#PB_World_WaterFoam|#PB_World_WaterSun)
Fog(RGB(200,200,200),100,200,400)
AnimateEntity(0,"Walk")
Repeat
ExamineMouse()
ExamineKeyboard()
ClearScreen(0)
camerax = (MouseDeltaY()/5) * (-1)
cameray = (MouseDeltaX()/5) * (-1)
If KeyboardPushed(#PB_Key_Up)
movey - #cameraspeed
ElseIf KeyboardPushed(#PB_Key_Down)
movey + #cameraspeed
Else
movey = 0
EndIf
If KeyboardPushed(#PB_Key_Left)
movex - #cameraspeed
ElseIf KeyboardPushed(#PB_Key_Right)
movex + #cameraspeed
Else
movex = 0
EndIf
RotateCamera(0,camerax,cameray,cameraz,#PB_Relative)
MoveCamera(0,movex,0,movey)
RenderWorld()
FlipBuffers()
Until GetAsyncKeyState_(#VK_ESCAPE)
Ich verkaufe Rechtschreibfehler und jede menge GROßBUCHSTABEN. Alles unbegrenzt zu haben.
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: CreateWater()
Welteinheiten ist halt die Einheit in deiner Welt. Je nach größe deiner anderen Modelle musst du dann diese Einheit definieren.
Angenommen du hast nen Maßstab 1m:1 (Echt:Virtuell) dann ist die echte Einheit 1m in der virtuellen Welt 1.0.
Bei einem Maßstab von 1m:5 (Echt:Virtuell) ist die echte Einheit 1m in der virtuellen Welt 5.0.
Angenommen du hast nen Maßstab 1m:1 (Echt:Virtuell) dann ist die echte Einheit 1m in der virtuellen Welt 1.0.
Bei einem Maßstab von 1m:5 (Echt:Virtuell) ist die echte Einheit 1m in der virtuellen Welt 5.0.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Re: CreateWater()
habs in meiner Sammlung gefunden:
Waterr example ist unter GUI.pb mit Texturen etc.
Hier:
http://www.anwesend.ch/meckardt/pb/Ogre1.6.zip
Cheers,
Thalius
Waterr example ist unter GUI.pb mit Texturen etc.
Hier:
http://www.anwesend.ch/meckardt/pb/Ogre1.6.zip
Cheers,
Thalius
"...smoking hash-tables until until you run out of memory." :P
Re: CreateWater()
leider hat das dieses Wasser mit den Orginal Ogre Demos nix gemein.
Aber mal was anderes, ist es eigentlich bekannt das TextureOutput() nicht mehr da ist?
Ich hab das früher mal öfters verwendet und bin beim Ausgraben meiner uralten 3D Schätzchen
darauf gestossen.
OK, wenn "Suchen" funktioneren würde hätte ich auch danach gesucht ^^
Aber mal was anderes, ist es eigentlich bekannt das TextureOutput() nicht mehr da ist?
Ich hab das früher mal öfters verwendet und bin beim Ausgraben meiner uralten 3D Schätzchen
darauf gestossen.
OK, wenn "Suchen" funktioneren würde hätte ich auch danach gesucht ^^
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Re: CreateWater()
Ja das ist bekannt.grapy hat geschrieben:leider hat das dieses Wasser mit den OgreDemos nix gemein.
Aber mal was anderes, ist es eigentlich bekannt das TextureOutput() nicht mehr da ist?
Ich hab das früher mal öfters verwendet und bin beim Ausgraben meiner uralten 3D Schätzchen
darauf gestossen OK, wenn "Suchen" funktioneren würde hätte ich auch danach gesucht ^^
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Re: CreateWater()
Bei LoadTexture(0,"clouds.jpg") kommt bei mir IMA 

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 167
- Registriert: 29.12.2005 09:58
- Computerausstattung: Intel Core2 Quad (4x2,4 GHz), 4096 MB RAM, GForce 8800GTX 786 MB
Windows XP 32 Bit, PureBasic 4.40 (x86)
Re: CreateWater()
Hm beim Testen sind mir folgende Dinge aufgefallen:
Stehen nach dem CreateWater() noch weitere Befehle zum "Einrichten" der Welt, z.B. Sky, dann wird das Wasser bei mir ignoriert, aber der Himmel ist auch nicht zu sehen. Steht CreateWater() am Ende, dann bricht das Programm unerwartet ab und in der Ogre.log steht am Ende folgendes zum Wasser:
Ausserdem erschließt sich mir aus der Hilfe leider nicht wie und wo das Wasser denn hingesetzt wird, da mir die Flächenangaben fehlen und warum man dazu eine Camera angeben muss?
Stehen nach dem CreateWater() noch weitere Befehle zum "Einrichten" der Welt, z.B. Sky, dann wird das Wasser bei mir ignoriert, aber der Himmel ist auch nicht zu sehen. Steht CreateWater() am Ende, dann bricht das Programm unerwartet ab und in der Ogre.log steht am Ende folgendes zum Wasser:
Code: Alles auswählen
07:37:20: [Hydrax] Hydrax object created.
07:37:20: [Hydrax] Creating module.
07:37:20: [Hydrax] Creating ProjectedGrid module.
07:37:20: [Hydrax] ProjectedGrid created.
07:37:20: [Hydrax] Module created.
07:37:20: [Hydrax] Creating RTListeners.
07:37:20: Creating viewport on target 'rtt/2315488/HydraxRefractionMap', rendering from camera 'C0', relative dimensions L: 0.00 T: 0.00 W: 1.00 H: 1.00 ZOrder: 0
07:37:20: Creating viewport on target 'rtt/26016160/HydraxReflectionMap', rendering from camera 'C0', relative dimensions L: 0.00 T: 0.00 W: 1.00 H: 1.00 ZOrder: 0
07:37:20: Creating viewport on target 'rtt/25043360/HydraxDepthMap', rendering from camera 'C0', relative dimensions L: 0.00 T: 0.00 W: 1.00 H: 1.00 ZOrder: 0
07:37:20: [Hydrax] RTListeners created
07:37:20: [Hydrax] Registring device restored listener
07:37:20: [Hydrax] Device restored listener registred
07:37:20: [Hydrax] Creating materials,
07:37:20: [Hydrax] Creating water material...
07:37:20: OGRE EXCEPTION(2:InvalidParametersException): Named constants have not been initialised, perhaps a compile error. in GpuProgramParameters::_findNamedConstantDefinition at OgreGpuProgram.cpp (line 1079)
WinXP 32 Bit, PureBasic 4.40 (x86)