Cubemap Geschwindigkeit
Übersicht

smeagle24Betreff: Cubemap Geschwindigkeit |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich probiere gerade ein wenig mit Cubemapping rum. Nun habe ich folgendes Problem, das das ganze von der Framerate her mit 21 Frames pro Sekunde doch etwas langsam ist. Und wenn ich noch ein paar Modelle laden will, dann gehts sogar runter bis auf 6 Frames pro Sekunde. Bei meiner Suche im Forum habe ich mehrmals denn Hinweis gefunden, das man nur eine Seite des Cubmaps pro Frame rendern soll. Kann mir das vielleicht jemand erklären, wie das gehen soll? Code: [AUSKLAPPEN] Graphics3D 800,600,32,1
SetBuffer BackBuffer() Global timer=CreateTimer(50) AntiAlias = 1 AmbientLight 229,229,229 Global main_light=CreateLight(1) Global cam_pivot=CreatePivot() Global main_cam=CreateCamera() Global cube_cam = CreateCamera() Global tex = CreateTexture(256, 256, 1 + 128 + 256) PositionEntity main_cam,380,5,76 PositionEntity cam_pivot,380,5,76 EntityType main_cam,1 EntityRadius main_cam,2 EntityType cam_pivot,1 Global automatiktuer Global animation_zaehler=1 Collisions 1, 2, 2, 3 LoadImages() While Not KeyHit(1) HidePointer Cls counter=counter+1 If time=0 Then time=MilliSecs() If time + 1001< MilliSecs() Then framerate=counter counter=0 time=MilliSecs() EndIf Steuerung() Animation() MoveMouse 400,MouseY() UpdateCubemap(tex,cube_cam,automatiktuer) UpdateWorld() RenderWorld() Text 120,80,framerate WaitTimer(timer) Flip Wend End Function Steuerung() TurnEntity cam_pivot,0,0 -MouseXSpeed(),0 TurnEntity main_cam, MouseYSpeed(),0,0 RotateEntity cam_pivot, EntityPitch#(cam_pivot), EntityYaw#(cam_pivot),0 RotateEntity main_cam, EntityPitch#(main_cam), EntityYaw#(cam_pivot),0 If KeyDown(31) Then MoveEntity cam_pivot, 0, 0, -.8 If KeyDown(17) Then MoveEntity cam_pivot, 0, 0,.8 If KeyDown(32) Then MoveEntity cam_pivot, .8, 0, 0 If KeyDown(30) Then MoveEntity cam_pivot, -.8,0, 0 PositionEntity main_cam, EntityX#(cam_pivot), EntityY#(cam_pivot), EntityZ#(cam_pivot) PositionEntity cam_pivot, EntityX#(main_cam), EntityY#(main_cam), EntityZ#(main_cam) End Function Function LoadImages() depot=LoadMesh("data\depot.b3d") depot_tex=LoadTexture("data\rough.jpg") ScaleTexture depot_tex,10,10 EntityTexture depot,depot_tex,0,1 PositionEntity depot,200,0,200 ScaleEntity depot,1.5,1.5,1.5 EntityType depot,2 automatiktuer=LoadAnimMesh("data\tuer_animation_walk.b3d") RotateEntity automatiktuer,0,90,0 ScaleEntity automatiktuer,.9,1,1 PositionEntity automatiktuer,344.3,0,75.5 EntityTexture automatiktuer, tex End Function Function Animation() If EntityDistance(main_cam,automatiktuer) < 10 And animation_zaehler=1 And Animating(automatiktuer)=0 Then anim_speed=1 Animate automatiktuer,3,anim_speed,0,0 : PlaySound(tuer) animation_zaehler = animation_zaehler+1 EndIf If EntityDistance(main_cam,automatiktuer) > 10 And animation_zaehler=2 And Animating(automatiktuer)=0 Then anim_speed=-1 Animate automatiktuer,3,anim_speed,0,0 : PlaySound(tuer) animation_zaehler=1 End If End Function Function UpdateCubemap(tex, camera, entity) tex_sz = TextureWidth(tex) ShowEntity camera HideEntity entity PositionEntity camera, EntityX#(entity), EntityY#(entity), EntityZ#(entity) CameraClsMode camera, False, True CameraViewport camera, 0, 0, tex_sz, tex_sz SetCubeFace tex, 0 RotateEntity camera, 0, 90, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) SetCubeFace tex, 2 RotateEntity camera, 0, - 90, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) ShowEntity entity HideEntity camera End Function |
||
![]() |
Angelo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also AntiAlias = 1 kannst du schonmal bei den neuen Grafiktreibern vergessen.
Ich würde einfach einen counter benutzen und sagen wir mal Code: [AUSKLAPPEN] While Not KeyDown(1)
cubetimer=cubetimer+1 If cubetimer>5 Then cubetimer=0 UpdateCubemap(cubemap, cubecam, box,cubetimer) RenderWorld Flip Wend Function UpdateCubemap(tex, camera, entity,timer) tex_sz = TextureWidth(tex) ShowEntity camera HideEntity entity PositionEntity camera, EntityX#(entity), EntityY#(entity), EntityZ#(entity) CameraClsMode camera, False, True CameraViewport camera, 0, 0, tex_sz, tex_sz If timer=0 Then SetCubeFace tex, 0 RotateEntity camera, 0, 90, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) EndIf If timer=1 Then SetCubeFace tex, 1 RotateEntity camera, 0, 0, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) EndIf If timer=2 Then SetCubeFace tex, 2 RotateEntity camera, 0, - 90, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) EndIf If timer=3 Then SetCubeFace tex, 3 RotateEntity camera, 0, 180, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) EndIf If timer=4 Then SetCubeFace tex, 4 RotateEntity camera, - 90, 0, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) EndIf If timer=5 Then SetCubeFace tex, 5 RotateEntity camera, 90, 0, 0 RenderWorld CopyRect 0, 0, tex_sz, tex_sz, 0, 0, BackBuffer(), TextureBuffer(tex) EndIf ShowEntity entity HideEntity camera End Function dann müsste er bei jedem renderdurchgang ein cubebild rendern. |
||
Alles was ich sagen kann, können auch andere ^^ |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
die textur ist ja halbwegs winzig(256x256). besitzt du eine onboard graka? oder sind deine levels/wasauchimmer highpoly? weil so eine kleine cubemap hat nichtmal meine alte ati(die sehr alt war) in die knie gezwungen...
kannst du mal ne demo/exe erstellen? |
||
Warbseite |
smeagle24 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cgamer hat Folgendes geschrieben: die textur ist ja halbwegs winzig(256x256). besitzt du eine onboard graka?
Ne hab keine onboard graka hab ne Radeon 9200 mit 128MB. Meine Levels, bzw. Modelle sind auch nicht highpoly und warum sollte die Cubemap grösser sein? Is ja nur für die Scheibe von ner Tür gedacht und da reicht das doch vollkommen. Hier habe ich mal ne exe erstellt und hochgeladen: https://www.blitzforum.de/upload/file.php?id=5482 Hallo Angelo. Habe das mal probiert mit nem Timer. Bringt aber nicht wirklich viel. Die Framerate geht zwar rauf bis auf über 30, sobald ich dann aber ein paar modelle lade, geht sie wider runter. Teilweise sogar bis auf 3. |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Brauchst du wirklich eine Cubemap nur für eine Tür? Mit dem System in der Signatur läufts flüssig mit 50 FPS mindestens. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
50fps. plus cubemap die man falsch rendert ists kein wunder dasses in die knie geht(frag mich nicht wieso aber "Arial" auf ner cubemap zu sehen ist horror. und vorallem wenn einem "(START)" anguckt;) | ||
Warbseite |
smeagle24 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cgamer hat Folgendes geschrieben: 50fps. plus cubemap die man falsch rendert ists kein wunder dasses in die knie geht(frag mich nicht wieso aber "Arial" auf ner cubemap zu sehen ist horror. und vorallem wenn einem "(START)" anguckt;)
Das is mein aller erster Versuch mit Cubemap überhaupt. In der Sache bin ich der totale "noob". Kann mir einer sagen, was da beim rendern falsch läuft, wo hab ich hier denn nen Fehler gemacht? Was bitte meinst du mit "Arial auf ner Cubemap zu sehen ist horror"? |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schau dir mal das Beispiel bei SetCubeFace![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
smeagle24 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für den Hinweis. Jetzt hab ichs gesehen. Hab ausversehen Rechts und links anstelle von vorne und hinten gerendert. Jetzt komm ich auch auf 50 Frames pro Sekunde. Vielen Dank. | ||
![]() |
Xaymarehemals "Cgamer" |
![]() Antworten mit Zitat ![]() |
---|---|---|
smeagle24 hat Folgendes geschrieben: Cgamer hat Folgendes geschrieben:
50fps. plus cubemap die man falsch rendert ists kein wunder dasses in die knie geht(frag mich nicht wieso aber "Arial" auf ner cubemap zu sehen ist horror. und vorallem wenn einem "(START)" anguckt;)
Das is mein aller erster Versuch mit Cubemap überhaupt. In der Sache bin ich der totale "noob". Kann mir einer sagen, was da beim rendern falsch läuft, wo hab ich hier denn nen Fehler gemacht? Was bitte meinst du mit "Arial auf ner Cubemap zu sehen ist horror"? damit meinte ich das ich die schriftart "Arial" auf der cubemap sah. plus meinen start button |
||
Warbseite |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group