Bildschirm auslesen und Farbe speichern (Cube)

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Chrise

Betreff: Bildschirm auslesen und Farbe speichern (Cube)

BeitragSo, Sep 02, 2007 21:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Smile
Ich habe ein Problem. Das treibt mich noch zum wahnsinn, ich hab um Himmels willen keine AHnung wo der Fehler liegt. Ich will einen 3D Skript baun... ob das Funktioniert das ist sicher, die Geschwindikeit wird aber nicht wirklich schnell sein^^

Also ich habe einen Bildschirm, zum test einen Würfel erstellt.
Jetzt will ich den kompletten Bildschirm pixel für pixel auslesen und nur den Rotanteil der Farbe in einem Dim Feld speichern. Und da ist schon das Problem!
Er sagt immer "Memory access violation" und ich finde das Problem nicht Sad
Ich bin ratlos.
Hier der bishherige Code:
Code: [AUSKLAPPEN]

Graphics3D 320,240,0,2
SetBuffer BackBuffer()

x=0
y=0
camera=CreateCamera()
;PositionEntity camera,0.6,0,0
light=CreateLight()
RotateEntity light,90,0,0

Dim rot(320*240)
cube = CreateCube()
RotateEntity cube,20,50,50
PositionEntity cube,0,0,5

UpdateWorld

While Not KeyHit(1)
   RenderWorld
   LockBuffer BackBuffer()
   Repeat
      x=x+1
      Repeat
         y=y+1
         rgb=ReadPixelFast(x,y)
         r=(rgb And $FF0000)/$10000
         g=(rgb And $FF00)/$100
         b=rgb And $FF
         rot(x*y)=r
      Until y=240
      y=0
   Until x=320
   UnlockBuffer BackBuffer()
   x=0
   
   RenderWorld


   Flip
   Wend
End


Bitte um Hilfe....

Dankeschön Smile
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

BladeRunner

Moderator

BeitragSo, Sep 02, 2007 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
x: 0-319
y:0-239
Du ließt je eins zu weit aus.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Chrise

BeitragSo, Sep 02, 2007 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
öh..... danke^^
Ähm frage noch Smile
Ists dann auch falsch wenn ich mit x=1 anfange?
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

BladeRunner

Moderator

BeitragSo, Sep 02, 2007 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
jop
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Chrise

BeitragSo, Sep 02, 2007 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
xD
okay dann besser ich das mal auch aus Smile
Dankeschön dir.
Damit is das Problem behoben.
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet.

D2006

Administrator

BeitragMo, Sep 03, 2007 0:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann es sein, dass du statt Code: [AUSKLAPPEN]
Dim rot(320*240)
und Code: [AUSKLAPPEN]
rot(x*y) = ...
das hier meinst:
Code: [AUSKLAPPEN]
Dim rot(320,240)
...
rot(x,y) = ...


Ist nämlich nicht das gleiche.

Das hier wäre das gleiche:
Code: [AUSKLAPPEN]
Dim rot(320*240)
...
rot( x + y*240 ) = ..


Fiel mir beim überfliegen noch so auf...

EDIT: ahh, eben sah ich in dem anderen Thread, dass du es da richtig hast und es somit schon weißt. Nagut, ich lass das hier mal trotzdem stehen. Smile
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group